adb shell 命令

简单点讲,adb 命令是 adb 这个程序自带的一些命令,而 adb shell 则是调用的 Android 系统中的命令,这些 Android 特有的命令都放在了 Android 设备的 system/bin 目录下,如下在命令行中敲这样一个命令:
root@generic:/ # adb shell jjj

adb shell jjj

/system/bin/sh: jjj: not found   
很明显,在 bin 目录下并不存在这个命令。

想看看有哪些命令,也不想去找文档,于是就启动模拟器,将整个 system/bin 目录复制了出来,然后一个一个的去试。

C:\Users\Administrator>adb pull /system/bin/ E:\system-bin

打开这些文件就可以发现,里面有些命令其实是一个 shell 脚本,例如打开 monkey 文件:

打开 am:

pm

Package Manager , 可以用获取到一些安装在 Android 设备上得应用信息
pm 的源码 pm.java , 直接运行
adb shell pm 可以获取到该命令的帮助信息

pm list package 列出安装在设备上的应用

不带任何选项:列出所有的应用的包名

-s:列出系统应用

adb shell pm list package -s

-3:列出第三方应用

adb shell pm list package -3

-f:列出应用包名及对应的apk名及存放位置

adb shell pm list package -f

root@generic:/ # pm list package -f

pm list package -f

package:/system/app/SoundRecorder.apk=com.android.soundrecorder

package:/system/app/SdkSetup.apk=com.android.sdksetup

-i:列出应用包名及其安装来源,结果显示例子:

adb shell pm list package -i

package:com.zhihu.android installer=com.xiaomi.market

adb shell pm list package -i

命令最后加上grep关键字,可以很方便地查找自己想要的应用

参数组合使用,例如,查找三方应用中知乎的包名、apk存放位置、安装来源:

root@generic:/ # pm list package -f -i fused

pm list package -f -i fused

package:/system/app/FusedLocation.apk=com.android.location.fused  installer=null

pm path 列出对应包名的 .apk 位置

root@generic:/ # pm path com.android.smoketest

pm path com.android.smoketest

package:/data/app/SmokeTestApp.apk

pm list instrumentation , 列出含有单元测试 case 的应用,

后面可跟参数 -f (与 pm list package 中一样),以及 [target=package]

pm install , 安装应用

目标 apk 存放于 PC 端,请用 adb install 安装
目标 apk 存放于 Android 设备上,请用 pm install 安装

pm uninstall , 卸载应用,同 adb uninstall ,
后面跟的参数都是应用的包名

am

am start 程序名 , 启动一个 Activity,已启动系统相机应用为例

启动通讯录

root@generic:/ # am start com.android.contacts

am start com.android.contacts

Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.L

AUNCHER] pkg=com.android.contacts }

启动拨号器拨打 10086

root@generic:/ # am start -a android.intent.action.CALL -d tel:10086

am start -a android.intent.action.CALL -d tel:10086

Starting: Intent { act=android.intent.action.CALL dat=tel:xxxxx

am monitor , 监控 crash(闪退) 与 ANR(Application Not Responding)

root@generic:/ # am monitor

am monitor

Monitoring activity manager...  available commands:

(q)uit: finish monitoring

Input

这个命令可以向 Android 设备发送按键事件,其源码 Input.java

input text , 发送文本内容,不能发送中文(前提先将键盘设置为英文键盘)

root@generic:/ # input text testrabbit

screencap

adb shell screencap -p /sdcard/screen.png  截图命令

截屏,保存至 sdcard 目录

root@generic:/ # screencap -p /sdcard/screen.jpg

screencap -p /sdcard/screen.jpg

查看到截图如下:

getprop

查看 Android 设备的参数信息,只运行 adb shell getprop,结果以 key : value 键值对的形式显示

adb shell getprop ro.build.version.sdk

获取设备的 sdk 版本

adb shell getprop ro.build.version.release

获取手机系统版本:

学习交流QQ:270224761 (ep)

Android常用adb命令总结(二)的更多相关文章

  1. Android 常用 adb 命令

    查看原文:http://blog.csdn.net/u010818425/article/details/52266593 (一)基础操作 安装app adb install -r xxx.apk / ...

  2. Android 常用 adb 命令总结

    Android 常用 adb 命令总结 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命 ...

  3. [原创]Android 常用adb命令总结

    [原创]Android 常用adb命令总结 1 adb介绍 1.1 adb官方网站及下载 官方网站下载安装:http://adbshell.com/downloads 1.2 adb安装是否成功检查? ...

  4. 『与善仁』Appium基础 — 5、常用ADB命令(二)

    目录 9.查看手机运行日志 (1)Android 日志 (2)按级别过滤日志 (3)按 tag 和级别过滤日志 (4)日志格式 (5)清空日志 10.获取APP的包名和启动名 方式一: 方式二: 11 ...

  5. 【转】Android 常用 adb 命令总结

    原文地址:http://testerhome.com/topics/2565 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Andr ...

  6. Android 常用 adb 命令总结【转】

    原文链接 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命令将会用于自动化测试的脚本当中 ...

  7. Android常用adb命令总结(一)

    ADB是android sdk里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的andriod设备. ADB是一个客户端-服务器端程序,其中客户端是你用来操作的电脑,服务器端是an ...

  8. Android常用adb命令

    1.进入手机命令行模式 adb shell 有多部手机的话 adb -s + 手机编号 + shell 2.安装apk adb install 然后将apk文件拖进命令行 卸载apk adb unin ...

  9. 常用adb命令总结

    前言 很早就想整理一下自己平时常用的一些adb命令,不仅为了便于以后查找,而且整理的过程自己又重新复习了一遍,但是当我开始在度娘一搜的时候,发现很多人已经写的非常详细了,尤其是当我发现了这篇adb概括 ...

随机推荐

  1. 【Kafka】《Kafka权威指南》——提交和偏移量

    KafkaConsumer(消费者)每次调用 poll()方法,它总是返回由生产者写入 Kafka但还没有被消费者读取过的记录, 我们因 此可以追踪到哪些记录是被群组里的哪个消费者读取的.之前已经讨论 ...

  2. Linux中jar包启动和jar包后台运行

    Linux 运行jar包命令如下: 方式一: java -jar shareniu.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? ...

  3. MS SQL 设置自增长字段默认值

    dbcc checkident(tablename,reseed,value) 其中tablename为你所要修改的表名,value为默认值.比如你要设置自增长字段值从1开始,则: )

  4. postgres centos 创建数据库 创建用户

    一个小的流程关于如何创建数据库和用户,用以加强印象,以及留档备份 一.创建账户 1.登录postgres账户 su postgres 2.进入psql 指令 psql 3.创建用户 create US ...

  5. 易优CMS:arclist 文档列表

    arclist 文档列表(配合arcpagelist标签可实现ajax瀑布流分页)  [基础用法] 名称:arclist 功能:获取系统主从表模型(如:文章.软件.图集.产品等)的一列文档,也称自由列 ...

  6. jQuery 源码解析(二十八) 样式操作模块 scrollLeft和scrollTop详解

    scrollLeft和scrollTop用于获取/设置滚动条的,如下: scrollLeft(val) ;读取或设置整个页面的水平滚动条距离 scrollTop(val) ;读取或设置整个页面的垂直滚 ...

  7. 一起学Android之Animation

    本文以一个简单的小例子,简述在Android开发中,动画的简单应用,仅供学习分享使用. 概述 android提供了各种强大的apis,用于将动画应用到ui元素中,来丰富应用程序的功能和应用. 动画分类 ...

  8. Python中为什么不能用可变对象作为默认参数的值

    def func(numbers = [], num=1): numbers.append(num) for number in numbers: print(number) func() >& ...

  9. Display a Detail View with a List View 主子视图-列表视图与详细信息视图同时显示

    In this lesson, you will learn how to display a Detail View together with a List View. For this purp ...

  10. SQLi-LABS Page-1(Basic Challenges) Less11-Less22

    Less-11 GET - Blind - Time based - double quotes http://10.10.202.112/sqli/Less-11/ 尝试登录: username:a ...