adb常用命令总结(更新中)

ADB 即 Android Debug Bridge,Android调试桥。ADB工作方式比较特殊,采用监听Socket TCP 端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口。熟练使用 ADB 命令将会大大提升开发效率。 ADB 的命令有很多,今天就来总结下我在TV开发常用到的一些 ADB 命令。

adb install 一共有lrtsdg六个选项

-l 锁定该应用程序 -r 替换已存在的应用程序,也就是说强制安装 -t 允许测试包 -s 把应用程序安装到sd卡上 -d 允许进行将见状,也就是安装的比手机上带的版本低 -g 为应用程序授予所有运行时的权限 显示系统中全部设备: adb devices 这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示

2.开启ADB服务: adb start-server

3.关闭ADB服务: adb kill-server 停止 adb 服务

4.连接设备: adb connect 192.168.1.61 如果是USB连接,直接会连接ADB,如果是想通过网络连接(有线或者无线),则需要在同一个局域网,通过IP连接。上面192.168.1.61替换成想要连接设备的IP即可。

5.断开设备: adb disconnect 192.168.1.61

6.安装一个apk adb install -r (APK路径) -r 代表如果apk已安装,重新安装apk并保留数据和缓存文件。apk路径则可以直接将apk文件拖进cmd窗口,记得加空格。

7.直接卸载: adb uninstall (apk包名) 卸载 app 但保留数据和缓存文件: adb uninstall -k (apk包名)

8.列出手机装的所有app的包名: adb shell pm list packages

列出系统应用的所有包名: adb shell pm list packages -s

列出除了系统应用的第三方应用包名: adb shell pm list packages -3

9.清除应用数据与缓存: adb shell pm clear (apk包名)

10.启动应用 adb shell am start -n com.helloshan.demo/.MianActivity 此处无图,要知道具体的软件的包名及入口才可以打开。

11.强制停止应用 需要强制停止应用,则执行以下命令: adb shell am force-stop (apk包名)

12.删除系统应用: adb remount (重新挂载系统分区,使系统分区重新可写)。 adb shell cd system/app/ ls rm *.apk ls命令可以查看文件夹下的所有文件

12.杀死某个进程:(三个步骤) adb shell ps kill pid ps是查看进程命令,kill pid 你想结束的进程

13.pull和push文件 adb push (文件路径) (想要push的路径)

adb pull (文件路径) (想要pull的路径)

adb push/pull 之前有些设备要获取权限先,14条讲解。

14.获取文件的读写权限: adb remount 有些设备并不能直接adb remount,必须要先以root身份进入,先执行adb root,在执行adb remount

15.查看日志: adb logcat

16.查看屏幕分辨率 adb shell wm size

17.常用操作文件夹命令 操作文件和文件夹有时会出现权限不够,Read-only file system。就需要adb remount 操作,获得权限。 cd system/sd/data //进入系统内指定文件夹 ls //列表显示当前文件夹内容 mkdir xxx //创建xxx的文件夹 rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件 rm xxx //删除文件xxx rmdir xxx //删除xxx的文件夹

18 Selinux adb shell setenforce 0

setenforce 0 :设置SELinux 成为permissive模式 临时关闭selinux的

在eng/userdebug版本中 使用setenforce 命令进行设置: adb shell setenforce 0 //设置成permissive 模式 adb shell setenforce 1 //设置成enforce 模式 注意此方法重启后失效

在eng/userdebug/user 版本中 使用getenforce 命令查询当前权限状态,如: adb shell getenforce adb shell dumpsys package com.sonymobile.tvout.wifidisplay | grep "CONNECTIVITY_INTERNAL" 19 dm-verity 关闭在调试环境下的dm-verity检查 adb disable-verity dm-verity: 它是dm(device mapper)的一个target,是一个虚拟块设备,专门用于文件系统的校验 获取UID的方法:

1|shell@miki8735_tb_m:/ $ ps | grep hola                                       u0_a120   26187 360   1757260 97896 SyS_epoll_ 0000000000 S com.hola.weathershell@miki8735_tb_m:/ $ cat /proc/26187/status                                 Name:   om.hola.weatherState:  S (sleeping)Tgid:   26187Pid:    26187PPid:   360TracerPid:  0Uid:    10120   10120   10120   10120Gid:    10120   10120   10120   10120

20 top命令是查看CPU利用率的 adb shell top -m 5
21 adb shell am broadcast [options] <intent style="box-sizing: border-box; margin: 0px; padding: 0px;">作用:发送一个广播 adb shell am broadcast -n com.example.myapplication/.ThermalReceive 22 adb shell dumpsys meminfo 显示内存信息 23 adb shell dumpsys window windows 查看窗口</intent>

线程(网上大部分的方法都是无法获得信息的)

通过如下的命令可以查看特定进程的线程信息:

7Y6DU1I:/ $ ps -T -p 1807                                                      

运行结果如下:

USER PID TID PPID VSZ RSS WCHAN ADDR S CMD
u0_a232 1807 1807 751 5092496 116012 0 0 S e.myapplication u0_a232 1807 1815 751 5092496 116012 0 0 S Jit thread pool u0_a232 1807 1820 751 5092496 116012 0 0 S Signal Catcher u0_a232 1807 1821 751 5092496 116012 0 0 S ADB-JDWP Connec u0_a232 1807 1822 751 5092496 116012 0 0 S HeapTaskDaemon u0_a232 1807 1824 751 5092496 116012 0 0 S ReferenceQueueD u0_a232 1807 1825 751 5092496 116012 0 0 S FinalizerDaemon u0_a232 1807 1826 751 5092496 116012 0 0 S FinalizerWatchd u0_a232 1807 1827 751 5092496 116012 0 0 S Binder:1807_1 u0_a232 1807 1828 751 5092496 116012 0 0 S Binder:1807_2 u0_a232 1807 1830 751 5092496 116012 0 0 S Binder:1807_3 u0_a232 1807 1848 751 5092496 116012 0 0 S Profile Saver u0_a232 1807 1854 751 5092496 116012 0 0 S RenderThread u0_a232 1807 1969 751 5092496 116012 0 0 S queued-work-loo u0_a232 1807 2101 751 5092496 116012 0 0 S Binder:1807_4 u0_a232 1807 2568 751 5092496 116012 0 0 S Binder:1807_5

在Android 10上需要使用下面的命令,上面的命令不起作用了。

ps -T -A  | grep 10435 

运行结果如下:

u0_a364 10435 10435 826 15418252 117992 futex_wait_queue_me 0 S example.burning u0_a364 10435 10449 826 15418252 117992 do_sigtimedwait 0 S Signal Catcher u0_a364 10435 10450 826 15418252 117992 pipe_read 0 S perfetto_hprof_ u0_a364 10435 10451 826 15418252 117992 do_sys_poll 0 S ADB-JDWP Connec u0_a364 10435 10452 826 15418252 117992 futex_wait_queue_me 0 S Jit thread pool u0_a364 10435 10453 826 15418252 117992 futex_wait_queue_me 0 S HeapTaskDaemon u0_a364 10435 10454 826 15418252 117992 futex_wait_queue_me 0 S ReferenceQueueD u0_a364 10435 10455 826 15418252 117992 futex_wait_queue_me 0 S FinalizerDaemon u0_a364 10435 10456 826 15418252 117992 futex_wait_queue_me 0 S FinalizerWatchd u0_a364 10435 10457 826 15418252 117992 do_sys_poll 0 S gmain u0_a364 10435 10458 826 15418252 117992 do_sys_poll 0 S gdbus u0_a364 10435 10459 826 15418252 117992 do_sys_poll 0 S Thread-2 u0_a364 10435 10461 826 15418252 117992 do_sys_poll 0 S example.burning u0_a364 10435 10462 826 15418252 117992 binder_ioctl_write_read 0 S Binder:10435_1 u0_a364 10435 10463 826 15418252 117992 binder_ioctl_write_read 0 S Binder:10435_2 u0_a364 10435 10465 826 15418252 117992 binder_ioctl_write_read 0 S Binder:10435_3 u0_a364 10435 10468 826 15418252 117992 futex_wait_queue_me 0 S Profile Saver u0_a364 10435 10473 826 15418252 117992 binder_ioctl_write_read 0 S Binder:10435_4 u0_a364 10435 10480 826 15418252 117992 binder_ioctl_write_read 0 S Binder:10435_5 u0_a364 10435 10494 826 15418252 117992 do_epoll_wait 0 S RenderThread

MuMu模拟器连接

找到配制文件myandrovm_vbox86.nemu,可以找到下面这句话

 <Forwarding name="ADB_PORT" proto="1" hostip="127.0.0.1" hostport="7555" guestport="5555"/>

因此可以使用下面的命令来进行连接 adb connect 127.0.0.1:7555

公众号

更多内容,欢迎关注我的微信公众号:无情剑客。


burning_gzh.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容