adb命令大全
- 格式:pdf
- 大小:139.48 KB
- 文档页数:3
adb命令⼤全
adb是什么?:adb的全称为Android Debug Bridge,就是起到调试桥的作⽤。通过adb我们可以在Eclipse中⽅⾯通过DDMS来调试Android
程序,说⽩了就是debug⼯具。adb的⼯作⽅式⽐较特殊,采⽤监听Socket TCP 5554等端⼝的⽅式让IDE和Qemu通讯,默认情况下adb会daemon相关的⽹络端⼝,所以当我们运⾏Eclipse时adb进程就会⾃动运⾏。
adb有什么⽤?:借助adb⼯具,我们可以管理设备或⼿机模拟器的状态。还可以进⾏很多⼿机操作,如安装软件、系统升级、运⾏shell命令
等等。其实简⽽⾔说,adb就是连接Android⼿机与PC端的桥梁,可以让⽤户在电脑上对⼿机进⾏全⾯的操作!
常⽤命令:
1.显⽰当前运⾏的全部模拟器: adb devices
2.启动ADB adb start-server
3.停⽌ADB adb kill-server
4.安装应⽤程序: adb install -r [apk⽂件]
-l #锁定该程序-r #重新安装该程序,保存数据-s #安装在SD卡内,⽽不是设备内部存储
例:adb install --r D:\mm.apk5.卸载应⽤程序: adb uninstall [packagename]
例:adb uninstall com.tencent.mm-k #不删除程序运⾏所产⽣的数据和缓存⽬录(如软件的数据库⽂件)
例:adb uninstall -k com.tencent.mm
6. 讲⼿机设备中的⽂件copy到本地计算机:
adb pull 设备⽬录 本地⽬录例:adb pull /sdcard/mm.txt D:(讲内存卡根⽬录的txt⽂件copy到D盘根⽬录)
7.将本地计算机的⽂件copy到⼿机设备中
adb push 本地⽬录 ⼿机设备⽬录例:adb push D:\mm.txt /sdcard
8.查看adb命令帮助信息: adb help
9.截屏例:adb shell screencap -p 截图⽂件路径
10.查看指定包名应⽤的数据库储存信息(包括储存的SQL语句)
例:adb shell dumpsys dbinfo[packagename]
11.查看指定的进程或则进程id的内存信息
adb shell dumpsys meminfo[packagename/pid]可以查看进程当前的内存情况
例:adb shell dumpsys meminfo com.tencent.mm12.查看指定包名应⽤的详细信息(相当于AndroidMainfest.xml中内容)
adb shell dumpsys [packagename]例:adb shell dumpsys com.tencent.mm
13.查看当前应⽤的activity信息adb shell dumpsys activity top查看bug报告:
adb bugreport
14.列出⼿机装的所有apk包名
adb shell pm list packages
系统应⽤:adb shell pm list packages -s
第三⽅应⽤:adb shell pm list packages -3
使⽤grep过滤 :adb shell pm list packages | grep qq
15.清除应⽤缓存信息:
adb shell pm clear [packagename]
16.通过adb启动应⽤程序页⾯
adb shell am start -n[包名+activity名]
例:adb shell am start -n com.tencent.mm/.ui.SplashAcitvity
强制停⽌应⽤有些时候应⽤卡死了,需要强制停⽌,则执⾏以下命令:adb shell am force-stop // 如:adb shell am force-stopcn.androidstar.demo
17、记录⽆线通讯⽇志:
⼀般来说,⽆线通讯的⽇志⾮常多,在运⾏时没必要去记录,但我们还是可以通过命令,设置记录:adb shell
logcat -b radio
18、获取设备的ID和序列号: adb get-product
adb get-serialno
19、访问数据库SQLite3 adb shell
sqlite3#cd system/sd/data //进⼊系统内指定⽂件夹
ls //列表显⽰当前⽂件夹内容
rm -r xxx //删除名字为xxx的⽂件夹及其⾥⾯的所有⽂件
rm xxx //删除⽂件xxxrmdir xxx //删除xxx的⽂件夹
20.导出设备信息
adb get-serialno > 序列号.txt
adb shell cat /sys/class/net/wlan0/address > MAC地址.txt
adb shell getprop ro.product.model > 设备型号.txt
adb shell getprop ro.build.version.release> 系统版本.txt
adb shell pm list packages -s > 系统应⽤的所有包名.txt
adb shell pm list packages -3 > 第三⽅应⽤包名.txt
adb shell wm size > 屏幕分辨率.txt
adb shell wm density > 屏幕密度.txt
adb shell cat /proc/cpuinfo > CPU信息.txt
adb shell pm list permissions -f > 权限.txt
adb shell pm list users -f > ⽤户.txt
21.重启adb reboot
还有2个⾮常有⽤的命令:
22.备份adb backup
[-f ] [-apk|-noapk][-shared|-noshared] [-all] [-system|nosystem] []
例:adb backup -f mm.ab -noapk -noshared -nosystemcom.tencent.mm你可以使⽤的最基本的命令是很简单的adb backup -all
它将使⽤默认⽅式备份应⽤和设备的数据(不包含apk)到当前⽬录下并保存为⽂件backup.ab
※这个命令有可能不对每个设置都有效,如果你出现像这种 "adb: cannot open file ./backup.ab"的错误,使⽤ adb backup -all -fC:\backup.ab
来代替,其中路径C:\可根据喜好替换
对各个参数的解释:-f
⽤这个来选择备份⽂件存储在哪⾥,例如-f /backup/mybackup.ab将会使⽂件存储在根磁盘(Windows的C盘等等)下⼀个名为backup的⽂
件夹⾥,并且备份⽂件名为mybackup.ab-apk|-noapk
这个决定是否在备份⾥包含apk或者仅仅只备份应⽤数据,个⼈推荐使⽤-apk以免有的应⽤在应⽤市场找不到,如果不使⽤则默认的是-noapk
-shared|-noshared
这个参数⽤于决定是否备份设备共享的SD card内容,默认是-noshare,主要包括内部存储中的⾳乐、图⽚和视频,因此为保险起见,建议
加上-share-all
这个参数是⼀种简单地表达“所有应⽤”的说法,package参数可以选择备份单独的应⽤,如果你不是备份某个应⽤,使⽤-all备份整个系统-system|-nosystem
这个参数决定-all标签是否包含系统应⽤,默认的是-system,根据情况可选择是否⽤-nosystem
如果你知道应⽤安装包的名称(例如com.google.android.apps.plus),就可以使⽤该参数备份特定应⽤。3.当决定如何执⾏备份后,输⼊你喜欢的命令,在华为G700上测试,使⽤命令
adb backup -apk -all
23.使⽤run-as在⾮root情况获取沙盒数据(前提是开启debuggable模式)
1. shell@android:/data $ run-as com.your.package
2. run-as com.your.package
3. shell@android:/data/data/com.your.package $ cd /data/data/com.your.package
4. cd /data/data/com.your.package
5. shell@android:/data/data/com.your.package $ ls
6. ls
7. cache
8. databases
9. lib
10. shared_prefs
11. shell@android:/data/data/com.your.package $ cd databases
12. cd databases
13. shell@android:/data/data/com.your.package/databases $ ls
14. yourpackagename.db
15. $ cat preferences.db > /mnt/sdcard/yourpackagename.db
将你要访问的package⽬录下的db⽂件拷贝到sdcard中,这样就可以正常访问了! 对⽂件进⾏增删
24:adb shell "run-aspackage.name chmod 666 /data/data/package.name/databases/file"
adb pull /data/data/package.name/databases/file .
adb shell "run-aspackage.name chmod 600 /data/data/package.name/databases/file"
adb exec-out run-as package.name cat databases/file > file
25. adb shellshell $ run-as com.example.packageshell $ chmod 666 databases/fileshell $ exit