http://www.cnblogs.com/gordon0918/p/5570811.html
1、使用apktool反編譯要?jiǎng)討B(tài)調(diào)試的apk,反編譯apk后,設(shè)置androidmanifest.xml中 application的 android:debuggable="true"


2、合包并安裝

3、android studio安裝 smalidea后,android studio > file > new > import project ,只將smali代碼導(dǎo)入
想要?jiǎng)討B(tài)調(diào)試Smali還需要安裝一個(gè)插件Smalidea,可以在AS的settings->plugins里面安裝。(插件下載鏈接:http://pan.baidu.com/s/1o8RL9jW)

4、studio > run > edit configuration >+號(hào):添加一個(gè)remote:設(shè)置名稱和端口

5、在AS的終端以調(diào)試模式啟動(dòng)應(yīng)用,進(jìn)程掛起,并找到進(jìn)程號(hào)
adb shell am start -D -n com.packagename/com.hh.MainActivity (這個(gè)命令跟著包名和mainActivity)

adb shell ps | grep packagename (找到此包名進(jìn)程號(hào))

6、設(shè)置端口轉(zhuǎn)發(fā),這條命令的含義是在本地8800端口(AS ?remote里配置的)與手機(jī)28881進(jìn)程之間建立一條通道,當(dāng)開始調(diào)試時(shí),AS連接本地的8800端口,通過這條通道控制程序的運(yùn)行
adb forward tcp:端口號(hào) jdwp:進(jìn)程號(hào) (jdwp 是)

7、在as 工程的smali代碼里打斷點(diǎn)

8、as > run debug


9、注意打斷點(diǎn)
{?