移动端常用adb命令

android list targets

显示系统中全部Android平台

android list avd

显示系统中全部AVD(模拟器)

android create avd --name 名称 --target 平台编号

创建AVD(模拟器)

emulator -avd 名称 -sdcard ~/名称.img (-skin 1280x800)

启动模拟器

android delete avd --name 名称

删除AVD(模拟器)

mksdcard 1024M ~/名称.img

创建SDCard

Linux(~/.android/avd)

Windows(C:\Documents and Settings\Administrator\.android\avd)

AVD(模拟器)所在位置

ddms

启动DDMS

adb devices

显示当前运行的全部模拟器

adb -s 模拟器编号 命令

对某一模拟器执行命令

adb install -r 应用程序.apk    -r:覆盖安装

安装应用程序

adb pull <remote> <local>

adb pull /addroid/lib/libwebcore.so .

获取模拟器中的文件

adb push <local> <remote>
adb push test.txt /tmp/test.txt 

向模拟器中写文件

adb shell

进入模拟器的shell模式

android

启动SDK,文档,实例下载管理器

adb shell

cd data/app

rm apk

exit

adb uninstall apk包的主包名

adb install -r apk

缷载apk

adb help

查看adb命令帮助信息

adb logcat -s 标签名
adb logcat>D:/logcat.txt

在命令行中查看LOG信息
输出日志到
D盘,关闭日志输出使用ctrl+c

源码\system\core\toolbox目录和源码\frameworks\base\cmds目录

adb shell后面跟的命令主要来自

adb remount (重新挂载系统分区,使系统分区重新可写)。

adb shell

cd system/app

rm *.apk

删除系统应用

adb root

获取管理员权限

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

启动Activity

adb forward tcp:5555 tcp:8000

发布端口

adb push <source> <destination></destination></source> 

      如:adb push test.txt /tmp/test.txt 

adb pull <source> <destination></destination></source> 

     如:adb pull /addroid/lib/libwebcore.so .

复制文件

adb bugreport 

查看bug报告

adb shell 

logcat -b radio

记录无线通讯日志

adb get-product 

adb get-serialno

获取设备的ID和序列号

adb shell 

sqlite3

#cd system/sd/data //进入系统内指定文件夹 

#ls //列表显示当前文件夹内容 

#rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件 

#rm xxx //删除文件xxx 

#rmdir xxx //删除xxx的文件夹

访问数据库SQLite3

kill/start -server

netstart -ano | find “5037”端口号

Tasklist |finder “5408”进程号

Taskkill  /f/t/im .......exe

esc可以退出手机虚拟机页面

关掉/开启服务器

exit()

退出shell命令

shell

dumpsys  cpuinfo

dumpsys cupuinfo|grep 包名

dumpsys meminfo com.esbook.reader

dumpsys window display|grep init

dumpsys power | grep mScreenOffTimeoutSetting

dumpsys power | grep mScreenBrightnessSetting

ps | grep{package-name}

getprop或者cat/system/build.prop | grep heap

cat /system/build.prop | grep vm

"cat /system/build.prop | grep product"
初始化:heapstartsize——最小值:会影响使用应用时的流程程度
最大内存:heapgrowthlimit———最大值:超出汇报oom
超限内存:heapsize——单个进程可用最大内存,若存在limit以limit为准
getprop| grep heapgrowthlimit

dumpsys package<app.package.name>

 

 获取CPU信息


获取占用内存信息

屏幕分辨率

屏幕超市时间获取

屏幕亮度相关设置

获取AUT的pid

内存设定值

进行outofmemoryvm

获取主板相关的信息






获取测试关注的清单文件信息

 

adb shell “dumpsys package com.subject.zhongchou” > d:\log.txt     尖括号的是管道符

log日志保存本地

adb shell

am force-stop com.esbook.reader”包名

am start -n 包名/页面名

am kill all

am kill [options]<package>

--user<USER_ID>|all|current
instrument[options]<COMPONTENT>
profile start <PROGRESS> <FILE>
profile stop <PROCESS>
set-debug-app[options]<PACKAGE>


sistent
clear-debug-app
broadcast[options]<INTENT>
 

monitor [options]

screen-compat [on|off] <PACKAGE>

display-size [reset|<WxH>]

display-density <dpi>

to-uri <INTENT>

to-intent-uri <INTENT>

am命令activity manager

强行关闭app

启动一个app

杀死所有进程
杀死指定进程
指定
user的进程杀死,
测试命令
PROCESS中运行profile结果写入file
停止process
设置
package包应用为debug模式。
        参数选项:-w|--per
进入调试模式保留值

清空之前用set-debug-app设置的应用
发送一个广播

echo "写入的内容" > test.txt

建立并写入文件信息

adb shell screencap <path_to_save_screen.png>

截图

adb shell monkey -p com.subject.zhongchou -throttle 100 -v -v 1000  > d:\monkey.txt

 

adb shell monkey

 -p com.UCMobilex86 100

  100

 100 -s 5

 100 -throttle 500 

100 -throttle 500 --randomize-throttle

-ignore-timeouts -v 100

-v

--ignore-native-crashes  


0:触摸事件百分比,即参数--pct-touch

    1:滑动事件百分比,即参数--pct-motion

    2:缩放事件百分比,即参数--pct-pinchzoom

    3:轨迹球事件百分比,即参数--pct-trackball

    4:屏幕旋转事件百分比,即参数--pct-rotation

    5:基本导航事件百分比,即参数--pct-nav

    6:主要导航事件百分比,即参数--pct-majornav

    7:系统事件百分比,即参数--pct-syskeys

    8:Activity启动事件百分比,即参数--pct-appswitch

    9:键盘翻转事件百分比,即参数--pct-flip

    10:其他事件百分比,即参数--pct-anyevent

设置包名

设置执行次数
设置种子数
设置随机时间的时间间隔

设置随机时间间隔
忽略ANR

设置日志级别如果-v-v最多三个

忽略monkey本身的异常,直到事件执行完毕

 

 

adb shell monkey --pct-touch 20 -v 100










adb shell  pm
            uninstall com.example.app
            list packages[options]<GROUP>
            list features
            list libararies
            list users
            path <PACKAGE>
            install [options]<PACKAGE>
            clear<PACKAGE>
            enable--user<USER_ID> [options] <PACKAGE_OR_COMPONENT>

            disable--user<USER_ID> [options] <PACKAGE_OR_COMPONENT>

            grant<PACKAGE_PERMISSION>
           revoke<PACKAGE_PERMISSION>
           set-install-location<LOCATION>(只用来调试程序)
                                  
0:让系统选择1:安装到内部的存储空间2:外部存储
            get-install-location
            set-permission-enforced<PERMISSION>[true|false]
            create-user<USER_NAME>
            remove-users<USER_ID>
            get-max-users

pm命令package manager
删除应用
选择性的打印权限
设备特性硬件之类
当前设备支持的
libs
系统上所有的
users
查询程序的安装路径
安装命令
对指定的
package删除所有数据
使数据包或者
component可用
是数据包或者
component不可用
授权给应用
撤销授权
默认安装位置
返回当前安装位置
是指定权限生效或者失效
增加一个新的
USER
删除一个USER
该设备所支持的最大user
 

adb shell am instrument [options]<COMPONENT>
 

参数[options]:

-e <key> <value> // -e选项需要放在-w选项之前

作用:提供了以键值对形式存在的测试选项。Android中提供了多种键值对,具体参见下表。

举例:-e class com.android.phone.FIncomingCallTests#testRejectCall

-r

作用:以原始形式输出测试结果。该选项通常是在性能测试时与-e perf true一起使用。

参数 <COMPONENT>:

-w <test_package_name>/<runner_class> //<test_package_name>和<runner_class>在测试工程的AndroidManifest.xml中查找

作用:保持adb shell打开直至测试完成

举例:-w com.android.phone.tests/com.android.phone.runners.FunctionalTestRunner

KEY                         VALUE
package      <Java_package_name>
class                  <class_name>
      <class_name>#method name
func                 true
unit                   true
size             [small|medium|large]
perf                  true
debug               true
log                  true
emma             true
coverageFile         <filename>

 

 

 monkey日志分析
1.Monkey: seed=1470511671524 count=100
    monkey执行的seed值和随机事件次数
 
2.AllowPackage: com.UCMobile.x86
  可以运行的包名
 
3.// Event percentages:
  //   0: 15.0%
  //   1: 10.0%
  //   2: 2.0%
  //   3: 15.0%
  //   4: -0.0%
  //   5: -0.0%
  //   6: 25.0%
  //   7: 15.0%
  //   8: 2.0%
  //   9: 2.0%
  //   10: 1.0%
  //   11: 13.0%
  分配事件的百分比,事件号可以参考第二部分
 
4.事件0:触摸事件
    Sending Touch (ACTION_DOWN): 0:(572.0,1105.0)
    Sending Touch (ACTION_UP): 0:(576.20734,1105.024)
 
5. 事件1:滑动事件
  Sending Touch (ACTION_DOWN): 0:(233.0,761.0)
  Sending Touch (ACTION_MOVE): 0:(208.49568,736.34766)
  Sending Touch (ACTION_MOVE): 0:(202.7063,729.8338)
  Sending Touch (ACTION_MOVE): 0:(183.89723,722.677)
  Sending Touch (ACTION_UP): 0:(174.83568,721.8229)
 
6.事件2:缩放事件
  Sending Touch (ACTION_DOWN): 0:(107.0,242.0)
  Sending Touch (ACTION_POINTER_DOWN 1): 0:(108.14705,248.53061) 1:(270.0,262.0)
  Sending Touch (ACTION_MOVE): 0:(110.117355,252.96329) 1:(267.9937,262.25485)
  Sending Touch (ACTION_MOVE): 0:(111.30056,261.88846) 1:(261.90106,262.58475)
  Sending Touch (ACTION_MOVE): 0:(113.11743,265.60138) 1:(253.92662,263.13382)
  Sending Touch (ACTION_POINTER_UP 1): 0:(113.29031,267.4419) 1:(248.60628,263.23257)
 
7.事件3:轨迹球事件
  Sending Trackball (ACTION_MOVE): 0:(3.0,-2.0)
  Sending Trackball (ACTION_MOVE): 0:(1.0,-1.0)
 
8.事件4:屏幕旋转事件(隐藏事件)
  Sending rotation degree=0,persist=true
 
9.事件5:导航事件(上下左右)
   Sending Key (ACTION_DOWN): 21    // KEYCODE_DPAD_LEF
 
10.事件6:主要导航事件(menu等)
  Sending Key (ACTION_DOWN): 23    // KEYCODE_DPAD_CENTER
 
11.事件7:系统按键事件(音量,home,返回按键等)
  Sending Key (ACTION_UP): 25    // KEYCODE_VOLUME_DOWN
 
12.事件8:启动应用事件
  Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.UCMobile.x86/com.UCMobile.main.UCMobile;end
 
13.事件9:键盘事件(隐藏显示键盘)
  Sending Flip keyboardOpen=true
 
14.事件10:其他按键
  Sending Key (ACTION_DOWN): 66    // KEYCODE_ENTER
  Sending Key (ACTION_UP): 66    // KEYCODE_ENTER
 
15.延时
  Sleeping for 300 milliseconds


16、异常情况

Monkey测试出现错误后,一般的分析步骤

看Monkey的日志(注意第一个swith以及异常信息等)

1. 程序无响应的问题:在日志中搜索 “ANR”

2. 崩溃问题:在日志中搜索“Exception”   (如果出现空指针, NullPointerException)  肯定是有bug


Monkey 执行中断,在log最后也能看到当前执行次数


键盘KEYCODE:
0 -->  "KEYCODE_UNKNOWN"
1 -->  "KEYCODE_MENU"
2 -->  "KEYCODE_SOFT_RIGHT"
3 -->  "KEYCODE_HOME"
4 -->  "KEYCODE_BACK"
5 -->  "KEYCODE_CALL"
6 -->  "KEYCODE_ENDCALL"
7 -->  "KEYCODE_0"
8 -->  "KEYCODE_1"
9 -->  "KEYCODE_2"
10 -->  "KEYCODE_3"
11 -->  "KEYCODE_4"
12 -->  "KEYCODE_5"
13 -->  "KEYCODE_6"
14 -->  "KEYCODE_7"
15 -->  "KEYCODE_8"
16 -->  "KEYCODE_9"
17 -->  "KEYCODE_STAR"
18 -->  "KEYCODE_POUND"
19 -->  "KEYCODE_DPAD_UP"
20 -->  "KEYCODE_DPAD_DOWN"
21 -->  "KEYCODE_DPAD_LEFT"
22 -->  "KEYCODE_DPAD_RIGHT"
23 -->  "KEYCODE_DPAD_CENTER"
24 -->  "KEYCODE_VOLUME_UP"
25 -->  "KEYCODE_VOLUME_DOWN"
26 -->  "KEYCODE_POWER"
27 -->  "KEYCODE_CAMERA"
28 -->  "KEYCODE_CLEAR"
29 -->  "KEYCODE_A"
30 -->  "KEYCODE_B"
31 -->  "KEYCODE_C"
32 -->  "KEYCODE_D"
33 -->  "KEYCODE_E"
34 -->  "KEYCODE_F"
35 -->  "KEYCODE_G"
36 -->  "KEYCODE_H"
37 -->  "KEYCODE_I"
38 -->  "KEYCODE_J"
39 -->  "KEYCODE_K"
40 -->  "KEYCODE_L"
41 -->  "KEYCODE_M"
42 -->  "KEYCODE_N"
43 -->  "KEYCODE_O"
44 -->  "KEYCODE_P"
45 -->  "KEYCODE_Q"
46 -->  "KEYCODE_R"
47 -->  "KEYCODE_S"
48 -->  "KEYCODE_T"
49 -->  "KEYCODE_U"
50 -->  "KEYCODE_V"
51 -->  "KEYCODE_W"
52 -->  "KEYCODE_X"
53 -->  "KEYCODE_Y"
54 -->  "KEYCODE_Z"
55 -->  "KEYCODE_COMMA"
56 -->  "KEYCODE_PERIOD"
57 -->  "KEYCODE_ALT_LEFT"
58 -->  "KEYCODE_ALT_RIGHT"
59 -->  "KEYCODE_SHIFT_LEFT"
60 -->  "KEYCODE_SHIFT_RIGHT"
61 -->  "KEYCODE_TAB"
62 -->  "KEYCODE_SPACE"
63 -->  "KEYCODE_SYM"
64 -->  "KEYCODE_EXPLORER"
65 -->  "KEYCODE_ENVELOPE"
66 -->  "KEYCODE_ENTER"
67 -->  "KEYCODE_DEL"
68 -->  "KEYCODE_GRAVE"
69 -->  "KEYCODE_MINUS"
70 -->  "KEYCODE_EQUALS"
71 -->  "KEYCODE_LEFT_BRACKET"
72 -->  "KEYCODE_RIGHT_BRACKET"
73 -->  "KEYCODE_BACKSLASH"
74 -->  "KEYCODE_SEMICOLON"
75 -->  "KEYCODE_APOSTROPHE"
76 -->  "KEYCODE_SLASH"
77 -->  "KEYCODE_AT"
78 -->  "KEYCODE_NUM"
79 -->  "KEYCODE_HEADSETHOOK"
80 -->  "KEYCODE_FOCUS"
81 -->  "KEYCODE_PLUS"
82 -->  "KEYCODE_MENU"
83 -->  "KEYCODE_NOTIFICATION"
84 -->  "KEYCODE_SEARCH"
85 -->  "TAG_LAST_KEYCODE"

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值