adb shell

执行Shell命令

Adb提供了shell来在模拟器或手机上运行各种各样的命令,这些命令的二进制形式存在于这个路径中:

/system/bin/...

无论是否进入adb远程shell,都可以使用 shell 命令来执

在未进入远程shell的情况下可以按下述格式执行单条命令:

adb [-d|-e|-s {<serialNumber>}] shell <shellCommand>

启动远程shell使用下面的格式:

adb [-d|-e|-s {<serialNumber>}] shell

退出远程shell时使用CTRL+D 或 exit 终止会话。

以下是可以使用的shell命令的更多信息。



adb shell 在目标模拟器或手机上启动远程SHELL

adb shell [<shellCommand>] 在目标模拟器或手机上执行shellCommand然后退出远程SHELL

使用Monkey进行UI或应用程序测试

Monkey是运行于模拟器或手机上的一个程序,通过生成伪随机的大量的系统级的用户事件流来模拟操作,包括单击、触摸、手势等。从而为正在开发中的应用程序通过随机响应进行压力测试。

最简单使用monkey的方式是通过下面的命令行,它可以运行指定的应用程序并向其发送500个伪随机事件。

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

详情 参考: http://developer.android.com/tools/help/monkey.html

adb shell dumpsys activity

列出目标设备上的activity栈(back stack)和任务(task)的信息, 还有其他组件的一些信息和一些关于进程的信息

adb shell dumpsys packages

列出一些系统信息和所有应用的信息。这个命令的输出很庞大,在三星nexus上的输出有12000多行。这些信息

都非常详细,包括Features,Activity Resolver Table等。以下是输出的主要信息:

还有两个比较好用的命令是adb shell amadb shell pm,

这两个命令在frameworks/base/cmds下面。

am命令主要用于管理Activity,(可以理解为 activityManager)例如启动,停止Activity(eclipse在运行Activity就使用了这个命令),发送intent;

pm命令则主要用于管理应用package的管理,(可以理解为 packagesManager)有点像控制面板的添加和删除程序。

adb shell pm list permissions

列出目标平台上的所有权限

adb shell pm list packages

列出目标设备上安装的所有app的包名

adb shell pm list features

列出目标设备上的所有feature

使用adb命令启动一个Activity

adb shell am start -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)。

  1. adb shell am start -n com.growingwiththeweb.example/.MainActivity
  2. adb shell am start -n com.growingwiththeweb.example/com.growingwiththeweb.example.MainActivity</s


su
1.作用
su的作用是变更为其它使用者的身份,超级用户除外,需要键入该使用者的密码。



所有命令都是运用超级终端下的BUSYBOX工具集。以下简述

busybox
BusyBox 是标准 Linux 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀.简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令。

1、 BusyBox 的诞生
  BusyBox 最初是由 Bruce Perens 在 1996 年为 Debian GNU/Linux 安装盘编写的。其目标是在一张软盘上创建一个可引导的 GNU/Linux 系统,这可以用作安装盘和急救盘。
  2、busybox的用法
  可以这样用busybox
  #busybox ls
  他的功能就相当运行ls命令
  最常用的用法是建立指向busybox的链接,不同的链接名完成不同的功能.
  #ln -s busybox ls
  #ln -s busybox rm
  #ln -s busybox mkdir
  然后分别运行这三个链接:
  #./ls
  #./rm
  #./mkdir
  就可以分别完成了ls rm 和mkdir命令的功能.虽然他们都指向同一个可执行程序busybox,但是只要链接名不同,完成的功能就不同,很多linux网站都提供busybox的源代码下载。
  3、配置busybox
  busybox的配置程序和linux内核菜单配置方式简直一模一样.熟悉用make menuconfig方式配置linux内核的朋友很容易上手.
  #cp busybox-1.00.tar.gz /babylinux
  #cd /babylinux
  #tar xvfz busybox-1.00.tar.gz
  #cd busybox-1.00
  #make menuconfig
  下面是需要编译进busybox的功能选项。
  General Configuration应该选的选项
  Show verbose applet usage messages
  Runtime SUID/SGID configuration via /etc/busybox.conf
  Build Options
  Build BusyBox as a static binary (no shared libs)
  这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文件,运行时才独立于其他函数库.否则必需要其他库文件才能运行,在单一个linux内核不能使它正常工作.
  Installation Options
  Don‘t use /usr
  这个选项也一定要选,否则make install 后busybox将安装在原系统的/usr下,这将覆盖掉系统原有的命令.选择这个选项后,make install后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向它的链接.
  其它选项都是一些linux基本命令选项,自己需要哪些命令就编译进去,一般用默认的就可以了,配置好后退出并保存。
  4、编译并安装busybox
  #make
  #make install
  编译好后在busybox目录下生成子目录_install,里面的内容:
  drwxr-xr-x 2 root root 4096 11月 24 15:28 bin
  rwxrwxrwx 1 root root 11 11月 24 15:28 linuxrc -> bin/busybox
  drwxr-xr-x 2 root root 4096 11月 24 15:28 sbin
  其中可执行文件busybox在bin目录下,其他的都是指向他的符号链接.

时间: 2024-08-27 13:36:27

adb shell的相关文章

adb shell常用命令

adb shell常用命令: 按下OK键   device.press('KEYCODE_DPAD_CENTER','DOWN_AND_UP') 长按某个按键:  device.drag((236,440),(236,440),2,10) 相应的按键对应的名称如下: home键:KEYCODE_HOME back键:KEYCODE_BACK send键:KEYCODE_CALL End键:   KEYCODE_ENDCALL 上导航键:KEYCODE_DPAD_UP 下导航键:KEYCODE_D

转adb Shell root 权限

因为开发需要,我经常会用到adb这个工具(Android Debug Bridge),我们都知道adb shell默认是没有root权限的,修改系统文件就很不方便了,adb push一个文件就提示Permission Denied.删除system下的文件也没有权限.其实有两种方法可以获取adb shell的root权限,这两种方法的前提都是手机已经root. 1.用su可以提权,直接执行su就会看到用户命令提示符由"$"变成了"#",如果手机没有root,会提示s

ADB enhanced Putty (replacement for "adb shell" co

We all know that running "adb shell" from the command line is pretty crap, and when using a latter busybox version which has coloring support it's ultimately crap. One workaround was usually to start a telnet server on the phone, and use putty t

adb shell 命令详解

adb介绍 SDK的Tools文件夹下包含着Android模拟器操作的重要命令adb,adb的全称为(Android Debug Bridge就是调试桥的作用.通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序.借助这个工具,我们可以管理设备或手机模拟器的状态.还可以进行以下的操作:  1.快速更新设备或手机模拟器中的代码,如应用或Android 系统升级: 2.在设备上运行shell命令: 3.管理设备或手机模拟器上的预定端口: 4.在设备或手机模拟器上复制或粘贴文件

android进入adb shell步骤及修改sqlite数据库文件的权限

1 准备工作 (1)将adb.exe从  \Sdk\platform-tools目录下移动到 \Sdk\tools目录下(主要是看emulator这几个文件在哪个文件夹就把adb.exe移动到哪个文件夹): (2)将sqlite3.exe从  \Sdk\platform-tools目录下移动到 \Sdk\tools目录下(同上) 2 打开CMD界面,cd到 \Sdk\tools目录下,运行指令 adb shell进入adb界面内 3 定位到数据库所在的位置,chmod 777 file 修改文件

adb &amp; adb shell 相关命令

在Mac上配置adb命令 在Mac OS中使用adb命令时,应进行变量配置,步骤如下: 一.终端中输入 cd ~ 二.输入touch .bash_profile 回车 touch:如果没有,则创建文件,如果有,更新一下文件时间 三.输入open -e .bash_profile open:打开文件 回车后会在TextEdit中打开这个文件(如果未配置过环境变量,应该是个空白文件).在文件中加如以下内容 export PATH=${PATH}:/Users/admin/Applications/a

Android查询:模拟键盘鼠标事件之adb shell 实现

1. 发送键盘事件: 命令格式1:adb shell input keyevent "value" 其中value以及对应的key code如下表所列: KeyEvent Value      KEYCODE     Comment 0       KEYCODE_UNKNOWN 1       KEYCODE_MENU     在SDK2.1的模拟器中命令失效,sendevent命令可行 2       KEYCODE_SOFT_RIGHT 3       KEYCODE_HOME

【Android】-- adb shell 命令探索

ADB是什么,做android开发的没有不知道的. window下运行cmd,输入adb help就会打印adb都能够做的事情,包括 adb push ..adb pull .. adb devices  adb install... 等等..并且一搜一大把. 其中有一个命令叫做  adb shell,android是基于linux的,shell模式下linux的命令可是非常多的,android去掉了许多linux的命令,那么从这写命令里面又能够发现什么宝藏呢?寻宝之旅开启!! 首先linux的

怎么在命令模式下使用adb / 进入adb shell(脚本)

1.打开winows菜单,输入cmd命令,点击确定,进入命令模式下. 2.输入命令 D:(这里输入的D表示你的sdk存放的盘下) 然后回车输入cd 3.然后选择你sdk路径,复制路径. 4.鼠标点击cmd,选择编辑,选择粘贴 将复制的路径粘贴到 命令行 回车. 5.然后输入命令adb start-service 打开adb. 出现如图所示,表示adb服务开启成功,就可以使用adb命令了. 6.使用adb  shell 命令.--- 进入adb shell(脚本) 原文:http://jingya

adb shell 查看系统属性(用来判断特殊的操作系统)

一般来讲,在android程序开发中进行需要判断设备类型和系统版本 1.设备类型判断 比如判断属于Google Nexus 5,Nexus 7,MIUI v5, MIUI v6,三星设备,魅族设备等: 这类型的问题都使用的android.os.Build.MODEL来判断,android.os.Build.MODEL是一个String变量,可以根据String中一些特殊字段来判断android设备属于什么设备,比如判断Nexus 7,代码入下 public static boolean isN7