adb使用手册

注:实用示例在后面

常用命令

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常用

  1. 进入Android系统根目录: C:Usersjooy>adb shell
  2. 进入data目录
cd data
再次执行
cd data

看到这里想必大家都明白了,我们用的其实就是linux命令,因为Android就是基于Linux内核的吗。
# 号表示我们有了 根权限 ;我们安装应用的包默认在 /data/data/ 目录下 。

  1. 执行命令 ls , 会列出我们安装应用的包名:
  1. 举个例子,我现在想把我的项目里的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

  2. 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 StudioDevice 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...
原文地址:https://www.cnblogs.com/jooy/p/13821123.html