APK骨架分析
APK反編譯的一般步驟是:
後輟apk改為rar用winrar等工具解壓
使用apktool反編譯圖片和xml
使用dex2jar將解壓得到的classes.dex文件轉為jar文件
使用jd_gui(圖形版jad)將jar文件反編譯為可讀的java源文件
不過更簡單地可以使用眾多軟件集合APK改之理(這就有點像MASM32)
AndroidManifest.xml--APK的總體配置文件,類似javaweb的web.xml,配置包名(package)、應用權限(uses-permission)和可視界面(activity)等。
MainActivity.Java--APK程序入口類,尤其是其OnCreate方法其調用的setContentView方法設置了程序的初始化界面。
res目錄--各可視化資產存放目錄,包括圖片(drawable)、界面(layout)、菜單(menu)、字符串(values)等。
xml文件調用定義的資源--如引用文件和圖片<TextView android:text="@string/str_name" android:background = "@drawable/pic_name"/>
java調用定義的控件--Button btn_java = (ImageButton)findViewById(R.id.btn_name);
java調用定義的資源--btn_java.setText(getResources().getText(R.string.str_name));
java控件添加事件監聽--btn_java.setOnClickListener()
Java界面轉讓--startActivity()
其中的Train.class是控制權轉讓到的類,真正的界面會在Train類的OnCreate方法中再次調用setContentView方法指定。
APK骨架分析