Contents
  1. 1. sqlite3
  2. 2. 屏幕录制
    1. 2.1. screenrecord选项
      1. 2.1.1. —help
      2. 2.1.2. —size
    2. 2.2. —bit-rate
      1. 2.2.1. —time-limit
      2. 2.2.2. —rotate
      3. 2.2.3. —verbose
  3. 3. Monkey
  4. 4. 其它shell命令
    1. 4.1. dumpsys
    2. 4.2. dumpstate
    3. 4.3. logcat [option]… [filter-spec]…
    4. 4.4. dmesg
    5. 4.5. start/stop
  5. 5. 开启logcat
  6. 6. 关闭adb server
  7. 7. 无线使用

sqlite3

通过adb shell可以使用sqlite的命令来接入应用创建的sqlite数据库。sqliste3包含很多有用的命令,如.dump可以打印数据库内容,.schema可以打印现在table的sql create声明,而且执行的速度很快。

你可以先连接到目标设备的远程shell再使用sqlite3命令,或者同时指定你要连接的数据库的full path,sqlite3的数据库保存在如下目录:/data/data/<package_name>/databases/

以下是一个例子:

1
2
3
4
5
6
adb -s emulator-5554 shell
# sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.db
SQLite version 3.3.12
Enter ".help" for instructions
.... enter commands, then quit...
sqlite> .exit

进入sqlite3后就可以使用sqlite3的命令了,退出可使用exit或者ctrl+d.

屏幕录制

screenrecord命令是一个用以录制android 4.4以上版本的设备显示的shell工具,将activity显示录入mpeg4文件中,你可以拿来当作视频展示用.也可用于录制视频宣传和教程.

其命令格式如下

1
$ adb shell screenrecord /sdcard/demo.mp4

使用ctrl+c来停止录制,或者3分钟后自动结束,或者可以用--set-limit来设定超时时间.

以下是录制与下载视频文件的过程

1
2
3
4
5
$ adb shell
shell@ $ screenrecord --verbose /sdcard/demo.mp4
(press Ctrl-C to stop)
shell@ $ exit
$ adb pull /sdcard/demo.mp4

screenrecord使用设备的显示分辨率和方向作为默认值,也可设定为任意支持的分辨率和比特率.

你应该知道的screenrecord局限:

  1. 有些设备可能不能以原生的分辨率录制,如果遇到问题可以高低分辨率再尝试
  2. 不支持录制屏幕旋转,如果录制中发生旋转,那么录像中的部分屏幕将被切除.
  3. 无声音

screenrecord选项

—help

打印帮助

—size <WIDTHxHEIGHT>

—bit-rate <RATE>

设定比特率,默认为4Mb/s,如screenrecord --bit-rate 6000000 /sdcard/demo.mp4

—time-limit <TIME>

设置录制时间,单位秒,默认为180s.

—rotate

将输出旋转90度,试验特性

—verbose

在CLI中打印日志,如果不设置运行时将无任何输出.

Monkey

UI/Application Exerciser Monkey是一个测试用的程序,它能产生大量伪随机但可重复的用户动作,如点击,按压,手势以及一些系统级的事件.

简单的使用命令如下,它将打开应用,发送500个随机操作.

1
adb shell monkey -v -p your.package.name 500

更详细的文档参见 UI/Application Exerciser Monkey

其它shell命令

以下操作会列出所有可用shell命令

1
adb shell ls /system/bin

大部命令都有帮助信息.

下表列出最常用的5个命令的简介.

dumpsys

dump系统数据到屏幕

dumpstate

dump状态到文件

logcat [option]… [filter-spec]…

打开系统和应用的log并输出到屏幕

dmesg

打印kernel的调试信息

start/stop

开始(停止执行)一个设备实例

开启logcat

安卓的日志系统提供一种收集和查看系统调试信息的机制. 来自应用的系统不同部分的日志被缓存到一个环形的系列日志中,可以被logcat命令查看和过滤.

logcat的基本用法为:

1
[adb] logcat [option] ... [filter-spec] ...

关闭adb server

在一些情况下可能需要关闭adb server再启动,比如失去响应时,重启可能会解决问题.

使用kill-server命令可以终止server, 再次使用adb命令会自动启动server.

无线使用

adb通常通过USB使用,但是也可以使用WIFI连接.

  1. 将设备和adb主机连接到同一wifi下,但并不一定所有的wifi都适合, 也许还需要配置合适的防火墙规则.
  2. 将设备用USB连接到主机
  3. 确保adb以usb方式运行

    1
    2
    $ adb usb
    restarting in USB mode
  4. 通过usb连接设备

  5. 将adb主机以tcpip方式重启

    1
    2
    $ adb tcpip 5555
    restarting in TCP mode port: 5555
  6. 查看设备的ip

  7. 将adb主机连接到设备

    1
    2
    $ adb connect #.#.#.#
    connected to #.#.#.#:5555
  8. 断开usb,确认连接正常

如果连接断开,确认双方wifi正常,重新执行connect动作,如果不成功,则可以kill-server再从头来一次.

Contents
  1. 1. sqlite3
  2. 2. 屏幕录制
    1. 2.1. screenrecord选项
      1. 2.1.1. —help
      2. 2.1.2. —size
    2. 2.2. —bit-rate
      1. 2.2.1. —time-limit
      2. 2.2.2. —rotate
      3. 2.2.3. —verbose
  3. 3. Monkey
  4. 4. 其它shell命令
    1. 4.1. dumpsys
    2. 4.2. dumpstate
    3. 4.3. logcat [option]… [filter-spec]…
    4. 4.4. dmesg
    5. 4.5. start/stop
  5. 5. 开启logcat
  6. 6. 关闭adb server
  7. 7. 无线使用