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