第一行代码:Android(第3版)
上QQ阅读APP看书,第一时间看更新

前言

虽然我从事 Android 开发工作已经很多年了,但是之前从来没有想过自己要去写一本 Android 技术相关的书。在我看来,写一本书可以算是一个很庞大的工程,写一本好书的难度并不亚于开发一款好的应用程序。

由于我长期坚持在 CSDN 上发表技术博文,因而得到了大量网友的认可,也积累了一定的名气。很荣幸的是,人民邮电出版社图灵公司的前副总编辑陈冰老师联系上了我,希望我可以写一本关于 Android 开发技术的书,这着实让我受宠若惊。

在写本书前两版的时候,我可以说是费了相当大的心思。写书和写博客最大的区别在于,书的内容不能像博客那样散乱,不能想到哪里写到哪里,而是一定要系统化,要循序渐进,基本上在写第 1 章的时候就应该把全书的内容都确定下来了。

令我非常欣慰的是,本书的前两版在推出之后都获得了广大读者的强烈认可,目前已经成为了国内最畅销的 Android 技术书。各大书店、图书馆都能看到《第一行代码——Android》的身影,许多学校和培训机构也纷纷将其选为 Android 课程的教材,甚至《第一行代码》已经成为了本书的代名词。

不过,在科技高速发展的今天,各种技术的发展都是日新月异的。在本书第 2 版推出后的 3 年时间里,Android 操作系统经历了 8.0、9.0、10.0 的飞速升级,同时 Google 公司推荐的 Android 程序开发语言也从 Java 变成了 Kotlin。不可否认的是,本书第 2 版中的不少知识点已经过时,而且这 3 年间出现了很多新知识,第 2 版中也没有涵盖。因此,这让我坚定了写作本书第 3 版的想法。

由于涉及语言的变更,这次我将书中原来所有的 Java 代码都进行了重写,改用 Kotlin 语言进行实现。另外考虑到很多读者朋友之前可能并没有接触过 Kotlin,在第 3 版中我特别加入了许多 Kotlin 语言方面的讲解,因此这更像是一本 Android + Kotlin 的综合技术书。此外,这些年 Android 系统的各个版本都增加了很多崭新的特性,还出现了诸如 Jetpack、MVVM 等全新的技术,第 3 版将这些内容全部涵盖了进去。毫不夸张地说,我几乎重写了整本书。

而现在,你手中捧着的正是全新版的《第一行代码——Android》,同时这可能也是国内第一本基于 Android 10.0 系统写作的技术书。我真诚地希望你可以用心地阅读这本书,因为每多掌握一份知识,你就会多一份喜悦。Enjoy it!

由于第 3 版修改内容繁多,因此这里我只列举出最主要的变化。

首先是编程语言上的改变,本书前两版都是使用 Java 作为应用程序的开发语言,而第 3 版使用了 Kotlin,这是目前 Google 公司最推荐我们使用的开发语言。

本书的前两版中也没有涉及过语言方面的讲解,默认读者是有 Java 语言基础的。而第 3 版中对 Kotlin 语言进行了非常全面的讲解,不需要读者有任何 Kotlin 语言的基础。

另外,本书第 1 版是基于 Android 4.x 系统的,第 2 版是基于 Android 7.0 系统的,现在第 3 版基于 Android 10.0 系统。其中囊括了新系统中的诸多知识点,包括 Android 8.0 系统中引入的通知渠道和应用图标适配、Android 9.0 系统中引入的明文网络传输限制适配、Android 10.0 系统中引入的深色主题模式等。

除此之外,第 3 版还加入了两个实战项目以及 Retrofit、协程、Jetpack、MVVM 等全新知识点的讲解,内容将前所未有地充实。

本书内容通俗易懂,由浅入深,既适合初学者学习,又适合专业人员阅读。学习本书内容之前,你并不需要有任何 Android 或 Kotlin 方面的基础,但是最好有一定的 Java 基础。虽然本书是使用 Kotlin 语言来进行开发的,但是 Kotlin 是一门基于 Java 的语言,如果你对 Java 有所了解的话,将会非常有助于 Kotlin 语言的学习。

阅读本书时,你可以根据自身的情况来决定如何阅读。如果你是初学者的话,建议从第 1 章开始循序渐进地阅读,这样理解起来就不会感到吃力。而如果你已经有了一定的 Android 基础,那么就可以选择某些你感兴趣的章节进行跳跃式的阅读。但请记住,很多章最后的最佳实践以及 Kotlin 课堂一定是你不想错过的。

正如前面所说,本书的内容是非常系统化的,不仅全面介绍了那些你必须掌握的知识,而且保证了各章的难度都是梯度式上升的。全书一共分为 16 章,Android 方面涵盖了四大组件、UI、 Fragment、数据存储、多媒体、网络、架构等应用层面的知识。Kotlin 方面涵盖了基础语法、常用技巧、高阶函数、泛型、协程、DSL 等语言层面的知识。另外,为了让你在学完所有内容之后进一步提升综合运用的能力,本书的尾声部分还会带你一起开发一个天气预报程序,以及编写并发布一个开源库。

除此之外,本书的第 6 章、第 9 章、第 12 章、第 15 章中穿插了对 Git 的讲解,如果想要掌握它的用法,这几章的内容是绝对不能错过的。

本书中各个章节的内容相对比较独立,因此除了可以循序渐进地学习之外,你还可以把它当成一本参考手册,随时查阅。

首先,为了方便你的学习,本书提供了书中所有项目的源码,建议仅在需要的时候再去参考(例如获取项目中的图片资源)。最好的学习方式肯定是将所有的项目都亲手敲上一遍,因为只有这样,才能加深你对代码的理解。切勿直接将源码复制粘贴就当成是自己的东西了,只有亲手敲过的代码才真正是你自己的。

其次,本书提供了 Android 和 Kotlin 思维导图。思维导图可以方便你纵览 Android 和 Kotlin 的宏观图景,帮助你梳理各章的知识要点,了解详尽的知识脉络。

最后,本书前两版被大量高校当作教材使用,这次为了便于高校教师和培训机构教学,第 3 版中专门配备了相应的 PPT 课件。

以上所有资源,你都可以到图灵社区本书官方主页的“随书下载”中下载,你也可以关注我的微信公众号(见封面二维码),回复“随书资源”获取下载地址。

尽管我和编辑张霞已经尽可能地对本书进行了仔细的校对,但书中仍然难免存在一些未发现的错误。这些错误一旦后期被确认都会提交到图灵社区本书官方主页,你可以在这里查看所有已知的错误。如果你在阅读时发现了一些还未被提交和确认的错误,也欢迎你主动进行提交,编辑确认之后,你将能领到图灵社区的银子,可以免费兑换一些图灵的图书。