Android 常用命令

Android 常用命令,使用时注意空格和区分大小写

使用Android命令,需配置环境变量。Mac配置Android环境变量,参看这里

这里仅记录一些用过的常用命令,获取更多更全的资料请参看官方文档:http://developer.android.com/tools/help/adb.html

一、adb sqlite3 (数据库操作)

1. 输入 “adb shell” 进入shell

2. 使用 cd 命令切换到数据库所在目录,如 “cd data/data/<package-name>/databases”

3. 输入 “sqlite3 数据名.db” 打开数据库

或者跳过2直接输入全路径打开,如 “sqlite3 data/data/<package-name>/databases/<databaseName.db>”

4. ok,进入数据库,可以操作数据库了

输入 “.tables” 查看数据库中的表

输入 “.schema [<tableName>]” 查看建表sql语句

输入 “.dump [<tableName>]” 查看建表以及插入数据的sql语句

输入 “.exit” 或 “.quit” 或者按 “CTRL + D” 退出 sqlite3,返回adb shell

(以上命令需加 “." 点号前缀)

5.  使用增删改查等语句,注意使用 “;” 分号结束语句。

6.  查询表结构 

select * from sqlite_master where type='table' and name='table_name'

参考:http://developer.android.com/tools/help/sqlite3.html

其它补充:

windows环境下,adb sqlite3 的 select 语句,发现查询结果中文显示为乱码

解决:cmd模式下,输入 “chcp 65001” 切换为UTF-8格式,可以看到窗口的字体变了样,右键窗口标题栏,点 “属性” 》》“字体” 》》修改下字体类型和大小。(输入 “chcp 936” 可以切换回中文格式)

二、adb pull (复制设备上内容到PC端)

adb pull <设备目录|文件> <PC端目录>

1. 复制文件,目标目录需存在

adb pull /data/data/<package-name>/databases/<databaseName.db>  ~/Desktop/db/

复制数据库文件到桌面,桌面db文件夹需先存在

2. 复制文件夹,目标目录不存在会创建

adb pull /data/data/<package-name>/databases  ~/Desktop/db/

复制数据库文件夹到桌面,桌面db文件夹不存在会创建

3. 其它补充

在模拟器环境测试成功,真机显示 “daemon started successfully”,应该是需root权限

windows环境下,目标目录可能需要输入全路径,如 "e://db"

三、adb push (复制PC端的内容到设备)

adb push <PC端目录|文件> <设备目录>

使用起来和 adb pull 差不多

四、adb install (安装应用)

adb install [options] <PATH>

例如:adb install Downloads/test.apk

一般用这个可以搞定,如果提示 INSTALL_FAILED_ALREADY_EXISTS(安装失败,应用已经存在)

可以使用 -r 参数安装。如果还是安装失败,请查看ROM和SD卡空间

options  参数

-l: Install the package with forward lock.

-r: 不删除数据情况下,安装一个已经存在的应用

-t: 安装测试应用

-i <INSTALLER_PACKAGE_NAME>: 指定安装包名称

-s: 安装在SD卡

-f: 安装在ROM

-d: 允许代码版本降低

五、adb shell rm (删除文件)

使用需进入 shell 模式,cd 到所需目录

1. rm xxx (删除XXX文件)

2. rmdir xxx (删除xxx空文件夹)

3. rm -r xxx (删除xxx文件夹及内容)

六、关于没有Root的真机使用ADB命令

之前一直是模拟器和Root真机才能使用ADB,真机如果没有Root不能使用。

目前版本7.1.1的Google LG nexus 开发者选项中有Root 授权,启用后可以使用ADB命令。

键入以下命令:

1. adb shell   进入shell模式

2. su root  切换到Root身份

3. 可以正常使用其它ADB命令了。

参看

Android导出应用数据库 - 简书

Linux su 命令 | 菜鸟教程

七、keytool (证书工具)

首先,这个不是Android的命令,而是java的命令。写在这里是因为我是在用Android签名的时候用到的。

因为是java命令,需要配置过 java 环境变量。

1. 查询证书的内容

cd 到 证书所在目录

keytool -list -v -keystore my.keystore (my.keystore 是证书名)

2. 查询证书的别名

keytool -list -keystore my.keystore -alias abc (abc 是别名)

如果别名没有发现,会提示

keytool error:java.lang.Exception:Alias does not exist 

3. 直接查别名

keytool -list -v -keystore xxxx.keystore -storepass [密码]

上面那个太麻烦,用这个直接查出来

八、PM

// 列出手机安装的应用列表
adb shell pm list packages

// 查看某个应用,比如setting应用
adb shell pm list package | grep setting
adb shell pm list package -f  | grep setting

// 查找包名对应的安装包路径
adb shell pm path 要查询的包名

// 卸载应用
adb shell pm uninstall com.xx.xxx

九、PS 查询进程

adb shell ps com.test.demo

十、启动/关闭服务

// 启动服务
adb shell am startservice com.test.demo/.service.TestService
adb shell am stopservice com.test.demo/.service.TestService

// 启动应用
adb shell am start com.test.demo/.mainActivity
参数 -W 统计启动时间

十一、日志过滤

adb logcat | grep 标签名称

十二、Root手机删除文件

adb remount
...
adb rm -r 文件或目录
...
adb reboot

十三、PS 查询进程

// 查看所有进程
adb shell ps 

// 过滤查询进程(通过包名或部分包名)
adb shell ps com.android

十四、iptables 

这个是防火墙规则,之前搞限速有稍微了解。

规则需要保存,不然重启机器就会清除掉;要更好的维护规则,最好使用自定义链表。

这里不展开,请自行查询资料

// 查询OUTPUT下的规则列表
adb shell iptables -L OUTPUT -nv --line-number

// 转出限制,顺序不能颠倒,这里10/s应该是每秒10个包的意思??
adb shell iptables -A OUTPUT -m limit --limit 10/s -j ACCEPT
adb shell iptables -A OUTPUT -j DROP

十五、签名 apk

jarsigner -verbose -keystore 证书.jks -signedjar 已签名.apk 未签名.apk 证书别名

十六、input keyevent  (按某个键)

adb shell input keyevent 26  (26 是电源键)

十七、多设备

// 查询设备列表
adb devices
List of devices attached
SW7HGY7SORWGIR4D	device
192.169.1.17:5555	device

// 指定设备安装
adb -s SW7HGY7SORWGIR4D install -r abc.apk

十八、dumpsys

// 查看当前运行的应用包名和activity
adb shell dumpsys window | grep mCurrentFocus

// 查看指定应用的版本
adb shell dumpsys package com.xxx.xxx |grep version

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值