Android Studio 2.2 中几个实用的新功能

Android Studio 2.2中几个小玩具非常有意思,希望Google为我们带来更多精益求精且越来越好玩的新功能。

 

Android Studio 2.2 preview 提供了几个新玩具,非常有用,如下:

  • Espresso Test Recorder
  • Dependencies管理
  • APK 分析器
  • 查看 AndroidManifest.xml 的合并来源

Espresso Test Recorder

Espresso 是 UI 单元测试框架, Test Recorder 顾名思义就是用来录制 UI 单元测试的工具,它包含这么几个功能:

  • 在真机或者模拟器上录制 UI 的交互
  • 在录制过程中可以增加断言
  • 生成 Espresso 的单元测试代码,可在此基础上做二次开发

以googlesamples的android-topeka为例,来看看如何录制单元测试。

  1. Run->Record Espresso Test


    在工具栏上点击如上操作后,会出现终端设备的选择窗口。

  2. 在真机或者模拟器上运行


    选择好运行的终端设备之后,将会运行 app,此时即可开始 UT 的录制。

  3. 开始录制 UT


    app 运行起来之后,会出现录制的窗口,窗口展示的是 UI 交互的操作流程,以及“增加断言”和“完成录制”的两个按钮。接下来开始进行交互,输入 First Name 和 Last Initial,并选择头像,此时操作流如下图所示:


    点击右下角的确定图标,进入下一个界面。

  4. 增加断言


    点击“Add Assertion”即可在录制过程中增加断言。在此处,我增加了两个断言,一个是断言头像区域已经正常显示,二是断言账号区域显示的文本为“geniusmart T”。

  5. 完成录制并生成 UT 代码


    点击“Complete Recording”,即可完成 UT 的录制,并生成代码。


    我们可以基于这份代码做二次开发,写一些工具无法帮我们生成的断言。

  6. 复用 UT
    录制结束后,整个录制过程将以代码的形式存在于androidTest文件夹中,我们可以反复运行 UT,验证代码的准确性。

Espresso Test Recorder 的录制功能和二次开发,大大提高了写 Espresso UT 的效率。即使你不太熟悉 Espresso 的语法,依然可以写出覆盖率较高的单元测试。

另外要强调的是,Espresso 解决的是 View 层的测试,以 MVP 来说,View 层依赖于 Model 层和 Presenter 层,假如你的 View 层需要发起网络请求,UT 的录制是充满不确定性的,因为你不确定网络请求是否能正常响应,以及响应结果是什么,因此需要其他两层对网络请求以及类似的问题做一些Mock或者Fake。关于这一点,笔者已经在《解读Android官方MVP项目单元测试》详细说明。

Dependencies 管理

Google 正在重写项目结构对话框,用来解析项目中的依赖关系,并做更友好的展示。

  • 打开"Project Structure"窗口

  • 查看可更新的依赖


    在"Messages"面板内,可以查看应用内的所有依赖,并自动识别本地仓库和或程远程jCenter 仓库中是否有更新的版本。通过"Update All"的按钮可更新所有依赖。

  • 查看所有依赖和传递依赖关系

在"Dependencies"面板中,我们可以查看所有 Module 的依赖以及传递依赖关系,非常方便。而在以往我们只能使用命令行gradlew dependencies来查看依赖关系。

注:本节的截图来自Google I/O 的"What's new in Android development tools"演讲主题,而在最新版的AS预览版(无论是window还是mac)中,均找不到此功能的入口,官方对2.2预览版介绍的文档里也没有正式介绍该功能,所以估计得过一段时间才能体验。

APK 分析器

Google 在开发 Instant Run 时,为了弄清楚 APK 文件的内部机制,开发了新工具 APK 分析器。

  1. Build->Analyze APK


    在工具栏上进行如上操作后,选择 apk 文件,即可查看 apk 的分析结果,本节以 chrome.apk 为例。

  2. 查看文件大小


    在分析结果中,可以查看各种文件的原始大小和下载大小,这可为我们的 apk 瘦身中提供数据支持, 帮我们定位哪些文件可以优化大小或者删除。

  3. 查看资源文件


    在 res中可以查看图片和 layout 等文件。

  4. 查看值表


    点击resources.arsc,可以查看 string 、color 、layout 等的 ID 值。

  5. 查看 dex 文件


    点击 classes.dex 文件,可查看每个 Java 文件声明的方法数和引用的方法数。

查看 AndroidManifest.xml 的合并来源

App 编译后,清单文件会多出很多不是我们编写的代码(比如权限的声明、四大组件的配置等),这部分代码的来源为各种依赖库。

新版的 IDE 提供了 "Merged Manifest"的功能,帮助我们查看清单文件的合并来源。

上图中,可以清楚的看到网络访问权限是由play-services-ads:8.4.0依赖库提供的清单合并而来。

这几个小玩具,尤其是单元测试的录制和依赖关系的管理,都是五星好评,非常值得在项目开发中实践。除此之外,2.2版本还提供了对 C++ 更友好的支持、以及可视化布局中的蓝图模式等,期待正式版的早日到来,也期待 Google 为我们带来更多精益求精且越来越好玩的新功能。

参考文章
http://tools.android.com/tech-docs/test-recorder
http://v.youku.com/v_show/id_XMTYyNDcyNzUxMg==.html

原文首发于简书,未经允许,严禁转载

作者:geniusmart 

原文链接:http://www.jianshu.com/p/bc9bbac5a170


针对手游的性能优化,腾讯WeTest平台的Cube工具提供了基本所有相关指标的检测,为手游进行最高效和准确的测试服务,不断改善玩家的体验。目前功能还在免费开放中

 

点击地址:http://wetest.qq.com/cube立即体验!

最新文章
1客户案例研究:专家安全扫描,守护金融银行小程序安全和私密性 WeTest私有化部署的定制扫描平台让金融银行客户能无成本接入扫描系统并迅速上手使用。客户能方便快捷地根据定制手册进行自助扫描,根据生成的扫描报告,详细洞察漏洞,快速识别并准确定位问题根源。
2客户案例研究:专家渗透测试,洞察电子商务小程序重大交易漏洞 通过WeTest渗透测试服务,某知名零售公司旗下的在线购物类小程序中发现了8处安全风险,我们的安全专家为客户提供了详细的漏洞报告,提供了较为清晰完整的安全加固方案。在回归测试中,中危以上风险均被解决。
3自查小程序4大安全隐患!文末免费赠送小程序安全扫描专业版! 腾讯WeTest现面向小程序开发者开放免费申请使用小程序安全扫描专业版,助您提前发现全面的安全漏洞。扫描文中问卷二维码或点击问卷链接,即可报名参与免费领取活动。
4浅谈渗透测试服务在泛互行业带来的价值 在泛互联网行业中,渗透测试服务对于保障企业的网络安全至关重要。
5云手机卡顿/无特定设备/商店登录受限怎么办?WeTest专有云帮您解决! 公有云满足了大量小微企业、个人的测试需求;随着客户深入使用,也遇到了一系列新问题。本篇将对几个常见问题予以解答
购买
客服
反馈