从事 Android 开发六年,我学到的那些事

你的代码质量应该随着经验的增加而提高,在本文作者基于 Android 开发者六年间,其都学到了什么?

从事 Android 开发六年,我学到的那些事

文章插图
作者 | Mrudula
译者 | 弯月,责编 | 屠敏
以下为译文:
六年来,我为多家公司编写过各种应用程序 。你编写代码或处理代码库的文化和方式会随着你的经验而不断变化 。
你的代码质量应该随着经验的增加而提高,否则就需要反思了 。
选择正确的架构
如果你是从头开始开发应用程序,那么就会有许多优势 。
其中之一就是选择正确的体系结构 。通常,我们喜欢将所有内容都写在同一个activity文件中,因为这样做很容易 。但是,当你的代码量增多时,这就会成问题 。你的代码库会变得十分庞大,每个文件包含的代码行数也会非常庞大 。
考虑到代码的性能和维护,在早期阶段选择正确的体系结构,才是明智的做法 。
MVC、MVP、MVVM和MVI等许多体系结构可帮助 Android 开发人员轻松维护、测试和开发新功能 。
从事 Android 开发六年,我学到的那些事

文章插图
上图说明了在设计完应用程序后,所有模块应如何相互交互 。尽管这完全取决于你的组织,但你也有可能会有机会选择适合应用程序的体系结构 。
但是,强烈建议你选择适合需求的特定体系结构 。
关于哪种架构最好这个话题也是众说纷纭 。
根据开发人员指南:
“没有任何一种方法能够编写出适用于每种情况的最佳应用程序 。话虽如此,对于大多数情况和工作流来说,这种推荐的体系结构都是一个很好的起点 。”
善加利用Android Studio
Android Studio 提供了最快的工具,可以为每种类型的 Android 设备构建应用程序 。
不幸的是,我们仅探索了该IDE的一小部分 。Android Studio附带了许多工具,以下是我们在日常开发中应使用的各种工具 。
Visual Layout Editor
在这款Layout Editor中,我们可以将UI元素拖到可视化设计编辑器中,并以此来快速构建布局,同时无需手动编写布局XML 。
这款设计编辑器可以在各种 Android 设备和版本上预览布局,而且你还可以动态调整布局的大小,以确保在各种屏幕尺寸上正常工作 。
当你使用这款Layout Editor构建新布局时,尤其能感受到其强大之处 。
APK Analyzer
我们可以利用 APK Analyzer 减少花在调试应用程序内DEX文件和资源问题上的时间,而且还可以减小APK的大小 。此外,你还可以在命令行中使用 APK Analyzer。
APK Analyzer 的功能包括:
  • 查看APK中文件的绝对大小和相对大小,例如DEX和Android资源文件 。
  • 了解DEX文件的组成 。
  • 并排比较两个APK 。

从事 Android 开发六年,我学到的那些事

文章插图
Fast Emulator
如果你需要应对各种版本的 Android,而且还希望在各种 API 级别上测试你的应用,那么这款模拟器甚至比真正的设备还好 。
这款模拟器提供了Android设备所具备的所有功能 。你可以模拟打电话和发短信、指定设备的位置、模拟不同的网络速度、模拟旋转和其他硬件传感器、访问 google 应用商店等等 。
与在物理设备上的测试相比,从某种程度上来说,在模拟器中测试应用程序更快捷、更方便 。
Profilers
Android Profiler工具提供了实时数据,可以帮助你了解应用使用CPU、内存、网络和电池资源的情况 。
从事 Android 开发六年,我学到的那些事

文章插图
虽然我们有各种的分析器,例如CPU分析器、内存分析器、网络分析器和能耗分析器 。
但 Android Profiler 可以兼容Android 5.0(API级别21)及更高版本 。你可以使用 Android Studio 中的高级事件探查器来监视应用会话消耗CPU资源和内存的状况 。
内存探查器可以帮助我们使用Leak Canary调试内存泄漏 。
配置构建变化
你可以使用构建变化为你的应用创建不同的版本,还可以正确管理依赖项和签名配置 。
大多数组织都有测试和生产环境 。如果想针对每种环境构建不同的应用程序,你可以利用不同的构建类型指定不同的基本URL 。
从事 Android 开发六年,我学到的那些事

文章插图
你还可以根据API级别或其他设备变化,为不同的设备构建应用程序的不同版本 。
 
4.使用 Lint Checks 改进代码
这个 lint 工具可以帮助你找出结构不良的代码,而这些代码可能会影响应用程序的可靠性和效率 。


推荐阅读