前 言开发者的焦虑
当今,Android和iOS手机无论在系统还是外形上都趋于雷同,App功能的差异也是微乎其微,移动端发展趋于缓慢已成为开发者的共识。移动开发者面对小程序、React Native、Flutter和Weex跨平台方案都显得焦躁不安,对于自己未来需要发展和生根的方向或多或少地会感到迷茫。
从市场的角度来说,公司缺少的并非基础的开发人员,更希望可以招聘到有大量实践经验的开发者。要进阶成为高级开发者,更需要阅读有深度、偏重实践的书籍。因此,我从2015年8月开始在GitHub上创建了“Android-Best-Practices”项目。这个项目的目的是将经实际验证的经验分享出来,力求达到“学完即用”的效果。在收到出版社的邀请后,我将相关的文章进行重写,同时新增大量内容,目的是让更多的开发者可以在短时间内得到更多的实际经验。
面对当前移动开发的生存环境,开发者的无力感会越发严重。作为移动应用开发者,应该了解与本职工作相关的知识,同时多涉猎其他邻域。如果你想快速巩固移动开发的知识后再投身到大前端中去,那么这本书很适合你。当阅读完本书的每一章后,你收获的是已经经过时间检验的知识,需要做的仅仅是去实践它、理解它。
写作风格
本书不会像其他书籍一样提供完整的代码下载,也不会花大量的篇幅分析源码。官方每隔几个月就会对源码的实现进行各种修改,而源码的设计思路则较为稳定。“授人以鱼不如授人以渔”,本书会将分析源码的过程提炼出来,主要阐述设计思路和关键的代码,甚至会为了可读性删除没必要的代码逻辑。这样做的目的是希望读者既可以快速理解源码的思路,又不会陷入代码的困境中。
本书内容
本书分为基础知识和工程优化两部分。基础知识部分讲述基础知识,读者可以找到合适的第三方库来提高业务开发速度;工程优化部分讲述工程实践方面的内容,仔细阅读此部分,可以提升自身内在的知识广度。
基础知识
在实际工程中,Android本身的API大多不会被直接使用,需要做二次封装和扩展。基础知识部分将基础的知识提升到一个实践的层面,不再讲述如何使用它们,而是讲如何通过封装这些API解决实际中的各种问题。
第1章 Java的反射是必知必会的内容,我们需要知道:
第2章 Log是最简单的代码了,这里要讲的是日志的高级知识:
第3章 Intent是非常简单的对象,着重来讲:
第4章 SharedPreferences作为基本的存储对象,需要了解如下知识点:
第5章 Fragment是开发者很容易出错的类,这里需要思考:
工程优化
工具是开发者的武器,拥有一个好的武器可以战无不胜。在工程优化篇中,会提到如何利用工具和技巧帮助开发者优化项目。这部分的知识点较为零碎,但学起来并不难,很适合读者用碎片时间进行学习。
第6章 Dialog已经不推荐直接使用了,取而代之的是dialogFragment,关于它我们需要知道:
第7章 Gradle是常用工具,本章不准备讲它的基础知识,会直接介绍实际的例子:
第8章 本章除讲述如何提升打Debug包的速度外,还介绍了如下内容:
第9章 每家公司都希望APK越来越小,本章探讨的是切实有效的瘦身策略,主要解惑的点为:
第10章 测试用例的编写一直被我们忽视,本章是一个入门级的内容,涵盖了如下的知识点:
第11章 本章在前半部分会讲与Debug相关的内容,后半部分将介绍一些极其好用的插件,阅读后你将知道:
第12章 使用代理工具是开发人员和测试人员的必会技能,本章会介绍Whistle的主要功能: