前言

虽然我从事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版的变化

由于第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课件。

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

勘误

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

① https://www.ituring.com.cn/book/2744。

目录

  • 彩插
  • 前言
  • 第1章 开始启程,你的第一行Android代码
  • 第2章 探究新语言,快速入门Kotlin编程
  • 第3章 先从看得到的入手,探究Activity
  • 第4章 软件也要拼脸蛋,UI开发的点点滴滴
  • 第5章 手机平板要兼顾,探究Fragment
  • 第6章 全局大喇叭,详解广播机制
  • 第7章 数据存储全方案,详解持久化技术
  • 第8章 跨程序共享数据,探究ContentProvider
  • 第9章 丰富你的程序,运用手机多媒体
  • 第10章 后台默默的劳动者,探究Service
  • 第11章 看看精彩的世界,使用网络技术
  • 第12章 最佳的UI体验,Material Design实战
  • 第13章 高级程序开发组件,探究Jetpack
  • 第14章 继续进阶,你还应该掌握的高级技巧
  • 第15章 进入实战,开发一个天气预报App
  • 第16章 编写并发布一个开源库,PermissionX