您的位置:首页 > 运维架构 > Shell

ADB技能使用初级篇(上)

2017-04-06 10:45 190 查看
作为一名android开发的同学,还是测试开发者,adb命令都是工作中必备的技能,今天主要梳理一下adb的初级使用技能。

adb是什么?,我们来看看Google官方给它的解释:

adb (android debug bridge) 是一个通用命令行工具,其允许你与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。

adb是一个强大的命令行工具,我们通过它可以去操作我们的设备,adb的位置一般在android sdk的platform-tools目录下。我们看看adb强大的命令。

1.adb devices

devices命令可以检测当前电脑上连接了那些设备,它的输出方式为

List of devices attached

serial_number state

serial_number :由adb创建的序列号,用来标示一个设备

state:状态号,它有三种状态

offline — 实例未连接到 adb 或不响应。

device — 实例现在已连接到 adb 服务器。请注意,此状态并不表示 Android 系统已完全启动且可以运行,因为在此实例连接到 adb 时系统仍在启动。不过,在启动后,这将是模拟器/设备实例的正常运行状态。

no device — 未连接模拟器/设备。



2.adb [-d|-e|-s serial_number] <子命令> 向特定的设备发送命令

如果只有一个设备或者模拟跟电脑相连,adb默认会将命令发送到该设备上,实际工作中我们的工作机上可能不止连接了一台设备,那如何向一台特定的设备发送命令呢

-d 将命令发送到真实的android设备上

-e 将命令发送到android的模拟器

-s 设备或者模拟器的序列号

3. install [options] path 安装应用:例如在一个手机上装一个apk,adb -d -s 39ad65 install test.apk

path:安装应用的绝对路径名称

[options]:可选项,已有以下几个:

-l:安装具有转发锁定功能的软件包。

-r:重新安装现有应用,保留其数据。

-t:允许安装测试 APK。

-i installer_package_name:指定安装程序软件包名称。

-s:在共享的大容量存储(如 sdcard)上安装软件包。

-f:在内部系统内存上安装软件包。

-d:允许版本代码降级。

-g:授予应用清单文件中列出的所有权限。

4 uninstall [options] package 卸载应用

默认卸载应用时删除应用缓存,options 可选参数为-K表示卸载应用后保留数据和缓存目录,卸载应用的时候指定应用包名即可。

5.adb pull/adb push 命令

adb pull remote local 从设备或者模拟器复制文件到本地

adb push local remote 将文件复制到设备或者模拟器

local 和 remote 指的是开发计算机(本地)和模拟器/设备实例(远程)上目标文件/目录的路径。例如:adb push test.txt /sdcard/test.txt

6.adb forward 端口转发命令

这个命令也是超级实用的一个命令,这个命令和其他工具配合实用,就可以是实现实时抓取android手机的网络请求数据

adb forward tcp:8888 tcp:9999 表示从当前主机的8888端口到设备的9999端口的转发

7.adb kill-server adb start-server

为啥这个两个命令放到一起说呢,因为一般它们都是配合实用的,这一对命令使用频率非常高,adb kill-server 杀掉adb进程,当我的手机连接到电脑上,发现adb启动不了,我们可以先用kill-server命令,再使用adb start-server命令来启动adb进程。

二.adb shell 命令;

进入adb shell命令也非常简单,直接在指定的设备上执行adb shell即可

pm命令

install [options] path 安装应用程序,pm install path 在root手机root情况下可以实现静默安装,

-l:安装具有转发锁定功能的软件包。

-k:移除软件包后保留数据和缓存目录。

-r:重新安装现有应用,保留其数据。

-t:允许安装测试 APK。

-i installer_package_name:指定安装程序软件包名称。

-s:在共享的大容量存储(如 sdcard)上安装软件包。

-f:在内部系统内存上安装软件包。

-d:允许版本代码降级。

-g:授予应用清单文件中列出的所有权限。

uninstall [options] package 卸载一个应用

-k:移除软件包后保留数据和缓存目录

2.clear package 清除目标应用的所有数据

3. am start 命令 例如启动一个Activity

adb shell am start -n 包名/包名.类名

4. force-stop package

强行停止与 package(应用的包名称)关联的所有应用

5. kill [options] package

终止与 package(应用的包名称)关联的所有进程。此命令仅终止可安全终止且不会影响用户体验的进程。

–user user_id | all | current:指定将终止其进程的用户;如果未指定,则终止所有用户的进

6.ps 命令 获取进程信息

输出格式:

USER PID PPID VSIZE RSS WCHAN PC NAME

USER : 进程的当前用户;

PID : process ID的缩写,也就进程号;

PPID : process parent ID,父进程ID

VSIZE : virtual size,进程虚拟地址空间大小;

RSS : 进程正在使用的物理内存的大小;

WCHAN : 进程如果处于休眠状态的话,在内核中的地址;

PC : program counter,

NAME : process name,进程的名称

这些都是一些常用的adb命令,一些adb的高级使用方式和常见问题解决,将在下次分享出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息