方法一:

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中添加寄存器

转载于:https://www.cnblogs.com/1chavez/p/5187029.html

android app两种调试方法相关推荐

  1. STM32C8T6+RGB彩灯(驱动芯片WS28811、PWM两种调试方法)

    RGB彩灯总结: 整个RGB彩灯的调试,应该花了不少于两个星期,中间遇到了很多让我很难受甚至很想放弃的problems,但是自己最终还是弄了下来,不能说是坚持了先来,但是至少能实现RGB彩灯的基本功能 ...

  2. 使用Unity开发Android的几种调试方法

    前言 本文举例几种Android 调试的方法(PS:我是通过unity引擎来开发安卓游戏) Eclipse + adt 查看LOG 1.为Eclipse 装上adt 插件 2.打开Eclipse 的L ...

  3. Android 线程 thread 两种实现方法!

    这篇文章中有三点需要提前说明一下, 一: 在android中有两种实现线程thread的方法: 一种是,扩展java.lang.Thread类 另一种是,实现Runnable接口 二: Thread类 ...

  4. Android方法的概括,Android_Android中startService基本使用方法概述,Android中有两种主要方式使用Ser - phpStudy...

    Android中startService基本使用方法概述 Android中有两种主要方式使用Service,通过调用Context的startService方法或调用Context的bindServi ...

  5. (最新react-native-0.59.5) 如何将ReactNative项目集成到现有得Android项目中(两种实现方法之一)

    背景:最近在学习React-Native相关的知识,有个需求,如果已经存在一个成熟的Android 或者 IOS项目,如何实现在后续的开发中用RN来实现部分功能.再此我只是讲解一下Android de ...

  6. android 毫秒 计时器,Android时分秒计时器的两种实现方法

    可能我们在开发中会时常用到计时器这玩意儿,比如在录像的时候,我们可能需要在右上角显示一个计时器.这个东西其实实现起来非常简单. 只需要用一个控件Chronometer,是的,就这么简单,我都不好意思讲 ...

  7. android studio gradle 自动更新,android studio gradle 两种更新方法更新

    又快一年没有使用AS了,正好要查看一个Android项目代码,干脆升级到新版试试看新变化,旧版本为3.1.2,目前最新版本为3.4.2,AS的升级是很简单的直接update等待即可. 升级完了,打开G ...

  8. 下载软件一直转圈圈_苹果手机下载不了app,一直转圈怎么办?(附两种解决方法)...

    大家平时在使用苹果手机时可能会遇到 App Store 一直转圈,下载不了应用的问题.在这里为大家介绍一些如何解决这个问题的方法,希望可以帮到你. 苹果手机下载不了app,一直转圈怎么办?(附两种解决 ...

  9. android中view手势滑动冲突的两种解决方法

    android中view手势滑动冲突的解决方法,主要解决方法有两种,外部和内部拦截.有需要的可以参考下. Android手势事件的冲突跟点击事件的分发过程息息相关,由三个重要的方法来共同完成,分别是: ...

最新文章

  1. BZOJ2281:[SDOI2011]黑白棋(博弈论,组合数学,DP)
  2. 【C 语言】二级指针作为输入 ( 指针数组 | 指针数组排序 | 字符串排序 | strcmp 函数 )
  3. 160个Crackme011
  4. 算法正确性和复杂度分析
  5. python 拼音识别_Python_语音合成
  6. 2018届c++B 格雷码;调手表(lowbit运算)
  7. TABLE与DIV的取舍
  8. FFmpeg入门详解之67:Qt FFmpeg开发播放器
  9. VirtualBox安装Windows XP——图解
  10. 电商后台管理系统——商品管理
  11. matlab偏导数方程,利用Matlab求解不同类型的偏微分方程
  12. ios客户端发现_华为爱奇艺手机活动开发总结
  13. HTML+CSS淘宝 页眉导航栏以及Logo搜索框的实现
  14. “茴”字有几种写法?
  15. C语言零基础——简单门票费程序
  16. Unity3D | 经典游戏Xiaoxiaole
  17. c语言中怎么用scanf给二维数组赋值,关于VC++6.0无法用scanf()输入浮点值赋给二维数组的问题...
  18. vue form表单提交动态数据
  19. [附源码]java毕业设计新能源汽车租赁管理系统
  20. Solidity中文文档(内部)

热门文章

  1. 在statspack显示完整的SQL
  2. VSCode 初次写vue项目并一键生成.vue模版
  3. Spring配置AOP切入点execution详解
  4. 浅析 NodeJs 的几种文件路径
  5. 【Intellij Idea】设置JDK
  6. 动态代理,动态代理设计模式 ,JDK动态代理,cglib动态代理
  7. No resource found that matches the given name 'android:Widget.Material.A解决方案
  8. 虚拟机安装与概述(3)
  9. AIX下RAC巡检文档 (上)
  10. 维护SAP帮助信息(WEB)