赞
踩
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自动化测试环境基本上就具备了
在Android SDK中有一些常用的工具,这些工具在后面做自动化测试的时候是非常有用的,比如adb
adb全称是Android Debug Bridge,即Android调试桥,电脑和设备之间的连接、调试通道;通过adb相关命令可以在PC端实现对Android设备的控制、获取设备信息
adb由三部分组成,如图:
在PC端有一个adb client和adb server,在移动端运行了一个adbd,也就是adb的守护进程:adb daemon
adb client其实就是我们看到的命令行程序,用于接收我们输入的adb操作指令;而adb server用于与client建立交互,并且建立和移动端adbd的通信,通过adbd对设备进行具体的操作;adbd运行于Android设备的底层Linux之中,可以通过它完成很多事情
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 Studio进行开发,那这些SDK和AVD的管理可以通过它提供的可视化界面进行操作;但还是会有在命令行管理 SDK 的需求,比如在远程管理 Jenkins 打包服务器上的 SDK
在Android SDK tools 25.2.3 版本以前 SDK 管理命令是 android,在 tools 目录下,这时候是和其它功能共用 android 命令
android命令可以用于查看当前android开发环境中相关的系统信息以及操作 ,这个命令工具在SDK中的tools目录下,可以将其添加到环境变量方便我们使用;包括如下几种
不过在Android SDK Tools25.2.3及以后提供了sdkmanager ,avdmanager来替代android命令,也就是说不能在继续使用android命令了
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 -h可以查看支持哪些命令
通过avdmanager list 会列举出可以供你创建的模拟器及已经下载好的SDK版本
还可以通过avdmanager list avd 列举出已经创建的模拟器清单
avdmanager list target 列举出当前平台中SDK版本
这里要注意到每个平台版本前面都有一个id,后续使用时可以通过这个id代替平台SDK版本
可以通过avdmanager create 创建模拟器,后面可以添加的参数如下:
最后可以通过avdmanager delete avd后面接模拟器名来删除模拟器
它集成了在Android开发,自动化测试过程中对应用调测非常重要的常用功能,这个工具的启动脚本在SDK目录的tools目录下,如果你在环境变量中添加了,那就可以直接在cmd窗口中直接操作了;首先就是输入monitor启动Android Device Monitor,启动过程可能要等个几秒钟;它有一些使用频率很高的工具,如下:
全称是Dalvik Debug Monitor Service,是 Android 开发环境中的Dalvik虚拟机调试监控服务,可以进行的操作有:为测试设备截屏,查看特定进程中正在运行的线程以及堆信息、Logcat、广播状态信息等;ddms这个界面有很多工具可以使用,如下面提到的
Devices:当前设备列表,设备的状态,设备下的进程清单;同时在它这块面板顶部有一排按钮,比如:
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渲染时间统计等
除了DDMS视图,其实还有一个Hierarchy View视图,它也是很有用的,在左边面板选中一个Activity,在右边面板就会生成一个树状的View视图,选择视图中的具体View,可以查看它的很多详细信息;在选中后可以点击左边的View Properties页卡,下面会有更加详细的信息;跟DDMS中的Dump View Hierarchy for UI Automator(uiautomatorViewer工具)类似
在做自动化测试的时候,需要获取View的坐标,这时候可以通过uiautomatorViewer工具,如果在ddms里获取就比较慢,单独打开uiautomatorViewer比较快,直接在dos窗口输入uiautomatorviewer就可以了,可以查看view的坐标、id等信息
下一篇文章介绍Monkey工具的命令及使用方法
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。