自从2008年谷歌推出 Android 的第一个版本之后,安卓的市场占有率就势如破竹,短短两年间就占据了手机操作系统的头把交椅,现如今已经占据了全球智能手机操作系统 70%以上的份额。如果你是打算从“零”开始加入到Android开发的阵营里,那么被誉为“Android开发第一书”的《第一行代码(第2版)》应该是你的不二之选。
Android 学习基础
当然,在写 Android 的第一行代码之前,还是要有些别的基础的,郭老师在开篇就做了介绍——
学习本书内容之前,你并不需要有任何的Android基础,但是你需要有一定的Java基础,因为Android开发都是使 用Java语言的,而本书并不会去专门介绍Java方面的知识。
我希望你已经是一个颇有经验的 Java 程序员,这样你理解本 书的内容时将会轻而易举,因为 Android 程序都是使用 Java 语言编写的。如果你对 Java 只是略 有了解,那阅读本书应该会有一点困难,不过一边阅读一边补充 Java 知识也是可以的。但如果 你对 Java 完全没有了解,那么我建议你可以暂时将本书放下,先买本介绍 Java 基础知识的书学上两个星期,把 Java 的基本语法和特性都学会了,再来继续阅读这本书。
由于本书使用的是Java 8,并且引入了Lambada表达式和函数式编程,所以即使有Java 的基础也应该再看看《Java 8实战》和《Java 8函数式编程》
Android 开发环境
与本书第一版使用的eclipse不同,这次用了谷歌官方的 Android Studio,帮助我们简化了搭建开发环境的过程,将所有需要用到的工具都帮我们集成好了——使用Android Studio,这是安卓开发的大势所趋。当然下载Android Studio还要有些“科学上网”的方法,或者另走捷径,这些书中有所介绍,不再赘述。
郭老师在手把手的教我们安装好Android Studio之后,就开始教我们写Hello World了,郭老师教我们写的 Hello World 有何独特之处?看看某童鞋的评价——
本人年前根据网上教程自己搭建了安卓的开发环境,找了几个开源小项目就开始蒙着头研究,遇到不懂的就各种百度,做了一个月后,虽然也有不少收获,但总感觉脑子里是一团浆糊……看这本书评价挺好,就入手了一本。看了之后,才发现,原来安卓是这么系统这么有调理这么优秀的东西,瞬间豁然开朗了!
实战用户界面
手机App作为客户端应用,是直接与用户打交道的,而活动(Activity)作为安卓的四大组件之一,正是负责交互这部分的,是最基本也是最频繁使用的部分,可以说是基本功所在,一定要掌握好!第二章从实战角度出发,依次介绍了最常用的——Toast、Menu、Intent,以及Activity的生命周期、启动模式、最佳实践。我们跟着郭老师把第二章这一趟走下来,
毫不夸张地说,你在 Android 活动方面已经算是一个小高手了!
第三章主要介绍了Android的基本控件和基本布局,Android Studio 提供了可视化编辑器,允许使用拖放控件的方式来编写布局,并能在视图上直接修改控件的属性。使用过Visual Studio 做过桌面应用开发或者用过Dreamweaver做过网页的肯定对这种拖拽式布局不会陌生。当然郭老师并不推荐我们使用这种方式来编写界面,因为可视化编辑工具并不利于我们去真正了解界面背后的实现原理。就像写Web应用一定要熟悉HTML一样,我们做安卓开发也一定要完全掌握使用 XML来编写界面。
第四章的Fragment,主要功能是可以让界面在安卓平板上更好地展示,鉴于安卓平板并不是那么热门,这一章对于初学者而言其实可以略过。
广播
第五章介绍了四大组件之二 —— Broadcast,安卓依靠广播来实现消息的收发,结合界面部分学到的知识,本书教我们做了一些有趣的实践,比如App开发经常会接触到的用户登录。
值得一提的是,本章当中,郭老师顺带着把Git的概念和最基本的实践给我们安利了一遍,窃以为这种安排还是很有实战意义的,在后续的过程中我们也会持续用到Git对代码进行版本管理,有关Git的知识可以进一步参考《GitHub入门与实践》,关于Git在协同开发中的作用可以参考《Git团队协作》
数据
程序的运行离不开数据,任何一个App,其实就是在不停地和数据打交道,没有数据的App就是一个空壳。第6-9章基本上就是围绕着各类数据展开。第6章首先涉及的是数据持久化,包含文件存储、 SharedPreferences存储以及数据库存储。第7章 Content Provider是安卓四大组件之一,涉及不同的应用程序之间实现数据共享的功能,并且详细介绍了安卓的权限机制。第8章首次教我们在实机上运行自己编写的App,并且教我们玩些有趣的东西——使用通知、 调用摄像头、从相册中选取照片、播放音频和视频文件等等。第9章则是通过网络与服务端进行数据交互,写过Web程序的童鞋对于这一章可能不会太陌生。
服务
服务(Service)是 Android 中实现程序后台运行的解决方案,适合去执行那些不需要和用户交互而且还要求长期运行的任务(比如偷偷的在后台跑个流量啊什么的就是它😄 )。第10章专门介绍安卓四大组件中的最后一项:服务。服务实现的核心是安卓多线程编程,熟悉Java的童鞋会比较容易上手,因为语法都是一样的。本章的实践以一个典型的多线程场景——下载文件为例,涉及第7、8 、9 、10 章的多项内容,综合程度很高,完成这个例子基本就算跨过安卓开发的入门门槛了。另外,如欲深入了解Java的多线程编程可以看结城浩的作品《图解Java多线程设计模式》
进阶
完成了前面的内容后,我们已经成功脱离了安卓初级开发者的身份。第11-14章则从多方面介绍高级开发涉及的内容:基于位置服务很接地气的结合了百度的LBS SDK;Material Design教我们如何开发更有谷歌味道的漂亮UI;最后以一个很考验综合应用能力的天气软件实战收尾,让我们体验一把开发一个具有完整功能的App的全过程。当然,更加深入细致的知识,我们还要多看书、多实践、多学习 —— 《Android编程权威指南(第3版)》在等着你!
总结
整本书学习下来的两大感觉就是:(1)入门容易,郭老师就像是坐在你的边上,手把手的教你,真是没法学不会啊!(2)接地气,结合了国内开发的实际,比如 LBS 用的是百度、广告用的是广点通、安卓市场用的是360,大大的方便了我们国内的开发者进行实践。
最后,还有啥不明白的就到郭老师的网站上去提问吧 http://guolin.tech