安卓开发总览:打造高质量应用
高质量开发:
出海东南亚的同学,面对一堆 512MB 内存的设备、无处不在的弱网络流下了无助的眼泪。除了内存优化、弱网络优化,想做一款高质量的应用还远远不止这些。
高效开发:
一个应用从想法到成品,需要经历开发、编译 CI、测试、灰度、发布等多个阶段,那怎样提升各个阶段的效率,也是你我比较关心的话题。跨平台开发可能是解决开发阶段的一个答案,动态部署可能是发布阶段的一个答案
开发阶段…耗时分析工具 Traceview 它背后的实现原理是什么?能不能做一个完全没有性能损耗的 Traceview?或者怎么样将它移植到线上使用?
编译 CI 阶段。如何防止代码不断地恶化?怎样进一步优化性能?d8 与 ReDex 有什么神奇的黑科技?如何利用好 Coverity、Infer 这些静态分析工具?这部分可能需要一些编译原理的知识,你会发现移动开发也有很多值得深入研究的东西。
那么怎样提升实验室发现问题的能力呢?如何尽可能地模拟用户的操作路径?做好测试并不容易,自动化测试结合 AI 或许可以帮助我们解决一些痛点。
虽然通过 APM 质量平台可以减少推卸责任,但有些人的做法通常还是发现空指针加一个判空,发现并发问题加一个锁。这里的空指针真正原因是什么?这里判空了后面的逻辑是否还会运行正常?有没有更加好的方法或架构可以避免这个问题?我们真正应该反问的是这三个问题,把“质量观”深入骨髓,真正去想要得到个人成长,深挖背后的原因。
性能
重视 APM 性能监控系统。从崩溃、内存、卡顿、启动、I/O、存储、网络、耗电、渲染、安装包体积等比较常见的关键点入手,细细打磨产品。
架构演进:
“君有疾在腠理,不治将恐深”,对于一个应用来说,架构一定是核心中的核心。在这个模块,我会讲到 Google 的一些架构演进,例如 Android P、App Bundle、虚拟机、耗电等,也会讲到移动网络架构的一些选择,跨平台开发、动态化实践等热点知识。