adb是Android系统中非常重要的一个命令工具,很多人知其一不知其二,在此笔者系统整理一下,以方便他人学习。
Android下的命令工具主要放置在sdk下的platform-tools目录和tools目录,platform-tools目录下的工具如下:
dx.bat : .dex转译工具
aapt.exe: android application package tools 应用打包工具
adb.exe : 调试桥工具(android 与 windows间的桥梁)
aidl.exe :
tools目录下的工具主要有:
android.bat :
emulator.exe :
ddms :dalvik debug manager system. dalvik虚拟机调试管理系统
monitor.bat :
monkeyrunner.bat : 测试工具
sqlite3.exe :数据库工具
mksdcard.exe :
draw9patch.bat :9PATCH图片制作工具。
在这里,我们来介绍一下其中非常重要的一个命令:adb命令
1.关闭adb服务
adb kill-server
2.启动adb服务
adb start-server
3.更出当前运行的全部Android设备(包括模拟器和手机)
adb devices
4.安装应用程序到Android设备(当前只有一个设备运行时)
adb install APK_NAME
如:adb install G:\HelloWorld.apk
5.卸载应用程序(当前只有一个设备运行时),卸载时要输入指定的包名
adb uninstall PACKAGE_NAME
如:adb uninstall com.love.helloworld
6.安装应用程序到指定Android设备(当前有多个设备运行时)
adb -s emulator-5554 install APK_NAME
如: adb -s emulator-5554 install G:\HelloWorld.apk
7.卸载指定Android设备上的应用程序(当前有多个设备运行时),卸载时要输入指定的包名
adb -s emulator-5554 uninstall PACKAGE_NAME
如:adb -s emulator-5554 uninstall com.love.helloworld
8.卸载应用程序时,保留数据和缓冲目录,只卸载应用程序。
adb uninstall -k PACKAGE_NAME
如:adb uninstall -k com.love.helloworld
9.从Android设备导出文件到电脑。
adb pull <REMOTE_PATH> <LOCAL_PATH>
如:adb pull /mnt/sdcard/b.jpg G:/images/a.jpg
10.从电脑导入文件到Android设备
adb push <LOCAL_PATH> <REMOTE_PATH>
如:adb push G:/images/a.jpg /sdcard/b.jpg
11.挂载到Linux终端,以运行Linux命令。该命令相当于相当于windows中的cmd。
adb shell
子命令如下:
#ps :列出所有进程文件
#ls :列出所有目录和文件
#ls -l :列出所有文件详细信息
#kill PID : 杀死,关闭正在运行的进程
# cd sdcard : 进入到sdcard目录
#cd .. : 返回上一级目录
#cd / : 返回到根目录
#exit : 退出Linux系统终端。
1)压力测试
adb shell
#monkey
#monkey 100
monkey -s 100 -v 100
#monkey -p com.love.helloworld 100
2)更改文件的访问模式
adb shell
#cd data/data/com.love.helloworld/files
ls -l
chmod 777 info.txt----public
chmod 600 info.txt ----default(private)
3)查看Android设备的内存和CPU信息
adb shell
ls
cd proc
ls
cat cpuinfo----打开查看CPU信息文件
cat meminfo----打开查看内存信息文件
4)查看流量信息(模拟器不支持,只能查看真实手机的流量信息)
adb -s 133442342323E shell
su ----请求ROOT权限
ls
cd proc
ls -l
cat uptime ---手机加电之后开机的时间
cd uid-stat---应用程序的UID文件夹
ls
cd 10093
ls -l
cat tcp_rcv---查看接收的流量数据
cat tcp_snd---查看发送的流量数据信息
5)查看数据库信息
adb shell
cd data/data/com.love.helloworld
cd database
sqlite3 person.db ---打开数据库
select * from person; -----查询表中的数据
.tables ------查看所有的表
.schema -----查看所有的创建表、视图
.help ----查看帮助
.header(s) ON-----是否显示列头信息
.mode column ?table?------指定数据显示风格
.nullValue NULL-----空值数据显示问题
6)打印内核的调试信息
adb shell dmesg
7)查看系统的属性(以键值对的形式列出)
adb shell
#getprop ----列出系统属性
#watchprops----动态监视系统属性变化,如修改系统的语言为中文赐会打印出:
#watchprops
1269420653 persist.sys.language = 'zh'
1269420653 persist.sys.language = 'CN'
8)清除模拟器或者真机上的数据
adb shell
#wipe system----清除/system下的数据(有时删除该目录下的数据会导致系统运行出问题,请慎重。)
#wipe data ----清除/data下的数据
9)管理activity
命令格式:am [subcommand] [options]
相关参数:
[-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[-n <COMPONENT>] [-f <FLAGS>] [<URI>]
a)开启一个activity
am start <INTENT>
如:打开发送邮件的activity:#am start -a android.intent.action.SEND_MULTIPLE
b)关闭一个activity
am stop <INTENT>
如:关闭发送邮件的activity: # am stop -a android.intent.action.SEND_MULTIPLE
c)发送一个广播
am broadcast <INTNET>
(注:除此之外还有 start profiling和Instrumentation命令,有兴趣的可自行研究一下。)
10)管理wifi,power和data
命令格式:svc [wifi | data | power] [option]
a)打开或关闭WIFI
svc wifi [enable | disable]
b)管理电源的亮的状态
svc power stayon [true | false | usb | ac]
true:电源一直保持stay on的状态
usb:插上usb才保持stay on
ac : 充电的时候
12.查看所有日志信息
adb logcat
13.导出日志到文件,同时保留执行的进程。
adb logcat > FILE_PATH/FILE_NAME
如:adb logcat > G:/log.txt
14.导出日志到文件,并结否进程。
adb logcat -d > FILE_PATH/FILE_NAME
如:adb logcat -d > G:/log2.txt
这里列出的也许不是全部命令,但是我们最常用的一些ADB命令,希望对大家有所帮助吧。