1. 程式人生 > >APK骨架分析

APK骨架分析

classes dex2jar baidu btn cnblogs etc path nbsp 初始化

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骨架分析