2014年红色封面的《第一行代码》付梓之初便受到不同学习层次尤其是刚入门的Android开发者的热烈欢迎,被誉为“Android学习的红宝书”,一时间洛阳纸贵。最近《第一行代码(第二版)》在作者两年增删后,不仅内容推陈出新,连封面颜色也由红色换成了Android吉祥物的青绿色。
知识结构合理
本书完全继承了第一版最显著的优点——知识结构合理。全书主要框架围绕着四大组件展开:第2~4章围绕Activity分别详细介绍了Activity、View和Fragment,没接触过Android UI开发的初学者初读便会醍醐灌顶;第6~9章则围绕ContentProvider展开,介绍了从相机或相册获取图片以及访问网络等最让初学者感觉棘手的内容。
本书知识结构详略得当,难度适合初学者:对UI、数据存储和网络等常见功能进行了浓墨重彩的介绍,而对播放视频和音频等不常见功能则一笔带过,对初学者难度太高的Canvas和Animation以及过于生僻的传感器本书只字未提。
与时俱进
书中几乎没有曾经风靡一时而如今销声匿迹的技术,用SAX解析XML等技术已经成为昨日黄花,因此本书中对这些技能轻描淡写。
本书侧重于实战而不仅是翻译官方文档,本书并不像其他书籍一样提倡用JSONObject和JSONArray解析Json,也不鼓励用String写SQL代码,而是详细介绍了在实战中能提高效率的Gson和LitePal。
在目前很多公司还用从上个世纪走来的SVN作为版本控制系统之际,高瞻远瞩的郭神却选择了用Git处理项目版本管理问题:不仅是工作效率的提高,还是思维方式的转变。
此外,本书不但开创了国内技术书籍介绍用Lambda表达式代替匿名内部类等Java 8最新内容的先河,还独树Android 7.0多窗口模式一帜,这都是革故鼎新的壮举。
少就是多
本书还有一个闪光点就是不具备国内其他Android参考书籍中常见的糟粕:国内有很多Android书籍作者的记忆停留在“五大布局”时代,总是不肯去掉AbsoluteLayout和TableLayout等早已被淘汰的内容;还有很多抱残守缺的人不愿意抛弃eclipse;还有更多的人不顾初学者的接受能力填鸭式地灌输Canvas和Animation……而郭神的佳作里只有最新的、对初学者入门最有帮助的内容。
为了避免广告之嫌,很多技术书籍的作者并没有介绍百度地图、360应用商店和腾讯广告联盟等中国特色的第三方服务,却对官方文档详细但不符合国情的Google Map等服务留有大量篇幅;而郭神却并不远嫌避怨,反其道而行之,只写对开发者有帮助的内容。
除了完全删除了传感器等技术性内容之外,郭神对本书上一个版本中冗余的非技术性文字也进行了大刀阔斧的精简:大家对第一版每一章最后都用描述RPG游戏打怪升级的写法写Android工程师进步的过程褒贬不一,尽管很多人认为这一系列小故事起到寓教于乐的作用,然而更多的人认为这完全是画蛇添足,如果你并没注意到这个小细节,说明第二版删除这些内容真是太明智了。