Android系统和应用介绍及工具实践——Mr.Monkey 移动测试培训课后总结(二)

2012-11-06  白云 

一、Android系统介绍
1、Android系统架构
Android底层是由Linux编写,上层由Java编写(包括UI、数据交互等),如果做Android第三方应用测试,不会涉及系统底层,看当前的rom和系统支持哪些API,和原生的Android有哪些区别;如果做系统应用(system application),测试可能涉及不到,开发可能涉及底层的适配。
2、Android系统目录架构
二、Android apk介绍
Android apk类似于windows系统上的exe文件,apk本身可以当做一个安装程序,安装方法有如下几种:
  • 借助adb的一些命令
  • 放到手机的sd卡中,通过手机的文件浏览器点击apk直接安装
  • 借助一些工具,豌豆荚、91助手等
对apk可以进行解压操作,可以看到如下目录:

通过网上的一些反编译工具,反编译apk可以直接得到apk的源码,现在多数公司使用了Android的混淆编译,则反编译apk只能得到一堆乱码,无法看到源码结构。

res/drawable/icon.png 尝试:解压apk后,将icon.png换掉,再去重新安装apk,看下图标是否会变掉。

其余文件或文件夹为测试的非重点部分。

三、Android模拟器

进入sdk文件夹,双击AVD Manager.exe打开Android Virtual Device Manager窗口,点击“New”按钮,弹出Create new Android Virtual Device(AVD)窗口,“Name”为模拟器的名字;“Target”为模拟Android的哪个环境;SD Card的size为模拟手机SD卡的容量,通常无需设置;“Skin”为分辨率设置;Hardware通用不到,若测试到特殊功能重力感应等,可以设置。


设置完成后,点击“Create AVD”,则可以创建模拟器。新建成功后如下图:


可以在list中看到刚刚新建的模拟器,选中该模拟器,点击“Start”弹出如下窗口:


display to real size希望模拟器的屏幕调整到适应显示器的size,通常不需选中,点击“Launch”,模拟器显示如下:


tips:ctrl+f12切换模拟器的横竖屏.

四:Android的adb tool


adb tool全称及介绍 http://developer.android.com/tools/help/adb.html
打开dos命令行,进入adb tool 所在目录,如下图:

使用命令:adb devices,如果环境设置成功,可以看到一个devices的list:


该list的三个状态:


  • device:识别到设备并且是启动状态;
  • no device:没有连接手机或者模拟器;
  • offline:设备无法识别,adb命令工作不正常,模拟器长时间无响应,adb kill-server回车,重新执行adb devices 重启adb服务,从offline变为device。


把apk放到platform-tools文件夹下,adb install xxx.apk 有解压和安装的过程,最后给出success提示。

tips:要安装的apk文件名中不能有空格,如果带有空格会认为指定了多个文件(too many files specfied;only takes APK file and verifier file.),则无法安装成功。

如果一台电脑连接了多台设备(手机或者模拟器),执行adb install时会提示有多个devices,需指定一个device

adb -s emulator-5554 install xxx.apk 该指令表示xxx.apk该应用装到emulator-5554这个设备里。

-s即为设备指定。

adb install 的apk不是系统原生的apk,是把第三方apk装入设备来使用,安装进去的apk是在data目录中,使用adb shell 进入data所在的目录


第三方apk安装在data/app下(在此文件夹下显示的为包名,即开发定义的app package name,一般来讲是com.(公司名).(app name)),原生系统应用安装在system/app下

adb push 假设安卓系统有root权限,第三方应用需要模拟该应用被合到rom中,rom恢复出厂设置后仍有这个应用,把该apk push到system/app下,操作如下:把该apk放到platform-tools目录下,执行adb push xxx.apk system_app,该apk是原生存在于系统中而非用户安装的。

adb pull 将原生apk拿出 adb pull xxx.apk windows指定目录

tips:此时要注意退出adb shell环境(ctrl+c),在命令行下执行该操作。(注意该apk要带全路径)

测试中最常用的命令:adb logcat 查看系统所有日志,用来调试和查看APP的日志。

hprof converter

hprof是一个以.hprof结尾的文件,该文件是查内存时使用dump的命令,dump下来的一个文件即hprof(查看内存泄露)

通过如下方法得到hprof文件(hprof无法直接查看,需要下载MAT插件,查看时仍然会提示无法查看,需要使用命令hprof-conv a.hprof b.hprof,将a.hprof文件进行转换查看,转换后的hprof文件也会保存在tools文件夹下):


  • Android默认有一个工具ddms,直接dump下来 hprof文件(选中进程,点击DUMP HPROF file)
  • Android自带的工具Monkey

安装MAT插件的方法:

  • 进入Eclipse-->Help-->Install new software,add MAT的下载链接,如下图:

  • 选中需要下载的插件,点击“Next”,进行安装;
  • 重启Eclipse,在Window/Preferences窗口下会多出一个 Memory Analyzer项:如下图:

PS:以上MAT插件的安装步骤是从网上搜的。

 open file 打开hprof-convz转换后的.hprof文件,会自动调用mat打开。

五、DDMS(查看进程和日志)
sdk/tools/ddms.mat,双击该批处理文件打开ddms工具:

下面即为logcat,主要关注红色error的log。

六、Hierarchy Viewer

sdk/tools/hierarchyviewer.bat 双击该批处理文件打开Hierarchy Viewer:











黑色标注的为当前设备可以看到的最上层的UI的activity,点击黑色标注的进程,点击“load view Hierarchy”按钮,看到如下界面,当前界面UI结果分析出来:

可以得到当前选中控件的id,可得到对应界面的按钮。三种颜色代表该控件整个生命周期的内存占用率。

点击黑色标注的进程,点击“Inspect Screenshot”得到一个从0%到200%的扩展界面,精细到界面的每个像素。

[如需转载,请在转载时注明出处,并保证本文的完整性]

892°/8862 人阅读/6 条评论 发表评论

付民  2012-11-06


白云  2012-11-06

付民:
尴尬呀。。为啥有些图不显示了。。


潘淑娟  2012-11-06

昨晚听了讲课,今天看了总结,温习下:)


白云  2012-11-06

潘淑娟: 昨晚听了讲课,今天看了总结,温习下:)
嗯嗯。。多多动手。。才能记得牢。。


陈晔  2012-11-07

白云: 嗯嗯。。多多动手。。才能记得牢。。
太给力了!!!


王涞  2012-11-27

总结的不错


登录 后发表评论