前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >adb常用命令

adb常用命令

原创
作者头像
ruochen
发布2021-12-05 22:53:25
1.7K0
发布2021-12-05 22:53:25
举报

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的方法:

代码语言:txt
复制
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>

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

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

代码语言:txt
复制
7Y6DU1I:/ $ ps -T -p 1807                                                      

运行结果如下:

USER PID TID PPID VSZ RSS WCHAN ADDR S CMDundefined 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上需要使用下面的命令,上面的命令不起作用了。

代码语言:txt
复制
ps -T -A  | grep 10435 

运行结果如下:

u0a364 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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 线程(网上大部分的方法都是无法获得信息的)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档