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中添加寄存器
转载于:https://www.cnblogs.com/1chavez/p/5187029.html
android app两种调试方法相关推荐
- STM32C8T6+RGB彩灯(驱动芯片WS28811、PWM两种调试方法)
RGB彩灯总结: 整个RGB彩灯的调试,应该花了不少于两个星期,中间遇到了很多让我很难受甚至很想放弃的problems,但是自己最终还是弄了下来,不能说是坚持了先来,但是至少能实现RGB彩灯的基本功能 ...
- 使用Unity开发Android的几种调试方法
前言 本文举例几种Android 调试的方法(PS:我是通过unity引擎来开发安卓游戏) Eclipse + adt 查看LOG 1.为Eclipse 装上adt 插件 2.打开Eclipse 的L ...
- Android 线程 thread 两种实现方法!
这篇文章中有三点需要提前说明一下, 一: 在android中有两种实现线程thread的方法: 一种是,扩展java.lang.Thread类 另一种是,实现Runnable接口 二: Thread类 ...
- Android方法的概括,Android_Android中startService基本使用方法概述,Android中有两种主要方式使用Ser - phpStudy...
Android中startService基本使用方法概述 Android中有两种主要方式使用Service,通过调用Context的startService方法或调用Context的bindServi ...
- (最新react-native-0.59.5) 如何将ReactNative项目集成到现有得Android项目中(两种实现方法之一)
背景:最近在学习React-Native相关的知识,有个需求,如果已经存在一个成熟的Android 或者 IOS项目,如何实现在后续的开发中用RN来实现部分功能.再此我只是讲解一下Android de ...
- android 毫秒 计时器,Android时分秒计时器的两种实现方法
可能我们在开发中会时常用到计时器这玩意儿,比如在录像的时候,我们可能需要在右上角显示一个计时器.这个东西其实实现起来非常简单. 只需要用一个控件Chronometer,是的,就这么简单,我都不好意思讲 ...
- android studio gradle 自动更新,android studio gradle 两种更新方法更新
又快一年没有使用AS了,正好要查看一个Android项目代码,干脆升级到新版试试看新变化,旧版本为3.1.2,目前最新版本为3.4.2,AS的升级是很简单的直接update等待即可. 升级完了,打开G ...
- 下载软件一直转圈圈_苹果手机下载不了app,一直转圈怎么办?(附两种解决方法)...
大家平时在使用苹果手机时可能会遇到 App Store 一直转圈,下载不了应用的问题.在这里为大家介绍一些如何解决这个问题的方法,希望可以帮到你. 苹果手机下载不了app,一直转圈怎么办?(附两种解决 ...
- android中view手势滑动冲突的两种解决方法
android中view手势滑动冲突的解决方法,主要解决方法有两种,外部和内部拦截.有需要的可以参考下. Android手势事件的冲突跟点击事件的分发过程息息相关,由三个重要的方法来共同完成,分别是: ...
最新文章
- BZOJ2281:[SDOI2011]黑白棋(博弈论,组合数学,DP)
- 【C 语言】二级指针作为输入 ( 指针数组 | 指针数组排序 | 字符串排序 | strcmp 函数 )
- 160个Crackme011
- 算法正确性和复杂度分析
- python 拼音识别_Python_语音合成
- 2018届c++B 格雷码;调手表(lowbit运算)
- TABLE与DIV的取舍
- FFmpeg入门详解之67:Qt FFmpeg开发播放器
- VirtualBox安装Windows XP——图解
- 电商后台管理系统——商品管理
- matlab偏导数方程,利用Matlab求解不同类型的偏微分方程
- ios客户端发现_华为爱奇艺手机活动开发总结
- HTML+CSS淘宝 页眉导航栏以及Logo搜索框的实现
- “茴”字有几种写法?
- C语言零基础——简单门票费程序
- Unity3D | 经典游戏Xiaoxiaole
- c语言中怎么用scanf给二维数组赋值,关于VC++6.0无法用scanf()输入浮点值赋给二维数组的问题...
- vue form表单提交动态数据
- [附源码]java毕业设计新能源汽车租赁管理系统
- Solidity中文文档(内部)
热门文章
- 在statspack显示完整的SQL
- VSCode 初次写vue项目并一键生成.vue模版
- Spring配置AOP切入点execution详解
- 浅析 NodeJs 的几种文件路径
- 【Intellij Idea】设置JDK
- 动态代理,动态代理设计模式 ,JDK动态代理,cglib动态代理
- No resource found that matches the given name 'android:Widget.Material.A解决方案
- 虚拟机安装与概述(3)
- AIX下RAC巡检文档 (上)
- 维护SAP帮助信息(WEB)