Android自动化测试环境部署及adb sdkmanager avdmanager Monitor DDMS工具使用及命令详解

系列文章

Android自动化测试环境部署及adb sdkmanager avdmanager Monitor DDMS工具使用及命令详解
Android自动化测试之Monkey使用及monkey脚本编写
Android自动化测试之MonkeyRunner MonkeyDevice MonkeyImage API使用详解 脚本编写 脚本录制回放

前言

在上篇文章Android自动化测试框架及技能掌握开篇 KO面试拿高薪 做一个高级自动化测试工程师给这个系列做了一个总体介绍后,这篇文章是讲述整个自动化测试工作的准备工作,有自动化环境部署,adb工具的使用,sdkmanager和avdmanager的使用,最后讲到monitor工具的使用及它下面最重要的DDMS的各项功能的使用

环境部署

硬件环境

  • 一台用于测试的电脑,笔记本或者台式机都可以

  • 操作系统Windows,Linux,Mac都可以,我使用的是Windows系统;如果大家想跟着该系列文章学习,建议使用Windows系统,避免因系统差异花费额外的时间

  • 操作系统版本是Windows XP以上,系统内存不要低于4G

  • 最后还需要一部用于测试的Android手机

软件环境

  • 开发工具包:不管是Android APP软件还是PC的Java软件,都是使用Java语言编写的,所以需要安装JDK,同时还需要下载Android SDK

  • 开发环境:Eclipse和Android Studio都可以

  • 测试设备:没有真机的话需要安装模拟器,有个好用的模拟器是网易开发的一款MuMu

最后这些系统或者工具的安装就不一一介绍了,网上有很多这类的文章,到这里Android自动化测试环境基本上就具备了

ADB工具

在Android SDK中有一些常用的工具,这些工具在后面做自动化测试的时候是非常有用的,比如adb

adb全称是Android Debug Bridge,即Android调试桥,电脑和设备之间的连接、调试通道;通过adb相关命令可以在PC端实现对Android设备的控制、获取设备信息

adb组成

adb由三部分组成,如图:

在这里插入图片描述

  • 在PC端有一个adb client和adb server,在移动端运行了一个adbd,也就是adb的守护进程:adb daemon

  • adb client其实就是我们看到的命令行程序,用于接收我们输入的adb操作指令;而adb server用于与client建立交互,并且建立和移动端adbd的通信,通过adbd对设备进行具体的操作;adbd运行于Android设备的底层Linux之中,可以通过它完成很多事情

adb命令

  • adb connect :这个是用于连接设备的命令,其实是用来启动设备的adbd
  • adb devices:这个应该是使用的比较频繁的命令了,用于列出当前连接的设备,获取设备ID和状态
  • adb -s [设备ID]:如果有多个设备,就可以通过-s 加设备ID指定设备
  • adb push/pull:这是一对命令,用于PC和设备之间文件传输的操作
  • adb forward:这是一个端口转发的命令,可以把在PC端的端口通信重定向到设备端指定的端口
  • adb start-server/kill-server: 这是一对针对adb server的命令,用于启动和结束adb server
  • adb install/uninstall:这是一对用于在设备上安装/卸载应用的命令
  • adb shell:这个是用于进入设备终端界面的命令,可在终端界面执行相应的命令

adb connect:接下来演示这些命令的使用,打开cmd窗口,启动一个模拟器,输入adb connect命令来连接设备

在这里插入图片描述
命令后面要接设备ip和端口,可以看到下面有一句daemon started successfully,这个就是启动了adb的守护进程

adb devices:接下来输入adb device
在这里插入图片描述
每个设备都有两个属性:第一个127.0.0.1:7555就是该设备的id;第二个device其实是表明该设备的状态,这个值表明该设备在线,已经正常连接到电脑了;如果没有正常连接,或者说守护进程adbd没有启动,这个值就是offline

在这里插入图片描述

adb push/pull:首先看下用户目录下面的txt文件
在这里插入图片描述

可以看到有一个hello.txt文件,接下来就用adb push命令将这个文件拷贝到设备上

在这里插入图片描述

-s 后面接设备id,如果你连接了多个设备,可以通过这个参数指定要操作的设备,其它命令同理;当然如果只连接了一个设备就不需要添加这个参数

然后去设备的该目录下看看是否存在该文件
在这里插入图片描述

可以看到文件已经成功拷贝过来了

接下来再使用adb pull命令将这个文件从设备上传到PC端

在这里插入图片描述

接下来我们列举下PC端的当前目录

在这里插入图片描述
可以看到成功将这个文件拉取过来了

adb forward:这是一个端口转发的命令

在这里插入图片描述
这就是将PC端的5556端口重定向到设备端的5556端口,这样就将该端口的通信转到设备了

adb start-server/kill-server:这个命令很简单就不演示了,一般是在adb服务出现异常不响应等特殊情况才会使用

adb install/uninstall:这是用来对设备进行安装卸载应用的,先看下apk文件

在这里插入图片描述
然后使用安装命令

在这里插入图片描述

使用卸载命令:卸载后面不是接apk文件名,而是要接应用的包名,怎么获取应用的包名呢?这个需要使用adb shell命令

在这里插入图片描述

这样就可以找出应用的包名了,还有进入data/data命令也可以获取所有包名

在这里插入图片描述

接下来就可以执行卸载命令
在这里插入图片描述


android命令

如果使用Android Studio进行开发,那这些SDK和AVD的管理可以通过它提供的可视化界面进行操作;但还是会有在命令行管理 SDK 的需求,比如在远程管理 Jenkins 打包服务器上的 SDK

在Android SDK tools 25.2.3 版本以前 SDK 管理命令是 android,在 tools 目录下,这时候是和其它功能共用 android 命令
android命令可以用于查看当前android开发环境中相关的系统信息以及操作 ,这个命令工具在SDK中的tools目录下,可以将其添加到环境变量方便我们使用;包括如下几种

  • Android sdk
  • Android avd
  • Android list
  • Android create project

不过在Android SDK Tools25.2.3及以后提供了sdkmanager ,avdmanager来替代android命令,也就是说不能在继续使用android命令了

  • Android SDK Manager就是一个Android软件开发工具包管理器,就像一个桥梁,连通本地和服务器,从服务器下载安卓开发所需工具包到本地
  • AVD Manager是一个Android虚拟驱动管理器,主要用来创建安卓模拟器(即手机模拟器)。当然,安卓模拟器所需的镜像(可以理解成模拟器的操作系统)是通过SDK Manager来下载的

sdkmanager 命令

官方 sdkmanager 文档

sdkmanager 命令专门用来管理 SDK,可以查看、安装、更新、卸载 Android SDK 的软件包;位于 tools/bin/ 目录下,官方虽然提供了使用文档,但是不够详细;为了方便使用,将其添加到环境变量;在讲解命令使用前先介绍下SDK目录结构,如图:

  • add-ons:该目录下面会保存一些附加库,一般是第三方为Android系统开发的一些附加功能,比如GoogleMaps,只不过在大陆这里面的功能都用不了

  • build-tools:这里面会保存一些通用的Android平台工具,同时该目录下面还会以api版本划分不同的子目录,例如Google 2014 I/O大会上发布了API20对应的build-tool的版本就是20.0.0,在这之间可能有小版本,例如20.0.1等等
    这个版本号对应这build.gradle文件中的buildeToolVersion值;这里面的工具有aapt,aidl,dx等,其中aapt(Android Asset Packaging Tool)安卓资源打包工具:编译应用程序的资源文件(包括 AndroidManifest.xml 和你的 Activitiy 的 xml 文件),生成 R.java 文件,这样你就可以从你的java代码中引用资源;aidl即 Android Interface definition language 它是一种android内部进程通信接口的描述语言,把 .aidl 接口转换成 java 接口;dx工具用来转化.class中间代码为dvlik中间代码,所有经过java编译的生成.class文件都需要此工具进行转换成dex文件,最后打包进apk文件中

  • emulator:这里是保存下载好的模拟器

  • docs:这里面是Android SDKAPI参考文档,所有的API都可以在这里查到

  • extras:里面比较重要的是这三个Android Support Repository , Android Support Library, Google Repository 。想知道这三者的区别,得先知道Android Studio和Eclipse在构建Android 项目时的区别。AS采用gradle构建,而eclipse采用ant构建。所以Google提供了Respository用于Android Studio,而Library用于Eclipse;而Google Repository 该存储库可为您的应用提供各种功能和服务,包括 Firebase、Google 地图、游戏成就和排行榜等

  • platforms:该目录下会以Android api版本进行划分,每个版本一个目录,存放该版本的开发包;同时还有一些其它目录,比如data保存着一些系 统资源,skins则是Android模拟器的皮肤,templates是工程创建的默认模板,android.jar则 是该版本的主要framework文件

  • platform-tools:包含了很多重要工具:adb是android调试工具,以命令行的形式和模拟器或者连接的手机进行通讯;sqlite3帮助开发者在PC上查看sqlite数据库等其它工具

  • sources:这里就是保存每个api版本的系统源码

  • system-images:系统镜像,模拟器使用的

  • tools:这里包含了android 开发和调试的工具

接下来看看相关命令的使用

  • sdkmanager --help:查看它的命令使用方式

    在这里插入图片描述

  • sdkmanager --list:将SDK的相关信息罗列出来,比如所有 已安装的包、有效的包 和 可以更新包

    Installed packages:=====================] 100% Computing updates...
      Path                                                                              | Version | Description                        | Location                                                       
      -------                                                                           | ------- | -------                            | -------                                                        
      build-tools;25.0.1                                                                | 25.0.1  | Android SDK Build-Tools 25.0.1     | build-tools\25.0.1\                                            
      build-tools;27.0.1                                                                | 27.0.1  | Android SDK Build-Tools 27.0.1     | build-tools\27.0.1\                                            
      build-tools;28.0.2                                                                | 28.0.2  | Android SDK Build-Tools 28.0.2     | build-tools\28.0.2\                                            
      build-tools;28.0.3                                                                | 28.0.3  | Android SDK Build-Tools 28.0.3     | build-tools\28.0.3\                                            
      cmake;3.10.2.4988404                                                              | 3.10.2  | CMake 3.10.2.4988404               | cmake\3.10.2.4988404\                                          
      emulator                                                                          | 28.0.23 | Android Emulator                   | emulator\                                                      
      extras;android;m2repository                                                       | 47.0.0  | Android Support Repository         | extras\android\m2repository\                                   
      extras;google;m2repository                                                        | 58      | Google Repository                  | extras\google\m2repository\                                    
      extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2 | 1       | Solver for ConstraintLayout 1.0.2  | extras\m2repository\com\android\support\constraint\constraint-layout-solver\1.0.2\
      extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2        | 1       | ConstraintLayout for Android 1.0.2 | extras\m2repository\com\android\support\constraint\constraint-layout\1.0.2\
      patcher;v4                                                                        | 1       | SDK Patch Applier v4               | patcher\v4\                                                    
      platform-tools                                                                    | 28.0.2  | Android SDK Platform-Tools         | platform-tools\                                                
      platforms;android-17                                                              | 3       | Android SDK Platform 17            | platforms\android-17\                                          
      platforms;android-19                                                              | 4       | Android SDK Platform 19            | platforms\android-19\                                          
      platforms;android-21                                                              | 2       | Android SDK Platform 21            | platforms\android-21\                                          
      platforms;android-22                                                              | 2       | Android SDK Platform 22            | platforms\android-22\                                          
      platforms;android-23                                                              | 3       | Android SDK Platform 23            | platforms\android-23\                                          
      platforms;android-24                                                              | 2       | Android SDK Platform 24            | platforms\android-24\                                          
      platforms;android-26                                                              | 2       | Android SDK Platform 26            | platforms\android-26\                                          
      platforms;android-28                                                              | 6       | Android SDK Platform 28            | platforms\android-28\                                          
      sources;android-17                                                                | 1       | Sources for Android 17             | sources\android-17\                                            
      sources;android-19                                                                | 2       | Sources for Android 19             | sources\android-19\                                            
      sources;android-21                                                                | 1       | Sources for Android 21             | sources\android-21\                                            
      sources;android-23                                                                | 1       | Sources for Android 23             | sources\android-23\                                            
      sources;android-24                                                                | 1       | Sources for Android 24             | sources\android-24\                                            
      sources;android-26                                                                | 1       | Sources for Android 26             | sources\android-26\                                            
      sources;android-28                                                                | 1       | Sources for Android 28             | sources\android-28\                                            
      tools                                                                             | 26.1.1  | Android SDK Tools                  | tools\                                                         
    
    Available Packages:
      Path                                                                                     | Version      | Description
      -------                                                                                  | -------      | -------
      add-ons;addon-google_apis-google-15                                                      | 3            | Google APIs
      add-ons;addon-google_apis-google-16                                                      | 4            | Google APIs
      add-ons;addon-google_apis-google-17                                                      | 4            | Google APIs
      add-ons;addon-google_apis-google-18                                                      | 4            | Google APIs
      add-ons;addon-google_apis-google-19                                                      | 20           | Google APIs
      add-ons;addon-google_apis-google-21                                                      | 1            | Google APIs
      add-ons;addon-google_apis-google-22                                                      | 1            | Google APIs
      add-ons;addon-google_apis-google-23                                                      | 1            | Google APIs
      add-ons;addon-google_apis-google-24                                                      | 1            | Google APIs
      add-ons;addon-google_gdk-google-19                                                       | 11           | Glass Development Kit Preview
      build-tools;19.1.0                                                                       | 19.1.0       | Android SDK Build-Tools 19.1
      build-tools;20.0.0                                                                       | 20.0.0       | Android SDK Build-Tools 20
      build-tools;21.1.2                                                                       | 21.1.2       | Android SDK Build-Tools 21.1.2
      build-tools;22.0.1                                                                       | 22.0.1       | Android SDK Build-Tools 22.0.1
      build-tools;23.0.1                                                                       | 23.0.1       | Android SDK Build-Tools 23.0.1
      build-tools;23.0.2                                                                       | 23.0.2       | Android SDK Build-Tools 23.0.2
      build-tools;23.0.3                                                                       | 23.0.3       | Android SDK Build-Tools 23.0.3
      build-tools;24.0.0                                                                       | 24.0.0       | Android SDK Build-Tools 24
      build-tools;24.0.1                                                                       | 24.0.1       | Android SDK Build-Tools 24.0.1
      build-tools;24.0.2                                                                       | 24.0.2       | Android SDK Build-Tools 24.0.2
      build-tools;24.0.3                                                                       | 24.0.3       | Android SDK Build-Tools 24.0.3
      build-tools;25.0.0                                                                       | 25.0.0       | Android SDK Build-Tools 25
      build-tools;25.0.1                                                                       | 25.0.1       | Android SDK Build-Tools 25.0.1
      build-tools;25.0.2                                                                       | 25.0.2       | Android SDK Build-Tools 25.0.2
      build-tools;25.0.3                                                                       | 25.0.3       | Android SDK Build-Tools 25.0.3
      build-tools;26.0.0                                                                       | 26.0.0       | Android SDK Build-Tools 26
      build-tools;26.0.1                                                                       | 26.0.1       | Android SDK Build-Tools 26.0.1
      build-tools;26.0.2                                                                       | 26.0.2       | Android SDK Build-Tools 26.0.2
      build-tools;26.0.3                                                                       | 26.0.3       | Android SDK Build-Tools 26.0.3
      build-tools;27.0.0                                                                       | 27.0.0       | Android SDK Build-Tools 27
      build-tools;27.0.1                                                                       | 27.0.1       | Android SDK Build-Tools 27.0.1
      build-tools;27.0.2                                                                       | 27.0.2       | Android SDK Build-Tools 27.0.2
      build-tools;27.0.3                                                                       | 27.0.3       | Android SDK Build-Tools 27.0.3
      build-tools;28.0.0                                                                       | 28.0.0       | Android SDK Build-Tools 28
      build-tools;28.0.0-rc1                                                                   | 28.0.0 rc1   | Android SDK Build-Tools 28-rc1
      build-tools;28.0.0-rc2                                                                   | 28.0.0 rc2   | Android SDK Build-Tools 28-rc2
      build-tools;28.0.1                                                                       | 28.0.1       | Android SDK Build-Tools 28.0.1
      build-tools;28.0.2                                                                       | 28.0.2       | Android SDK Build-Tools 28.0.2
      build-tools;28.0.3                                                                       | 28.0.3       | Android SDK Build-Tools 28.0.3
      build-tools;29.0.0-rc1                                                                   | 29.0.0 rc1   | Android SDK Build-Tools 29-rc1
      build-tools;29.0.0-rc2                                                                   | 29.0.0 rc2   | Android SDK Build-Tools 29-rc2
      build-tools;29.0.0-rc3                                                                   | 29.0.0 rc3   | Android SDK Build-Tools 29-rc3
      cmake;3.10.2.4988404                                                                     | 3.10.2       | CMake 3.10.2.4988404
      cmake;3.6.4111459                                                                        | 3.6.4111459  | CMake 3.6.4111459
      docs                                                                                     | 1            | Documentation for Android SDK
      emulator                                                                                 | 29.0.9       | Android Emulator
      extras;android;gapid;1                                                                   | 1.0.3        | GPU Debugging tools
      extras;android;gapid;3                                                                   | 3.1.0        | GPU Debugging tools
      extras;android;m2repository                                                              | 47.0.0       | Android Support Repository
      extras;google;auto                                                                       | 1.1          | Android Auto Desktop Head Unit emulator
      extras;google;google_play_services                                                       | 49           | Google Play services
      extras;google;instantapps                                                                | 1.7.0        | Google Play Instant Development SDK
      extras;google;m2repository                                                               | 58           | Google Repository
      extras;google;market_apk_expansion                                                       | 1            | Google Play APK Expansion library
      extras;google;market_licensing                                                           | 1            | Google Play Licensing Library
      extras;google;simulators                                                                 | 1            | Android Auto API Simulators
      extras;google;usb_driver                                                                 | 11           | Google USB Driver
      extras;google;webdriver                                                                  | 2            | Google Web Driver
      extras;intel;Hardware_Accelerated_Execution_Manager                                      | 7.3.2        | Intel x86 Emulator Accelerator (HAXM installer)
      extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0        | 1            | Solver for ConstraintLayout 1.0.0
      extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4 | 1            | com.android.support.constraint:constraint-layout-solver:1.0.0-alpha4
      extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha8 | 1            | Solver for ConstraintLayout 1.0.0-alpha8
      extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1  | 1            | Solver for ConstraintLayout 1.0.0-beta1
      extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2  | 1            | Solver for ConstraintLayout 1.0.0-beta2
      extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3  | 1            | Solver for ConstraintLayout 1.0.0-beta3
      extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4  | 1            | Solver for ConstraintLayout 1.0.0-beta4
      extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5  | 1            | Solver for ConstraintLayout 1.0.0-beta5
      extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1        | 1            | Solver for ConstraintLayout 1.0.1
      extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2        | 1            | Solver for ConstraintLayout 1.0.2
      extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0               | 1            | ConstraintLayout for Android 1.0.0
      extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4        | 1            | com.android.support.constraint:constraint-layout:1.0.0-alpha4
      extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha8        | 1            | ConstraintLayout for Android 1.0.0-alpha8
      extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1         | 1            | ConstraintLayout for Android 1.0.0-beta1
      extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2         | 1            | ConstraintLayout for Android 1.0.0-beta2
      extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3         | 1            | ConstraintLayout for Android 1.0.0-beta3
      extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4         | 1            | ConstraintLayout for Android 1.0.0-beta4
      extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5         | 1            | ConstraintLayout for Android 1.0.0-beta5
      extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1               | 1            | ConstraintLayout for Android 1.0.1
      extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2               | 1            | ConstraintLayout for Android 1.0.2
      lldb;2.0                                                                                 | 2.0.2558144  | LLDB 2.0
      lldb;2.1                                                                                 | 2.1.2852477  | LLDB 2.1
      lldb;2.2                                                                                 | 2.2.3271982  | LLDB 2.2
      lldb;2.3                                                                                 | 2.3.3614996  | LLDB 2.3
      lldb;3.0                                                                                 | 3.0.4213617  | LLDB 3.0
      lldb;3.1                                                                                 | 3.1.4508709  | LLDB 3.1
      ndk-bundle                                                                               | 19.2.5345600 | NDK
      patcher;v4                                                                               | 1            | SDK Patch Applier v4
      platform-tools                                                                           | 28.0.3       | Android SDK Platform-Tools
      platforms;android-10                                                                     | 2            | Android SDK Platform 10
      platforms;android-11                                                                     | 2            | Android SDK Platform 11
      platforms;android-12                                                                     | 3            | Android SDK Platform 12
      platforms;android-13                                                                     | 1            | Android SDK Platform 13
      platforms;android-14                                                                     | 4            | Android SDK Platform 14
      platforms;android-15                                                                     | 5            | Android SDK Platform 15
      platforms;android-16                                                                     | 5            | Android SDK Platform 16
      platforms;android-17                                                                     | 3            | Android SDK Platform 17
      platforms;android-18                                                                     | 3            | Android SDK Platform 18
      platforms;android-19                                                                     | 4            | Android SDK Platform 19
      platforms;android-20                                                                     | 2            | Android SDK Platform 20
      platforms;android-21                                                                     | 2            | Android SDK Platform 21
      platforms;android-22                                                                     | 2            | Android SDK Platform 22
      platforms;android-23                                                                     | 3            | Android SDK Platform 23
      platforms;android-24                                                                     | 2            | Android SDK Platform 24
      platforms;android-25                                                                     | 3            | Android SDK Platform 25
      platforms;android-26                                                                     | 2            | Android SDK Platform 26
      platforms;android-27                                                                     | 3            | Android SDK Platform 27
      platforms;android-28                                                                     | 6            | Android SDK Platform 28
      platforms;android-7                                                                      | 3            | Android SDK Platform 7
      platforms;android-8                                                                      | 3            | Android SDK Platform 8
      platforms;android-9                                                                      | 2            | Android SDK Platform 9
      platforms;android-Q                                                                      | 3            | Android SDK Platform Q
      sources;android-15                                                                       | 2            | Sources for Android 15
      sources;android-16                                                                       | 2            | Sources for Android 16
      sources;android-17                                                                       | 1            | Sources for Android 17
      sources;android-18                                                                       | 1            | Sources for Android 18
      sources;android-19                                                                       | 2            | Sources for Android 19
      sources;android-20                                                                       | 1            | Sources for Android 20
      sources;android-21                                                                       | 1            | Sources for Android 21
      sources;android-22                                                                       | 1            | Sources for Android 22
      sources;android-23                                                                       | 1            | Sources for Android 23
      sources;android-24                                                                       | 1            | Sources for Android 24
      sources;android-25                                                                       | 1            | Sources for Android 25
      sources;android-26                                                                       | 1            | Sources for Android 26
      sources;android-27                                                                       | 1            | Sources for Android 27
      sources;android-28                                                                       | 1            | Sources for Android 28
      system-images;android-10;default;armeabi-v7a                                             | 5            | ARM EABI v7a System Image
      system-images;android-10;default;x86                                                     | 5            | Intel x86 Atom System Image
      system-images;android-10;google_apis;armeabi-v7a                                         | 6            | Google APIs ARM EABI v7a System Image
      system-images;android-10;google_apis;x86                                                 | 6            | Google APIs Intel x86 Atom System Image
      system-images;android-14;default;armeabi-v7a                                             | 2            | ARM EABI v7a System Image
      system-images;android-15;default;armeabi-v7a                                             | 5            | ARM EABI v7a System Image
      system-images;android-15;default;x86                                                     | 5            | Intel x86 Atom System Image
      system-images;android-15;google_apis;armeabi-v7a                                         | 6            | Google APIs ARM EABI v7a System Image
      system-images;android-15;google_apis;x86                                                 | 6            | Google APIs Intel x86 Atom System Image
      system-images;android-16;default;armeabi-v7a                                             | 6            | ARM EABI v7a System Image
      system-images;android-16;default;mips                                                    | 1            | MIPS System Image
      system-images;android-16;default;x86                                                     | 6            | Intel x86 Atom System Image
      system-images;android-16;google_apis;armeabi-v7a                                         | 6            | Google APIs ARM EABI v7a System Image
      system-images;android-16;google_apis;x86                                                 | 6            | Google APIs Intel x86 Atom System Image
      system-images;android-17;default;armeabi-v7a                                             | 6            | ARM EABI v7a System Image
      system-images;android-17;default;mips                                                    | 1            | MIPS System Image
      system-images;android-17;default;x86                                                     | 4            | Intel x86 Atom System Image
      system-images;android-17;google_apis;armeabi-v7a                                         | 6            | Google APIs ARM EABI v7a System Image
      system-images;android-17;google_apis;x86                                                 | 6            | Google APIs Intel x86 Atom System Image
      system-images;android-18;default;armeabi-v7a                                             | 5            | ARM EABI v7a System Image
      system-images;android-18;default;x86                                                     | 4            | Intel x86 Atom System Image
      system-images;android-18;google_apis;armeabi-v7a                                         | 6            | Google APIs ARM EABI v7a System Image
      system-images;android-18;google_apis;x86                                                 | 6            | Google APIs Intel x86 Atom System Image
      system-images;android-19;default;armeabi-v7a                                             | 5            | ARM EABI v7a System Image
      system-images;android-19;default;x86                                                     | 6            | Intel x86 Atom System Image
      system-images;android-19;google_apis;armeabi-v7a                                         | 38           | Google APIs ARM EABI v7a System Image
      system-images;android-19;google_apis;x86                                                 | 38           | Google APIs Intel x86 Atom System Image
      system-images;android-21;android-tv;armeabi-v7a                                          | 3            | Android TV ARM EABI v7a System Image
      system-images;android-21;android-tv;x86                                                  | 3            | Android TV Intel x86 Atom System Image
      system-images;android-21;default;armeabi-v7a                                             | 4            | ARM EABI v7a System Image
      system-images;android-21;default;x86                                                     | 5            | Intel x86 Atom System Image
      system-images;android-21;default;x86_64                                                  | 5            | Intel x86 Atom_64 System Image
      system-images;android-21;google_apis;armeabi-v7a                                         | 30           | Google APIs ARM EABI v7a System Image
      system-images;android-21;google_apis;x86                                                 | 30           | Google APIs Intel x86 Atom System Image
      system-images;android-21;google_apis;x86_64                                              | 30           | Google APIs Intel x86 Atom_64 System Image
      system-images;android-22;android-tv;x86                                                  | 3            | Android TV Intel x86 Atom System Image
      system-images;android-22;default;armeabi-v7a                                             | 2            | ARM EABI v7a System Image
      system-images;android-22;default;x86                                                     | 6            | Intel x86 Atom System Image
      system-images;android-22;default;x86_64                                                  | 6            | Intel x86 Atom_64 System Image
      system-images;android-22;google_apis;armeabi-v7a                                         | 24           | Google APIs ARM EABI v7a System Image
      system-images;android-22;google_apis;x86                                                 | 24           | Google APIs Intel x86 Atom System Image
      system-images;android-22;google_apis;x86_64                                              | 24           | Google APIs Intel x86 Atom_64 System Image
      system-images;android-23;android-tv;armeabi-v7a                                          | 12           | Android TV ARM EABI v7a System Image
      system-images;android-23;android-tv;x86                                                  | 19           | Android TV Intel x86 Atom System Image
      system-images;android-23;android-wear;armeabi-v7a                                        | 6            | Android Wear ARM EABI v7a System Image
      system-images;android-23;android-wear;x86                                                | 6            | Android Wear Intel x86 Atom System Image
      system-images;android-23;default;armeabi-v7a                                             | 6            | ARM EABI v7a System Image
      system-images;android-23;default;x86                                                     | 10           | Intel x86 Atom System Image
      system-images;android-23;default;x86_64                                                  | 10           | Intel x86 Atom_64 System Image
      system-images;android-23;google_apis;armeabi-v7a                                         | 31           | Google APIs ARM EABI v7a System Image
      system-images;android-23;google_apis;x86                                                 | 31           | Google APIs Intel x86 Atom System Image
      system-images;android-23;google_apis;x86_64                                              | 31           | Google APIs Intel x86 Atom_64 System Image
      system-images;android-24;android-tv;x86                                                  | 20           | Android TV Intel x86 Atom System Image
      system-images;android-24;default;arm64-v8a                                               | 7            | ARM 64 v8a System Image
      system-images;android-24;default;armeabi-v7a                                             | 7            | ARM EABI v7a System Image
      system-images;android-24;default;x86                                                     | 8            | Intel x86 Atom System Image
      system-images;android-24;default;x86_64                                                  | 8            | Intel x86 Atom_64 System Image
      system-images;android-24;google_apis;arm64-v8a                                           | 25           | Google APIs ARM 64 v8a System Image
      system-images;android-24;google_apis;armeabi-v7a                                         | 25           | Google APIs ARM EABI v7a System Image
      system-images;android-24;google_apis;x86                                                 | 25           | Google APIs Intel x86 Atom System Image
      system-images;android-24;google_apis;x86_64                                              | 25           | Google APIs Intel x86 Atom_64 System Image
      system-images;android-24;google_apis_playstore;x86                                       | 19           | Google Play Intel x86 Atom System Image
      system-images;android-25;android-tv;x86                                                  | 14           | Android TV Intel x86 Atom System Image
      system-images;android-25;android-wear-cn;armeabi-v7a                                     | 4            | China version of Android Wear ARM EABI v7a System Image
      system-images;android-25;android-wear-cn;x86                                             | 4            | China version of Android Wear Intel x86 Atom System Image
      system-images;android-25;android-wear;armeabi-v7a                                        | 3            | Android Wear ARM EABI v7a System Image
      system-images;android-25;android-wear;x86                                                | 3            | Android Wear Intel x86 Atom System Image
      system-images;android-25;default;x86                                                     | 1            | Intel x86 Atom System Image
      system-images;android-25;default;x86_64                                                  | 1            | Intel x86 Atom_64 System Image
      system-images;android-25;google_apis;arm64-v8a                                           | 16           | Google APIs ARM 64 v8a System Image
      system-images;android-25;google_apis;armeabi-v7a                                         | 16           | Google APIs ARM EABI v7a System Image
      system-images;android-25;google_apis;x86                                                 | 16           | Google APIs Intel x86 Atom System Image
      system-images;android-25;google_apis;x86_64                                              | 16           | Google APIs Intel x86 Atom_64 System Image
      system-images;android-25;google_apis_playstore;x86                                       | 9            | Google Play Intel x86 Atom System Image
      system-images;android-26;android-tv;x86                                                  | 12           | Android TV Intel x86 Atom System Image
      system-images;android-26;android-wear-cn;x86                                             | 4            | China version of Android Wear Intel x86 Atom System Image
      system-images;android-26;android-wear;x86                                                | 4            | Android Wear Intel x86 Atom System Image
      system-images;android-26;default;x86                                                     | 1            | Intel x86 Atom System Image
      system-images;android-26;default;x86_64                                                  | 1            | Intel x86 Atom_64 System Image
      system-images;android-26;google_apis;x86                                                 | 13           | Google APIs Intel x86 Atom System Image
      system-images;android-26;google_apis;x86_64                                              | 13           | Google APIs Intel x86 Atom_64 System Image
      system-images;android-26;google_apis_playstore;x86                                       | 7            | Google Play Intel x86 Atom System Image
      system-images;android-27;android-tv;x86                                                  | 7            | Android TV Intel x86 Atom System Image
      system-images;android-27;default;x86                                                     | 1            | Intel x86 Atom System Image
      system-images;android-27;default;x86_64                                                  | 1            | Intel x86 Atom_64 System Image
      system-images;android-27;google_apis;x86                                                 | 9            | Google APIs Intel x86 Atom System Image
      system-images;android-27;google_apis_playstore;x86                                       | 3            | Google Play Intel x86 Atom System Image
      system-images;android-28;android-tv;x86                                                  | 8            | Android TV Intel x86 Atom System Image
      system-images;android-28;android-wear-cn;x86                                             | 3            | China version of Wear OS Intel x86 Atom System Image
      system-images;android-28;android-wear;x86                                                | 3            | Wear OS Intel x86 Atom System Image
      system-images;android-28;default;x86                                                     | 4            | Intel x86 Atom System Image
      system-images;android-28;default;x86_64                                                  | 4            | Intel x86 Atom_64 System Image
      system-images;android-28;google_apis;x86                                                 | 9            | Google APIs Intel x86 Atom System Image
      system-images;android-28;google_apis;x86_64                                              | 9            | Google APIs Intel x86 Atom_64 System Image
      system-images;android-28;google_apis_playstore;x86                                       | 8            | Google Play Intel x86 Atom System Image
      system-images;android-28;google_apis_playstore;x86_64                                    | 8            | Google Play Intel x86 Atom_64 System Image
      system-images;android-Q;android-tv;x86                                                   | 1            | Android TV Intel x86 Atom System Image
      system-images;android-Q;default;x86                                                      | 4            | Intel x86 Atom System Image
      system-images;android-Q;default;x86_64                                                   | 4            | Intel x86 Atom_64 System Image
      system-images;android-Q;google_apis;x86                                                  | 4            | Google APIs Intel x86 Atom System Image
      system-images;android-Q;google_apis;x86_64                                               | 4            | Google APIs Intel x86 Atom_64 System Image
      system-images;android-Q;google_apis_playstore;x86                                        | 4            | Google Play Intel x86 Atom System Image
      system-images;android-Q;google_apis_playstore;x86_64                                     | 4            | Google Play Intel x86 Atom_64 System Image
      tools                                                                                    | 26.1.1       | Android SDK Tools
    
    Available Updates:
      ID             | Installed | Available
      -------        | -------   | -------
      emulator       | 28.0.23   | 29.0.9
      platform-tools | 28.0.2    | 28.0.3
    

    每一行分号【;】前面的名称其实就是你的AndroidSDK根目录下文件夹名称,分号后面就是该目录里面的文件或者文件夹内容

    如果path太长,输出的时候中间用 “…” 给替代了,这样 的Path 是无法使用的,这时候需要加上 --verbose 参数输出完整的 Path:sdkmanager --list --verbose

  • sdkmanager < packages>:这个是安装命令,其中packages参数为软件包的Path名称,即通过sdkmanager --list命令查看的列表中的Path名称,
    packages参数 必需要使用引号引起来,可同时添加多个packages参数同时安装多个包(多个包之间用空格隔开,并各自使用引号引起来)
    安装单个包
    sdkmanager “platforms;android-27”,这个用来下载API27的包
    sdkmanager “platform-tools”,adb工具就在这个包下面
    同时安装多个包
    sdkmanager “platform-tools” “build-tools;28.0.3”

  • sdkmanager --uninstall < packages>:这是卸载命令,比如
    卸载单个包
    sdkmanager --uninstall “sources;android-25”
    卸载多个包
    sdkmanager --uninstall “build-tools;28.0.0” “platforms;android-26”

  • sdkmanager --update:如果是更新全部包,就用这个命令,后面不需要添加参数;如果是更新某个包,命令如下
    sdkmanager “system-images;android-25;google_apis;x86_64”,可以发现其实跟安装命令一样,因为sdkmanager 会自动下载最新版替换已安装的版本

  • 额外参数:上述命令均可添加若干个额外的可用选项参数:

    --sdk_root=<path>       // 使用指定的 SDK 路径, 而不是当前 sdkmanager 命令
                            // 的 tools 包所在的 SDK 路径
    
    --channel=<channel_id>  // 包含软件包的更新渠道, channel_id: 0 (Stable), 
                            // 1 (Beta), 2 (Dev), 3 (Canary)
    
    --include_obsolete      // 包含过时的软件包, 只对 --list 和 --update 命令有效
    --no_https              // 所有链接强制使用 HTTP, 而不是 HTTPS
    --verbose               // 详细输出模式, 输出 Error, Warn, Info 级别的消息
    
    --proxy=<http|socks>                        // 指定代理的 协议
    --proxy_host=<IP_address|DNS_address>       // 指定代理的 IP地址 或 DNS地址
    --proxy_port=<port_number>                  // 指定代理的 端口号
    

如果你有设置代理的需求,可以输入类似下方的命令

sdkmanager --list --no_https --proxy=http --proxy_host=mirrors.neusoft.edu.cn --proxy_port=80

这个是大连东软信息学院镜像服务器地址: http://mirrors.neusoft.edu.cn 端口:80
推荐一个国内的镜像网站http://tools.android-studio.org/index.php/sdk,也可以在这个网站上下载

avdmanager命令

这个是用来管理模拟器的命令行工具,输入avdmanager -h可以查看支持哪些命令

在这里插入图片描述

通过avdmanager list 会列举出可以供你创建的模拟器及已经下载好的SDK版本

还可以通过avdmanager list avd 列举出已经创建的模拟器清单
在这里插入图片描述
avdmanager list target 列举出当前平台中SDK版本
在这里插入图片描述

这里要注意到每个平台版本前面都有一个id,后续使用时可以通过这个id代替平台SDK版本

管理模拟器

可以通过avdmanager create 创建模拟器,后面可以添加的参数如下:
在这里插入图片描述

最后可以通过avdmanager delete avd后面接模拟器名来删除模拟器

monitor工具

它集成了在Android开发,自动化测试过程中对应用调测非常重要的常用功能,这个工具的启动脚本在SDK目录的tools目录下,如果你在环境变量中添加了,那就可以直接在cmd窗口中直接操作了;首先就是输入monitor启动Android Device Monitor,启动过程可能要等个几秒钟;它有一些使用频率很高的工具,如下:

DDMS

全称是Dalvik Debug Monitor Service,是 Android 开发环境中的Dalvik虚拟机调试监控服务,可以进行的操作有:为测试设备截屏,查看特定进程中正在运行的线程以及堆信息、Logcat、广播状态信息等;ddms这个界面有很多工具可以使用,如下面提到的

  • Devices:当前设备列表,设备的状态,设备下的进程清单;同时在它这块面板顶部有一排按钮,比如:

    1. update heap:对选中的进程更新其堆内存信息,然后在右边面板选中Heap页卡,点击Cause GC就可以得到内存信息;这在进行内存调休,比如分析内存泄漏的情况就很有用
    2. Dump HPROF file:生成一个堆内存详细调用情况的文件,如果我们通过Heap不能分析出问题,就可以通过下载这个文件再通过MAT进行详细分析
    3. Cause GC:执行垃圾回收,跟第一步作用是一样的
    4. Update Threads:更新进程的线程信息,操作后在右边面板中选中thread页卡,可以查看创建的线程信息,线程信息包括线程id,状态,用户代码执行时间,系统代码执行时间,线程名等信息;选中具体线程,可以在下方看到具体的调用栈信息
    5. Start Method Profiling:它的作用主要是用来追踪某一段代码的详细执行信息,在两次点击中产生一个.trance格式文件,这时DDMS会自动触发Traceview工具来分析采集数据,并弹出可视化的面板;经常在分析应用卡顿,页面不流畅的情况下使用它来分析卡顿原因,具体使用教程可参考性能分析-Android中APP的UI卡顿检测之TraceView分析使用案例
    6. Stop Process:就是杀死一个进程,然后在设备上这个应用就被销毁了
    7. Screen Capture:屏幕截图,很简单 不多说
    8. Dump View Hierarchy for UI Automator:这其实对应着一个工具uiautomatorViewer(一个图形界面工具来扫描和分析应用的UI控件),点击后,会截取当前手机页面,然后在DDMS自动打开一个.uix后缀的页卡,左边是手机屏幕信息,右边是选中View的具体信息(比如view的id,坐标,状态,class等),这在做UI自动化测试的时候非常有用,因为自动化测试的时候经常需要获取View的id,坐标等信息
    9. Capture system wide trance using Android systrace:Systrace其实有些类似Traceview,它是对整个系统进行分析(同一时间轴包含应用及SurfaceFlinger、WindowManagerService等模块、服务运行信息);这对应着一个Systrace工具,位于platform-tools\systrace下,有一个Python脚本,可以通过python systrace.py --time=10 -o mynewtrace.html sched gfx view wm命令执行;另一个启动方法就是点击这个按钮,在弹出框选择文件保存位置,时间,关注的信息等,点击ok,接着操作APP,完事生成一个trace.html文件,用Chrome打开即可
  • Logcat:输出系统运行日志的界面

  • Allocation Tracker:内存分配的跟踪工具,使用很简单,选中一个进程,点击Start Tracking,然后再点击Get Allocations,就会在下方面板给出数据

  • Network Statistics:应用流量统计工具,很简单不多说了

  • File explorer:选中File explorer页卡,有三个按钮可实现对Android手机文件系统的上传,下载,删除操作;下面列表有三个目录:data(对应手机的RAM,也就是内部存储),sdcard(对应sd卡,也就是外部存储),system(对应手机的ROM,OS以及系统自带apk程序等存放在这里)

  • Emulator Control:模拟器控制工具,但是现在的SDK已经不提供这个功能了,它的功能放到了模拟器中

  • System Information:统计分析一些系统信息,比如CPU,内存,UI渲染时间统计等

在这里插入图片描述

Hierarchy View

除了DDMS视图,其实还有一个Hierarchy View视图,它也是很有用的,在左边面板选中一个Activity,在右边面板就会生成一个树状的View视图,选择视图中的具体View,可以查看它的很多详细信息;在选中后可以点击左边的View Properties页卡,下面会有更加详细的信息;跟DDMS中的Dump View Hierarchy for UI Automator(uiautomatorViewer工具)类似

在这里插入图片描述

uiautomatorViewer工具

在做自动化测试的时候,需要获取View的坐标,这时候可以通过uiautomatorViewer工具,如果在ddms里获取就比较慢,单独打开uiautomatorViewer比较快,直接在dos窗口输入uiautomatorviewer就可以了,可以查看view的坐标、id等信息
在这里插入图片描述

下一篇文章介绍Monkey工具的命令及使用方法

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值