Android 系统提供的常用命令工具

Android提供了不少命令行工具,方便我们调试和查看信息.下面是frameworks/base/cmds(android 6.0.1)中的命令.
treecmdsL1cmdsamappopsappprocessappwidgetbackupbmgrbootanimationbucontentdpmhididmapimeinputinterruptermediapmrequestsyncscreencapsettingssmsvctelecomuiautomatorwm/.svcpower,data,wifi,usb,nfc.(am,appops,ime,input,pm,screencap,settings,svc,uiautomator,wm)..imeime,/,. adb shell ime list -s
com.sohu.inputmethod.sogou/.SogouIME
com.google.android.inputmethod.pinyin/.PinyinIME
com.sohu.inputmethod.sogou.xiaomi/.SogouIME

input
input命令可以模拟输入
比如我们想在输入框内输入123
adb shell input text 123
注意,要满足几点,首先要聚焦在输入框,另外最好使用原生输入法

我们也可以模拟系统按键,比如返回键
adb shell input keyevent KEYCODE_BACK
我们也可以模拟点击事件,比如点击x=900,y=150
$ adb shell input tap 900 150

wm
wm命令可以获得分辨率/屏幕密度等
adbshellwmsizePhysicalsize:1080x1920 adb shell wm density
Physical density: 480
还可以修改显示输入图像的比例,不过不知道有什么用,大家可以试试这个命令.
wmoverscan10,10,100,100 wm overscan reset
试过之后记得执行reset

screencap
screencap用来截屏
adbshellscreencaphusage:screencap[hp][ddisplayid][FILENAME]h:thismessagep:savethefileasapng.d:specifythedisplayidtocapture,default0.IfFILENAMEendswith.pngitwillbesavedasapng.IfFILENAMEisnotgiven,theresultswillbeprintedtostdout. adb shell screencap -p | sed 's/\r //>screen.pngsd adb shell ‘cd sdcard; screencap -p screen.png’
$ adb shell ls -l sdcard/screen.png
-rw-rw—- root sdcard_rw 197116 2016-06-21 11:49 screen.png

uiautomator
uiautomator可以用来做UI测试,也可以dump出当前UI结构.如果觉得hierarchy不好用,也可以试试这个命令.只不过结果是xml形式,信息也很全.
$ adb shell uiautomator
Usage: uiautomator [options]

Available subcommands:

help: displays help message

runtest: executes UI automation tests
runtest [options]
: < -c | -e class >
: a list of jar files containing test classes and dependencies. If
the path is relative, it’s assumed to be under /data/local/tmp. Use
absolute path if the file is elsewhere. Multiple files can be
specified, separated by space.
: a list of test class names to run, separated by comma. To
a single method, use TestClass#testMethod format. The -e or -c option
may be repeated. This option is not required and if not provided then
all the tests in provided jars will be run automatically.
options:
–nohup: trap SIG_HUP, so test won’t terminate even if parent process
is terminated, e.g. USB is disconnected.
-e debug [true|false]: wait for debugger to connect before starting.
-e runner [CLASS]: use specified test runner class instead. If
unspecified, framework default runner will be used.
-e : other name-value pairs to be passed to test classes.
May be repeated.
-e outputFormat simple | -s: enabled less verbose JUnit style output.

dump: creates an XML dump of current UI hierarchy
dump [–verbose][file]
[–compressed]: dumps compressed layout information.
[file]: the location where the dumped XML should be stored, default is
/sdcard/window_dump.xml

events: prints out accessibility events until terminated
dump当前UI结构
adb shell uiautomator dump sdcard/test.xml

settings
settings可以修改/获取系统设置信息
$ adb shell settings
usage: settings [–user NUM] get namespace key
settings [–user NUM] put namespace key value
settings [–user NUM] delete namespace key
settings [–user NUM] list namespace

‘namespace’ is one of {system, secure, global}, case-insensitive
If ‘–user NUM’ is not given, the operations are performed on the owner user.
比如我们想查看android_id
adbshellsettingsgetsecureandroidid1dbbe170f8995d89wifi adb shell settings get global wifi_on
1
查看日期是否是24小时制
$ adb shell settings get system time_12_24
24

svc
svc下面有一组命令,power, data, wifi, usb, nfc,可以控制其开关
例如:
$ svc wifi
svc wifi
Control the Wi-Fi manager

usage: svc wifi [enable|disable]
Turn Wi-Fi on or off.
控制移动网络数据开关
adbshellsvcdatadisable adb shell svc data enable

appops
appops可以查看/修改权限相关信息
$ adb shell appops get com.android.phone
VIBRATE: allow; time=+1d3h57m1s111ms ago; duration=+63ms
READ_CONTACTS: allow; time=+2h10m59s285ms ago
READ_SMS: allow; time=+2h10m49s858ms ago
WRITE_SMS: allow; time=+3m46s339ms ago
READ_ICC_SMS: allow; time=+2h10m49s859ms ago
WRITE_CLIPBOARD: allow; time=+10d2h24m17s819ms ago
WAKE_LOCK: allow; time=+5s122ms ago; duration=+14ms
READ_EXTERNAL_STORAGE: allow; time=+14h31m4s898ms ago
WRITE_EXTERNAL_STORAGE: allow; time=+14h31m4s898ms ago

$ adb shell appops get com.android.phone READ_CONTACTS
READ_CONTACTS: allow; time=+2h28m33s274ms ago

am和pm这两个命令应该算是最复杂也是最常用的了.我们可以通过am启动页面,发送广播等,可以通过pm列出手机中的app,启用禁用app等.当然有一些是需要root权限的.这里就不再介绍了.
android手机中的命令行工具不只这些,在frameworks/native/cmds中也有一些命令,比如我们常用的dumpsys,在我之前的blog中也介绍过.

了解了这些工具,我们就可以写一些脚本来获取手机和app信息, 省去了log也方便查看和调试.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Android 命令大全包括了许多用于开发和调试的命令。以下是一些常用的 Android 命令: 1. adb:Android Debug Bridge,用于与设备进行通信和调试的命令行工具。 - adb devices:列出已连接的 Android 设备。 - adb install <path_to_apk>:安装一个 APK 文件。 - adb uninstall <package_name>:卸载一个应用程序。 - adb shell:进入设备的命令行 Shell。 - adb logcat:查看设备的日志输出。 2. am:Activity Manager,用于管理 Android 应用程序的命令。 - am start <intent>:启动一个 Activity。 - am force-stop <package_name>:强制停止一个应用程序。 - am broadcast <intent>:发送一个广播。 3. pm:Package Manager,用于管理 Android 应用程序的包的命令。 - pm list packages:列出所有已安装的应用程序包名。 - pm path <package_name>:显示应用程序的 APK 文件路径。 - pm clear <package_name>:清除应用程序的用户数据。 4. svc:Service Manager,用于管理 Android 系统服务的命令。 - svc wifi enable/disable:启用/禁用 Wi-Fi。 - svc data enable/disable:启用/禁用移动数据。 5. input:模拟用户输入的命令。 - input tap <x> <y>:模拟点击屏幕上的指定坐标位置。 - input text <text>:模拟输入指定的文本。 这只是一小部分 Android 命令,还有许多其他命令可用于不同的开发和调试任务。如果你有特定的需求或问题,可以告诉我,我可以提供更详细的信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值