注:实用示例在后面
常用命令
adb version
adb devices
adb shell → ls | grep "data"
adb list targets
显示系统中全部Android平台
adb install -r C:Test.apk
安装apk通过install
abd uninstall com.xxx.xxx
卸载apk
adb push C:Test.apk /system/app/
安装apk通过push
adb push C:Test.apk /system/temp/
向手机写入文件
adb pull /system/temp/test.jpg C:fastworkapps
从手机取出文件
adb logcat | grep "abc"
查看Log
adb shell df
查看系统盘符
adb shell pm list packages -f
输出所有已安装的apk , -f 加上后信息更全相当于 adb shell pm list packages
+adb shell pm path com.xxx.xxx
,而且还可以
adb shell input keyevent 3
模拟按键输出
code:
82 menu ; 3 home ; 19 up ; 20 down ;
21 left ; 22 right ; 66 enter ; 4 back .
adb shell input touchscreen swipe 18 665 18 350
模拟滑动输入
adb shell am start -n 包名/包名+类名
启动一个Activity
adb shell screenrecord /sdcard/demo.mp4
录制屏幕
adb shell screencap /sdcard/demo.png
截屏
adb reboot
重新启动
查看进程
查看全部 → adb shell ps
Linux → adb shell ps | grep com.art.exploration
Windows → adb shell "ps|grep com.art.exploration"
Android常用
- 进入Android系统根目录:
C:Usersjooy>adb shell
- 进入data目录
cd data
再次执行
cd data
看到这里想必大家都明白了,我们用的其实就是linux命令,因为Android就是基于Linux内核的吗。
# 号表示我们有了 根权限 ;我们安装应用的包默认在 /data/data/ 目录下 。
- 执行命令 ls , 会列出我们安装应用的包名:
-
举个例子,我现在想把我的项目里的db文件拿出来看一下,怎么做呢?
首先,通过应用包名进入到目录下,
root@KT45Q:/data/data # cd com.jooy.barcodesystem
执行 ls 命令,查看目录结构:
进入到 databases目录中 , ls :
到这里我们就找到了所需的db文件:
最后,执行 adb pull 把db文件拉取出来,并放到PC中的指定文件夹下,比如目录 C:2018:
adb pull /data/data/com.jooy.barcodesystem/databases/barcodesystem.db C:2018
-
adb模拟系统杀死进程(需要运行P +的仿真器)
首先,通过键入以下命令来确保该进程正在运行:
adb shell ps "-A |grep" lifecycle
在设备或仿真器上按Home键,然后运行:
adb shell am kill com.example.android.codelabs.lifecycle
应该什么也没有得到,表明该进程已被正确终止。
monkey压力测试
monkey -p com.qihu360.mobilesafe -v 1500
其中-p 后面跟包名 ;-v 后面跟次数; 通过观察log日志,查看应用中出现的问题。
eg:
adb shell monkey -p com.mmednet.angel -v 1000
adb shell monkey -p com.mmednet.angel --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 2000 >D:angel .txt
示例
用adb命令取出apk文件(包名:me.rosuh.androidfilepicker
)
C:UsersChangBao>adb shell pm list packages -f me.rosuh.androidfilepicker
package:/data/app/me.rosuh.androidfilepicker-INvp3TcINAg0wjpxK0dcTA==/base.apk=me.rosuh.androidfilepicker
C:UsersChangBao>adb pull /data/app/me.rosuh.androidfilepicker-INvp3TcINAg0wjpxK0dcTA==/base.apk C:UsersChangBaoDesktop emplalala.apk
/data/app/me.rosuh.androidfilepicker-INvp3TcINAg0wjpxK0dcT...ile pulled, 0 skipped. 31.8 MB/s (2527952 bytes in 0.076s)
App秒启
adb shell am start -S -W com.improve/com.improve.layout.SplashActivity
导出Android应用的数据库(db)文件
由于Android系统权限问题,直接用Android Studio
的Device File Explorer
无法查看其他应用的*.db文件,不过可以通过adb
命令获取到:
adb pull /data/data/com.richfit.xxx/databases/xxx.db D:fastworkWorkOrientalCompany
Android通过adb命令Debug调试
05/30 10:03:39: Launching module_app
$ adb push C:fastworkProjectsprojectCJPTmodule_appuildoutputsapkdebugmodule_app-debug.apk /data/local/tmp/lh.com.myapplication
$ adb shell pm install -t -r "/data/local/tmp/lh.com.myapplication"
pkg: /data/local/tmp/lh.com.myapplication
Success
$ adb shell am start -n "lh.com.myapplication/com.lh.caijiplatform.view.activity.SpalishActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Connecting to lh.com.myapplication
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
D/ActivityThread: hoder:android.app.IActivityManager$ContentProviderHolder@711a30c,provider,holder.Provider:android.content.ContentProviderProxy@9784455
W/ActivityThread: Application lh.com.myapplication is waiting for the debugger on port 8100...
I/System.out: Sending WAIT chunk
I/art: Debugger is active
I/System.out: Debugger has connected
I/System.out: waiting for debugger to settle...