准备工具:

apktool

eclipse


调试步骤:

1.对apk使用apktool反编译出可调试的smali代码到testout文件夹

apktoold的-dtest.apk-otestout注意-d参数是生成可调试代码2,在AndroidManifest.xml中,设置application为可调试:android:debuggable="true"3,找到Lancher入口4,在入口类的OnCreate方法中,在第一句前插入invoke-static{},Landroid/os/Debug;->waitForDebugger()V记得添加a=0;以上2-4步也可以用shell命令:amstart-D-n包名/类名进入调试等待5,重新打包,记得仍然用-d参数apktooldb-dtestout-odebug.apk6,重签名7,安装apk,并启动,此时程序触发调试点8,打开eclipse,导入smali工程1)File->New->Project->JavaProject->Next2)ProjectName随便起,Usedefaultlocation选项去掉,Location选择out文件夹,然后Next3)把smali文件夹设为SourceFolder,然后Finish9,下断点10,打开DDMS,查看待调试程序的端口,860011,回到eclipse,配置远程调试1)菜单Run->Debug->DebugConfigurations2)双击RemoteJavaApplication,Host处默认localhost就行,Port填第10步得到的8600,然后Apply->Debug。