给smali加断点
给Smali代码加断点:
- 先(重点)是:找到要加断点的地方
- 再去加断点
如何找到要加断点的位置?
要在哪里加断点?
才能实现,app运行时触发到断点而停下来,供自己调试
一般逻辑是:
- 找到最有可能运行到的代码的逻辑对应的地方- 入口的MainActivity- 前面的:如何获取app的MainActivity,已经解释过- 此处YouTube就是:com.google.android.apps.youtube.app.application.Shell_HomeActivity
 
- 此处
 
- 前面的:如何获取app的
- 或者是你调试时的看到的顶层页面
 
- 入口的
获取顶层页面的activity
 adb shell dumpsys activity top | grep --color=always ACTIVITY
...
  ACTIVITY com.google.android.youtube/com.google.android.apps.youtube.app.watchwhile.WatchWhileActivity 781cc07 pid=20720
-》
- 此处YouTube的顶层页面是:- com.google.android.apps.youtube.app.watchwhile.WatchWhileActivity
 
然后就可以去,此处Apktool反编译后的,smali的源码所在位置了:
- com.google.android.youtube_16.29.36- smali_classes2/com/google/android/apps/youtube/app/application/Shell_HomeActivity.smali
- smali_classes2/com/google/android/apps/youtube/app/watchwhile/WatchWhileActivity.smali
 
找到了smali文件位置
给哪些函数打断点?
再说说:具体给哪些函数打断点
-》代码运行才能,才容易触发到断点停下来(我们才好调试)
这部分涉及到安卓的正向开发知识
概述是:
- onResume
- onStart
- getLifecycle
- 等等
如此,去找:
- com.google.android.youtube_16.29.36- smali_classes2/com/google/android/apps/youtube/app/application/Shell_HomeActivity.smali
- smali_classes2/com/google/android/apps/youtube/app/watchwhile/WatchWhileActivity.smali
 
的
- onResume
- onStart
- getLifecycle
等函数,去打断点:


TODO:
【已解决】Android Studio调试Smali:给YouTube的smali代码加断点