zoukankan      html  css  js  c++  java
  • android app两种调试方法

    方法一:

    1、使用apktool的-d选项反编译apk文件

       java  -jar  apktool.jar  d  -d  target.apk  -o  output

    2、在AndroidManifest的application节点中添加 android:debuggable="true"

    3、在入口点的类的onCreate中添加如下代码等待调试

       invoke-static{}, Landroid/os/Debug;->waitForDebugger()V

    4、回编译apk

       java  -jar  apktool.jar  b  -d  output  -o  newTarget.apk

    5、对apk进行签名

       java -jar signapk.jar testkey.x509.pem testkey.pk8 newTarget.apk signed.apk

    6、将签名后的apk安装到手机或者模拟器上

       adb install signed.apk

    7、将1中的smali代码导入到Android Studio中

       file→open→output目录→下断点

    8、打开Monitor查找相应的进程

       运行→monitor 或者Tools ->Android ->Android Device Monitor

    9、配置远程调试选项

       Run→Editor Configurations→Defaults→Remote,点击+号新增一个,Host为localhost,Port为8700

    10、打开apk,点击绿色的小虫子就可以开始调试了

    方法二:无需修改原apk文件

    1、用 Android killer等工具反编译apk文件

    2、将smali代码入到Android Studio中,安装smaliidea插件

    File→Settings→Plugins→Install plugin from disk…→Restart

    3、配置远程调试选项,打开monitor

    4、使用adb以debug方式启动apk

       adb shell am start -D -n package/activitiyname

    5、下断点开始调试,在watch中添加寄存器

  • 相关阅读:
    环形缓冲区: ringbuf.c
    Linux内核中_IO,_IOR,_IOW,_IOWR宏的用法与解析
    list.h在用户态下的应用
    如何优雅的拔盘?
    谨慎调整内核参数:vm.min_free_kbytes
    Linux内核tracepoints
    网卡多队列
    How to use pthread_create && mutex?
    美国电子工程师最值得打工的50个东家
    关于零点和极点的讨论
  • 原文地址:https://www.cnblogs.com/1chavez/p/5187029.html
Copyright © 2011-2022 走看看