pizg 发表于 2013-11-2 17:32:42

反編譯 Amarino v2.0.apk

為了探討 Amarino v2.0.apk 是怎麼寫出來的,今天下午花了一些時間 google 一下 Android apk 檔反編譯的資料,
發現可以依照底下這一篇文章的說明, 逐步將 .apk 檔反編譯成 .jar
網址 http://stackoverflow.com/questions/3593420/android-getting-source-code-from-an-apk-file
個人不敢藏私, 特在此提供給同好參考.

如果你把 Amarino v2.0.apk 反編譯之後,
你將會發現在不使用Amarino.connect(this, strAddress); 的情況下,
底下的方式也可以對藍芽連線.

package com.example.rotatephone;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;

public class MainActivity extends Activity {
      private static final String strAddress = "00:12:06:01:50:75";
      
      private void btConnect(Context context, String s) {
                Intent intent = new Intent("amarino.intent.action.CONNECT");
                intent.putExtra("amarino.intent.extra.DEVICE_ADDRESS", s);
                context.sendBroadcast(intent);
      }

      private void btDisconnect(Context context, String s) {
                Intent intent = new Intent("amarino.intent.action.DISCONNECT");
                intent.putExtra("amarino.intent.extra.DEVICE_ADDRESS", s);
                context.sendBroadcast(intent);
      }

      @Override
      protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);               
      }

      @Override
      protected void onStart() {
                super.onStart();               
                // Amarino.connect(this, strAddress);
                btConnect(this, strAddress);
      }

      @Override
      protected void onStop() {
                super.onStop();
                // Amarino.disconnect(this, strAddress);
                btDisconnect(this, strAddress);               
      }
}

polo32081 发表于 2013-12-17 13:42:43

顶一下,看过一阵Amarino,程序结构性还是不错的,如果有源程序,可以再修改利用就事半功倍了。
页: [1]
查看完整版本: 反編譯 Amarino v2.0.apk