Android后台调试开发命令

开发中我们有时候需要借助一些命令帮助更好的高效率定位解决问题,下面简单总结一些常用的Linux命令

一.基础命令

1.cat

  • 用于查看文件内容,有时候我们想查看文件信息,用这个命令就非常方便便捷,更重要的是可以结合grep对内容进行过滤。
  • Linux中过滤用grep,Windows过滤用findstr
lb@lbpc:~/桌面$ cat 178.txt
test 
testasdffg
1234567
text
lb@lbpc:~/桌面$ cat 178.txt |grep test
test 
testasdffg
lb@lbpc:~/桌面$ 

2.echo/touch

  • echoecho 指令与 PHP 的 echo 指令类似,都是用于字符串的输出
  • touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。ls -l 可以显示档案的时间记录
lb@lbpc:~/桌面$ echo "1234" >test.txt
lb@lbpc:~/桌面$ cat test.txt 
1234
lb@lbpc:~/桌面$ 
  • 显示结果定向至文件
    echo “1234” >test.txt 将1234输出到test.txt文件中

3.top命令用于实时显示 process 的动态

  • 语法:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
  • 参数 :
    d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
    q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
    c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
    S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
    s : 安全模式,将交谈式指令取消, 避免潜在的危机
    i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
    n : 更新的次数,完成后将会退出 top
    b : 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内
  • 使用方法:top -t -d 1 -m 10 每隔1s中,最多显示10个线程。

4.free命令用于显示内存状态

  • 语法:free [-bkmotV][-s <间隔秒数>]
  • 参数 :
    -b  以Byte为单位显示内存使用情况。
    -k  以KB为单位显示内存使用情况。
    -m  以MB为单位显示内存使用情况。
    -h  以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。
    free命令可以列出当前内存使用情况。
    -o  不显示缓冲区调节列。
    -s<间隔秒数>  持续观察内存使用状况。
    -t  显示内存总和列。
    -V  显示版本信息
    上面的这几个命令,可以配合watch命令使用,这样即可以自动在一定间隔内一直查询

5.watch可以帮你监测一个命令的运行结果

  • 语法:watch [-dhntv] [--differences[=cumulative]] [--help] [--interval=<n>] [--no-title] [--version] <command>
  • 如:watch -n xxx(间隔秒数) yyyy(命令)
  • 例如: watch -n 3 top -m 10
    每3秒打印top的十条信息

6.find 命令用来在指定目录下查找文件

  • 将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:
 find . -name "*.c"

7.ls(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)

  • 语法
 ls [-alrtAFR] [name...]

参数 :
-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
-R 若目录下有文件,则以下之文件亦皆依序列出

8.tree命令用于以树状图列出目录的内容

  • 语法
tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]
  • 参数说明:

-a 显示所有文件和目录。
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-d 显示目录名称而非内容。
-D 列出文件或目录的更改时间。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*“,”/“,”=“,”@“,”|“号。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-L level 限制目录显示层级。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P<范本样式> 只显示符合范本样式的文件或目录名称。
-q 用”?"号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。
-t 用文件和目录的更改时间排序。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。

9.kill 命令用于删除执行中的程序或工作。

  • 语法
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
  • 参数说明:
    -l <信息编号>  若不加<信息编号>选项,则 -l 参数会列出全部的信息名称。
    -s <信息名称或编号>  指定要送出的信息。
    [程序]  [程序]可以是程序的PID或是PGID,也可以是工作编号。
  • 杀死进程
 kill 100
  • 强制杀死进程
 kill -KILL 100
  • 彻底杀死进程
 kill -9 100

10.ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器

  • 语法
ps [options] [--help]

实例

ps
ps -A //显示所有进程
ps -ef | grep 进程关键字 //查找指定进程格式

参数太多可以执行help命令自行查看

11.clear命令用于清除屏幕

二 Dumpsys 命令

1.Dumpsys 命令说明

用户系统诊断,它运行在设备上,并提供系统服务状态信息
命令格式: adb shell dumpsys [system serbices]
系统服务查询
如果直接运行adb shell dumpsys,将会获得所有的系统服务信息,那是非常多的,为了更容易管理输出,可以指定你想要检查的服务,例如:
adb shell dumpsys –l
adb shell serverce list
#都是查看有哪些系统服务(需要哪些服务就指定哪些服务)
命令行参数:
不同的服务有不同的选项,一下两个是常见的参数:
-h:对于大多数的服务,可以添加-h看到文本的帮助
-c:对于一些服务,可以添加-c查看数据会更友好
例如:

adb shell dumpsys meminfo –h
watch -n 5 dumpsys meminfo com.test.app |grep -E  "Views|Heap"

2.包信息查询

子命令格式:
adb shell dumpsys package [-h] [-f] [—checkin] [cmd]…
参数 说明
-h 打印帮助信息
-f 打印intent filter的信息
–checkin 打印出已经登记的库、系统功能、安装包
cmd 子命令(可以在-h帮助文档中查看有哪些子命令)

cmd子命令 说明
prov[iders] 获取content providers
p[ackages] 获取安装包基本信息
s[hared-user] 获取共享用户ID的应用
m[essages] 打印运行时收集的信息
v[erifiers] 打印包校验信息
version 打印数据库版本信息
write 写当前位置
<package.name> 输出给定包的信息
installs 安装会话的详细信息
l[ibraries] 列出已知的共享库
f[ibraries] 列出手机的功能
k[eysets] 列出各个包的Signing KeySets
r[esolvers] 获取intent filter
perm[issions] 获取权限
pref[erred] 打印包首选项
preferred-xml [—full] 打印包首选项,xml格式打印

3.activity信息查询

子命令格式:
adb shell dumpsys activity [-a] [-c]…
参数 说明
-a 包括所有可用的服务器状态
-c 包括客户端状态
-p 限制输出为给定的包,例如:
adb shell dumpsys activity -p com.android.browser
-h 打印帮助信息
cmd 子命令

cmd子命令 说明
a[ctivities] activity堆栈状态
r[recents] 最近activity的状态
b[rodacasts] [package_name] [histpry [-s]] 广播状态
i[ntents] [package_name] 挂起的intent状态
p[rocesses] [package_name] 进程状态
o[om] oom管理
perm[issions] url权限授权状态
prov[iders] [comp_spec…] content provider状态
provider [comp_spec] provider客户端状态
s[ervices] [comp_spec…] 服务状态
as[sociations] 跟踪应用程序的关联
service [comp_spec] 服务客户端状态
package [package_name] 给的包的所有状态
all 转储所有的activityes
top 转储栈顶的activity
write 写入所有挂起状态存储
track-associations 允许会话跟踪
untrack-associations 禁用和明确会话跟踪,命令参数可能也是一个comp_spec 转储的activity

4.网络信息查询

子命令 说明 命令格式
connectivity 网络连接 adb shell dumpsys connectivity
netpolicy 网络策略 adb shell dumpsys netpolicy
netstats 网络状态 adb shell dumpsys netstats
network_management 网络管理 adb shell dumpsys network_management

5.其他常用服务信息查询

子命令 说明 命令格式
meminfo 内存 adn shell dumpsys meminfo
cpuinfo CPU adn shell dumpsys cpuinfo
gfxinfo 帧率 adn shell dumpsys gfxinfo
display 显示 adn shell dumpsys display
power 电源 adn shell dumpsys power
batterystats 电池状态 adn shell dumpsys batterystats
battery 电池 adn shell dumpsys battery
alarm 闹钟 adn shell dumpsys alarm
location 位置 adn shell dumpsys location

6.实例

  • 使用 adb shell dumpsys,默认打印出当前系统所有service信息,在后面可加上具体的服务名
    需要列出当前运行的服务,可运行:
  • 获取进程的安装包信息
dumpsys package <进程名> | grep <关键字>
  • 获取设备分辨率:
dumpsys display | findstr DisplayDeviceInfo 
  • 获取设备电池信息:
dumpsys battery
  • 获取cpu信息:
dumpsys meminfo
  • 获取Activity信息:
dumpsys package
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值