基础概念
按照Google官方建议,Android测试体系应该参照测试金字塔架构(如下图所示),App应该包含三类测试(即小型、中型和大型测试):

- 小型测试是指单元测试,用于验证应用的行为,一次验证一个类。
- 中型测试是指集成测试,用于验证模块内堆栈级别之间的交互或相关模块间的交互。
- 大型测试是指端到端测试,用于验证跨越了应用的多个模块的用户UI点击操作流程。
对比 Android CLI 与 Android Skills 的能力边界,给出六阶段 Agent 工作流、三个实战示例与六条团队接入边界,基于 2026-08-11 实测核验 CLI 1.0.15985488 与 skills v1.0.7。
很多人认为程序的内存管理偏向操作系统层面,在做Android或者Java应用层的开发时不需要关心太多底层的问题,Java中的JVM或者Android中的Dalvik或ART已经做了大部分工作,不需要开发者了解太多细节。但是随着app功能的扩展,性能上的优化需要被提上日程,这使得开发者在做这些性能上的优化工作时不得不去深入地了解程序底层上内存管理上的细节,接下来我将着重介绍在应用开发过程中我们需要掌握的一些内存管理细节,但是也不会太过深入底层,做到先看森林再晓树木。
这个主题将定为如下三个部分:
在Android应用的开发中,我们最常见到的一个应用场景是请求网络数据接口然后显示在UI界面上,如下面代码所示
1 | val user = fetchUserData() |
但是当你运行上面的代码时就会发发现程序报错,抛出了 NetworkOnMainThreadException 的异常,这是因为Android不允许在主线程(也就是UI线程)中进行网络操作。这时,我们需要加上后台线程去处理网络请求
1 | workerThread{ |
本篇文章翻译自官方介绍文档(原文)
本篇文章介绍了如何在Android开发中使用Android的Data Binding库来减少开发中的胶水代码(组织布局和业务逻辑的代码)。
Data Binding库支持在Android 2.1(API level 7)及以上版本中使用。
使用Data Binding,Gradle的Android插件需要使用1.5.0-alpha1及以上版本。具体配置可参考如何更新Gradle Android插件?
as使用中的一些插件和辅助代码编写的一些建议
Robolectric基于Junit,Junit本身支持断言框架,但是因为语义不清,测试意图表达不明显而广为人诟病,所以在使用Robolectric做单元测试的时候,使用hamcrest作为断言框架使得测试语义更加清晰,下面介绍下hamcrest的使用