《Kotlin从零到精通Android开发》是一部讲解Kotlin语言的入门书籍,从Kotlin语言的基本语法一直讲到如何将其运用于Android开发。由浅入深、从理论到实战,帮助读者快速掌握Kotlin开发技巧。
《Kotlin从零到精通Android开发》共有10章内容,可分为三大部分:第一部分即第1章,主要介绍Kotlin语言的开发环境搭建;第二部分包含第2~5章,主要介绍Kotlin的基本语法知识,包括Kotlin的变量声明、控制语句、函数定义、类与对象等;第三部分包含第6~10章,主要介绍如何使用Kotlin进行实际的App开发工作,包括利用Kotlin操作简单控件、复杂控件、数据存储、自定义控件、网络通信等。为增强学习Kotlin语言的趣味,本书在讲解Kotlin的用法时,特别注意结合生活中的具体案例,并加以示范和运用。尤其是后面讲到利用Kotlin开发App的时候,精心设计了数个电商App的实战模块,例如电商App的登录模块、频道模块、购物车模块、团购模块、升级模块等。通过这些实战小项目,读者可迅速将Kotlin应用于App开发工作中。
《Kotlin从零到精通Android开发》适用于Android开发的广大从业者、Kotlin语言的业余爱好者,也可用作大中专院校与培训机构的Kotlin课程教材。
欧阳燊,同济大学计算机科学与技术专业学士,浙江大学软件工程专业工程硕士,先后就职于福建新大陆软件工程公司、亚信科技有限公司杭州研发中心、福建福诺移动通信技术有限公司,担任系统分析师、高级软件工程师。有14年以上软件开发经验,熟悉C/C++、Java及相关软件架构,两年Android开发经验,从事一款用户量超千万的App项目开发,对Android开发拥有丰富的实战经验。
目 录
第1章 搭建Kotlin开发环境 1
1.1 Kotlin与Android开发的关系 1
1.1.1 Kotlin语言简介 1
1.1.2 Android Studio的官方开发语言 2
1.2 Kotlin开发工具 2
1.2.1 安装Android Studio 2
1.2.2 启动Android Studio 4
1.2.3 创建Kotlin工程 5
1.2.4 新建Kotlin文件 8
1.3 SDK安装与插件升级 10
1.3.1 安装最新版SDK 10
1.3.2 升级Gradle插件 11
1.3.3 升级Kotlin插件 12
1.4 Kotlin简单配置 14
1.4.1 调整Kotlin编译配置 14
1.4.2 修改编译配置文件 15
1.4.3 Java代码转Kotlin代码 16
1.5 Kotlin相关技术 18
1.5.1 Kotlin代码与Java代码PK 18
1.5.2 Anko库 21
1.5.3 Lambda表达式 22
1.6 小结 23
第2章 数据类型 24
2.1 基本数据类型 24
2.1.1 基本类型的变量声明 24
2.1.2 简单变量之间的转换 25
2.2 数组 26
2.2.1 数组变量的声明 27
2.2.2 数组元素的操作 28
2.3 字符串 29
2.3.1 字符串与基本类型的转换 29
2.3.2 字符串的常用方法 29
2.3.3 字符串模板及其拼接 30
2.4 容器 31
2.4.1 容器的基本操作 31
2.4.2 集合Set/MutableSet 32
2.4.3 队列List/MutableList 34
2.4.4 映射Map/MutableMap 36
2.5 小结 38
第3章 控制语句 39
3.1 条件分支 39
3.1.1 简单分支 39
3.1.2 多路分支 40
3.1.3 类型判断 42
3.2 循环处理 43
3.2.1 遍历循环 44
3.2.2 条件循环 45
3.2.3 跳出多重循环 46
3.3 空安全 48
3.3.1 字符串的有效性判断 48
3.3.2 声明可空变量 49
3.3.3 校验空值的运算符 50
3.4 等式判断 52
3.4.1 结构相等 52
3.4.2 引用相等 53
3.4.3 s和in 55
3.5 小结 57
第4章 函数运用 58
4.1 函数的基本用法 58
4.1.1 与Java声明方式的区别 58
4.1.2 输入参数的格式 59
4.1.3 输出参数的格式 60
4.2 输入参数的变化 62
4.2.1 默认参数 62
4.2.2 命名参数 63
4.2.3 可变参数 64
4.3 几种特殊函数 66
4.3.1 泛型函数 66
4.3.2 内联函数 67
4.3.3 简化函数 68
4.3.4 尾递归函数 69
4.3.5 高阶函数 69
4.4 增强系统函数 71
4.4.1 扩展函数 71
4.4.2 扩展高阶函数 72
4.4.3 日期时间函数 73
4.4.4 单例对象 75
4.5 小结 77
第5章 类和对象 78
5.1 类的构造 78
5.1.1 类的简单定义 78
5.1.2 类的构造函数 79
5.1.3 带默认参数的构造函数 81
5.2 类的成员 83
5.2.1 成员属性 83
5.2.2 成员方法 86
5.2.3 伴生对象 87
5.2.4 静态属性 88
5.3 类的继承 89
5.3.1 开放性修饰符 89
5.3.2 普通类继承 91
5.3.3 抽象类 93
5.3.4 接口 94
5.3.5 接口代理 96
5.4 几种特殊类 99
5.4.1 嵌套类 100
5.4.2 内部类 100
5.4.3 枚举类 101
5.4.4 密封类 103
5.4.5 数据类 104
5.4.6 模板类 105
5.5 小结 107
第6章 Kotlin使用简单控件 108
6.1 使用按钮控件 108
6.1.1 按钮Button 108
6.1.2 复选框CheckBox 111
6.1.3 单选按钮RadioButton 112
6.2 使用页面布局 114
6.2.1 线性布局LinearLayout 114
6.2.2 相对布局RelativeLayout 118
6.2.3 约束布局ConstraintLayout 119
6.3 使用图文控件 124
6.3.1 文本视图TextView 124
6.3.2 图像视图ImageView 127
6.3.3 文本编辑框EditText 128
6.4 Activity活动跳转 130
6.4.1 传送配对字段数据 130
6.4.2 传送序列化数据 132
6.4.3 跳转时指定启动模式 134
6.4.4 处理返回数据 137
6.5 实战项目:电商App的登录页面 138
6.5.1 需求描述 138
6.5.2 开始热身:提醒对话框AlertDialog 139
6.5.3 控件设计 141
6.5.4 关键代码 141
6.6 小结 144
第7章 Kotlin操纵复杂控件 145
7.1 使用视图排列 145
7.1.1 下拉框Spinner 145
7.1.2 列表视图ListView 149
7.1.3 网格视图GridView 154
7.1.4 循环视图RecyclerView 156
7.2 使用材质设计MaterialDesign 165
7.2.1 协调布局CoordinatorLayout 165
7.2.2 工具栏Toolbar 167
7.2.3 应用栏布局AppBarLayout 169
7.2.4 可折叠工具栏布局CollapsingToolbarLayout 173
7.2.5 仿支付宝首页的头部伸缩特效 177
7.3 实现页面切换 181
7.3.1 翻页视图ViewPager 182
7.3.2 碎片Fragment 184
7.3.3 标签布局TabLayout 187
7.4 广播收发Broadcast 190
7.4.1 收发临时广播 191
7.4.2 接收系统广播 194
7.5 实战项目:电商App的商品频道 196
7.5.1 需求描述 196
7.5.2 开始热身:下拉刷新布局SwipeRefreshLayout 197
7.5.3 控件设计 201
7.5.4 关键代码 201
7.6 小结 203
第8章 Kotlin进行数据存储 205
8.1 使用共享参数SharedPreferences 205
8.1.1 共享参数读写模板Preference 205
8.1.2 属性代理等黑科技 208
8.1.3 实现记住密码功能 210
8.2 使用数据库SQLite 211
8.2.1 数据库帮助器SQLiteOpenHelper 211
8.2.2 更安全的ManagedSQLiteOpenHelper 213
8.2.3 优化记住密码功能 220
8.3 文件I/O操作 222
8.3.1 文件保存空间 222
8.3.2 读写文本文件 224
8.3.3 读写图片文件 225
8.3.4 遍历文件目录 227
8.4 Application全局变量 228
8.4.1 Application单例化 228
8.4.2 利用Application实现全局变量 231
8.5 实战项目:电商App的购物车 232
8.5.1 需求描述 232
8.5.2 开始热身:选项菜单OptionsMenu 233
8.5.3 控件设计 235
8.5.4 关键代码 236
8.6 小结 240
第9章 Kotlin自定义控件 242
9.1 自定义普通视图 242
9.1.1 构造对象 242
9.1.2 测量尺寸 245
9.1.3 绘制部件 249
9.2 自定义简单动画 252
9.2.1 任务Runnable 252
9.2.2 进度条ProgressBar 255
9.2.3 自定义文本进度条 257
9.2.4 实现进度条动画 258
9.3 自定义通知栏 259
9.3.1 通知推送Notification 260
9.3.2 大视图通知 262
9.3.3 三种特殊的通知类型 265
9.3.4 远程视图RemoteViews 269
9.3.5 自定义折叠式通知 272
9.4 Service服务启停 274
9.4.1 普通方式启动服务 274
9.4.2 绑定方式启动服务 277
9.4.3 推送服务到前台 279
9.5 实战项目:电商App的生鲜团购 283
9.5.1 需求描述 283
9.5.2 开始热身:震动器Vibrator 284
9.5.3 控件设计 287
9.5.4 关键代码 287
9.6 小结 289
第10章 Kotlin实现网络通信 291
10.1 多线程技术 291
10.1.1 大线程Thread与消息传递 291
10.1.2 进度对话框ProgressDialog 295
10.1.3 异步任务doAsync和doAsyncResult 297
10.2 访问HTTP接口 300
10.2.1 移动数据格式JSON 301
10.2.2 JSON串转数据类 303
10.2.3 HTTP接口调用 304
10.2.4 HTTP图片获取 306
10.3 文件下载操作 308
10.3.1 下载管理器DownloadManager 308
10.3.2 自定义文本进度圈 313
10.3.3 在页面上动态显示下载进度 316
10.4 ContentProvider内容提供 319
10.4.1 内容提供器ContentProvider 319
10.4.2 内容解析器ContentResolver 322
10.4.3 内容观察器ContentObserver 325
10.5 实战项目:电商App的自动升级 329
10.5.1 需求描述 329
10.5.2 开始热身:可变字符串SpannableString 330
10.5.3 控件设计 333
10.5.4 关键代码 334
10.6 小结 337
前 言
新技术的发展日新月异,编程语言也不例外,从早期的机器语言到汇编语言,再到以C语言为代表的高级语言,一路衍生了C++、Java、Objective-C等庞大的编程语言家族。其中,Java经过多年的发展已经是一枝独秀,不但在服务端的开发中占据优势,而且在客户端的安卓开发上也形成垄断之势。不过,由于Java语言诞生较早(诞生于20世纪90年代中期),使得它不可避免地存在一些先天不足,比如业务代码过于冗长、处理逻辑不够灵活、安全隐患层出不穷等。鉴于此,一方面Java语言不断更新换代,到2017年已经迭代到了Java 9版本;另一方面,人们也试图设计新的语言以便更好地“填坑”,于是涌现了Scala、Groovy、Clojure等新兴语言,而Kotlin就是这些新兴语言中的佼佼者。
Kotlin问世于2011年,作为后起之秀的它虽然拥有代码简洁、函数式编程、更安全健壮、百分百兼容Java等诸多特性,但是前有C++、Java等老语言根深叶茂,后有Python、Go等新语言紧追不舍,Kotlin头几年的发展一直不温不火。直到这两年,在JetBrains、Google等公司的大力扶持之下,Kotlin的发展才驶上了快车道,先是在2016年2月推出Kotlin 1.0发布版,再是谷歌公司在2017年5月宣布将Kotlin作为Android的官方开发语言,然后在2017年10月推出的Android Studio 3.0正式集成了Kotlin开发环境,紧接着更完善的Kotlin 1.2正式版在2017年11月发布。正如当初Android Studio取代Eclipse成为Android开发的主流开发工具一样,在可预见的未来,Kotlin必将逐步取代Java成为主流的App开发语言。
被寄予厚望的Kotlin在编程工作中给开发者带来的巨大便利毋庸置疑,大量的开发实践表明,实现同样功能的Kotlin代码往往只有对应Java代码的三分之一。并且Kotlin的语法兼容并蓄、易懂易学,只要开发者拥有任何一门高级语言的编程基础,再配合一本合适的Kotlin入门教程,短时间内即可成为Kotlin熟练开发者。正因为Kotlin是如此的简单易用,它的代码也是如此的简洁明了,所以倘若介绍Kotlin语法的教程还在长篇大论,那它一定是在夸夸其谈地“耍流氓”。Kotlin的设计理念是尽可能的简易,而不是抛出一堆令人生畏的烦琐概念,因此本书在介绍Kotlin用法的时候,也秉承了与之相符的一贯理念,即凡是能够简单处理的事情,决不拐弯抹角、拖泥带水。
本书既是一本Kotlin语法的入门教程,也是讲述Kotlin开发App的教程,一方面介绍Kotlin语言的基本语法,另一方面介绍Kotlin在安卓开发中的实际应用,可谓是结合理论、联系实战,方便读者迅速将Kotlin运用于日常的App开发工作之中,更好、更快地将学习成果展现出来,起到立竿见影的工作成效。当然,本书的侧重点在于教会读者利用Kotlin进行安卓开发工作,故而在有限的内容篇幅上有所取舍,比如服务端的Kotlin开发着墨不多,另外阐述了如何使用Kotlin实现常见的几种App开发技术,其余的App开发涉及的Kotlin技术即可触类旁通。如果读者想要了解更详细、更具体的App开发技能,可参见笔者的另一部App开发专著《Android Studio开发实战:从零基础到App上线》。
全书共有10章内容,循序渐进,可分为三大部分:第一部分即第1章,主要介绍Kotlin语言的开发环境搭建;第二部分包含第2~5章,主要介绍Kotlin的基本语法知识,包括Kotlin的变量声明、控制语句、函数定义、类与对象等;第三部分包含第6~10章,主要介绍如何使用Kotlin进行实际的App开发工作,包括如何通过Kotlin使用简单控件、如何通过Kotlin操纵复杂控件、如何通过Kotlin进行数据存储、如何通过Kotlin自定义控件、如何通过Kotlin实现网络通信等。通过本书这10章的学习,读者应该能够掌握Kotlin的大部分常用语法,并将其得心应手地运用于App开发工作中,你会发现多了一门可供选择的App开发语言是多么奇妙的事情。
从零开始学Kotlin其实指的是Kotlin零基础,并非编程零基础。在学习本书之前,读者应当掌握至少一门高级开发语言。如果没有任何编程基础就来学习Kotlin,这是不现实也是不可取的,因为短期之内各公司不会招聘只会Kotlin的程序员,而且Kotlin在Android开发中取代Java也必然是个缓慢的进程。所以学习Kotlin不提倡急于求成,但这并不意味着App开发者可以对Kotlin熟视无睹,任何一个新事物都有其发展壮大的过程,同时机会都是留给有准备的人。与其等Kotlin形成燎原之势才后知后觉地学习它,不如现在就未雨绸缪地掌握它,技术投资得越早,未来的开发收益就越大。
最后感谢王金柱编辑以及各位出版社同仁的热情指点和密切配合,感谢我的家人一直以来的支持,如果没有大家的鼎力协助,就没有本书的顺利完成。
欧阳燊
2018年1月
拿到这本《Kotlin从零到精通Android开发(移动开发丛书)》的时候,说实话,我的期待值是挺高的。市面上关于Android开发的入门书籍不少,但真正能做到“从零到精通”并且深入剖析Kotlin语言在Android开发中应用的,真心不多。翻开目录,看到它涵盖了Kotlin基础语法、Android开发环境搭建、UI布局、四大组件、网络请求、数据存储,甚至还提到了协程和Jetpack Compose,这基本囊括了我们日常开发中会遇到的绝大部分核心知识点。而且,它强调的是Kotlin,要知道,现在Android开发主流语言已经转向Kotlin,掌握它对于提升开发效率、编写更优雅的代码至关重要。书中很多篇章都花了大量篇幅去讲解Kotlin的特性,比如空安全、扩展函数、密封类等等,这些都是Java开发难以比拟的优势,作者在讲解这些概念的时候,并没有止步于理论,而是结合了实际的Android开发场景,用一个个生动的代码示例来阐释,这一点让我觉得非常实用。我尤其欣赏它在UI布局方面的讲解,从XML到ConstraintLayout,再到后面可能提及的Jetpack Compose,这种循序渐进的讲解方式,对于新手来说非常友好,能够帮助我们逐步建立起对Android UI开发的完整认知。总的来说,这本书的体系结构设计得非常合理,从基础到进阶,层层递进,能够帮助读者建立起扎实的Android开发基础,并且掌握Kotlin这门强大的语言。
评分说实话,作为一名在Android开发领域摸爬滚打多年的老兵,我经常会遇到一些老项目中难以维护的代码,或者是在处理一些复杂业务逻辑时感到力不从心。这次偶然翻阅到《Kotlin从零到精通Android开发(移动开发丛书)》,让我眼前一亮。这本书的讲解深度和广度都超出了我的预期。它不仅详细介绍了Kotlin语言本身的高级特性,如高阶函数、DSL、代理模式等,并且将这些特性巧妙地融入到Android开发实践中。比如,在讲解MVVM架构模式时,作者运用Kotlin的属性委托和委托模式,让ViewModel的实现变得异常简洁高效。另外,书中对Jetpack组件的讲解也十分到位,尤其是Room数据库和ViewModel。我以前在处理数据库操作时,总是需要写很多模板代码,而通过Room,结合Kotlin的DSL,代码量大大减少,可读性也显著提高。最让我印象深刻的是关于协程(Coroutines)的应用,在并发编程和异步处理方面,Kotlin协程的优势是显而易见的,作者通过大量实际案例,清晰地展示了如何利用协程来解决回调地狱、简化异步代码,极大地提升了开发效率和应用性能。这本书的内容,对于想要深入理解Android底层原理、提升代码质量、掌握现代Android开发技术的开发者来说,绝对是一本不可多得的宝藏。它不仅仅是一本入门教程,更是一本能够帮助开发者突破瓶颈、迈向精通的进阶指南。
评分作为一名追求技术卓越的开发者,我总是在不断寻找能够提升我开发效率和代码质量的工具和方法。《Kotlin从零到精通Android开发(移动开发丛书)》这本书,恰恰满足了我的这种需求。它不仅仅是一本关于Kotlin语言在Android开发中应用的教程,更是一本关于如何构建现代化、高性能Android应用的实践指南。书中关于Jetpack Compose的介绍,让我看到了Android UI开发的未来。作者用一种非常直观且易于理解的方式,讲解了Compose的基本概念,如Composable函数、State管理、布局系统等。通过书中提供的示例代码,我能够快速上手,体验到声明式UI带来的开发便利和性能优势。传统的View系统在处理复杂UI时,代码量大、容易出错,而Compose则能够极大地简化UI的开发流程,并且实现更流畅、更具交互性的用户体验。此外,本书对Kotlin Coroutines的深入剖析,也为我解决异步编程的难题提供了强大的武器。在实际项目中,我们经常会遇到网络请求、数据库读写等耗时操作,如何高效、安全地处理这些异步任务,一直是个挑战。Kotlin Coroutines的引入,使得异步编程变得如同同步编程一样简洁易懂,极大地降低了开发难度,减少了潜在的错误。这本书的内容,涵盖了从基础到前沿的Android开发技术,为我提供了一个系统性的学习框架,让我在技术这条路上能够走得更远、更稳健。
评分这本书的结构设计简直太棒了!从一个完全不懂Kotlin的人,到能够独立完成一个小型Android应用,这个过程中,《Kotlin从零到精通Android开发(移动开发丛书)》起到了至关重要的作用。它不是那种泛泛而谈的书,而是真正地从读者的角度出发,考虑到学习过程中可能遇到的每一个难点。比如说,在讲到Kotlin的语法特性时,它不会直接抛出一堆概念,而是会先解释这个特性解决了Java的什么痛点,然后通过代码对比,让你直观地感受到Kotlin的优势。这一点对于我这种从Java转Kotlin的开发者来说,简直是福音。另外,书中对于Android四大组件的讲解,也并非简单的API罗列,而是深入到每一个组件的生命周期、工作原理以及它们之间的配合关系。我尤其喜欢它在讲解Activity和Fragment之间通信时,提供的多种解决方案,并分析了各自的优缺点,这让我能够根据实际情况做出最佳选择。还有,书中关于网络请求的部分,不仅仅是介绍了Retrofit等框架的使用,更重要的是讲解了如何处理网络异常、如何进行数据解析,以及如何结合协程来优化网络请求的体验。这种细致入微的讲解,让我觉得这本书的作者真的是非常用心,并且对Android开发有着深刻的理解。这本书让我觉得,学习Android开发不再是一件令人望而却步的事情,而是变成了一段充满乐趣和收获的旅程。
评分最近我一直想系统地学习一下Android开发,但市面上很多书籍要么过于理论化,要么讲解不够深入,要么就是版本过时。直到我看到了《Kotlin从零到精通Android开发(移动开发丛书)》,我才觉得我找到了正确的学习方向。这本书从最基础的Kotlin语法开始,就像一位耐心的老师,一步步地引导我这个完全的零基础小白。它没有直接跳到复杂的Android概念,而是先让我掌握了Kotlin的核心知识,比如变量、函数、类、接口、继承、多态等等,并且在讲解过程中,穿插了很多小练习,让我能够边学边练,巩固所学。接着,它又非常自然地过渡到Android开发的各个方面,从Activity、Fragment的生命周期,到各种UI控件的使用,再到Intent的传递、BroadcastReceiver的广播接收,每一个概念都讲得非常透彻,并且配有大量的代码示例,让我能够清晰地看到代码是如何运行,又是如何实现效果的。我特别喜欢书中对四大组件的讲解,它不仅仅是罗列了这些组件的功能,而是深入剖析了它们的原理和使用场景,让我能够理解为什么需要它们,以及在什么情况下使用它们最合适。此外,书中还介绍了网络请求、数据库存储等进阶内容,虽然我目前还没深入学习,但能预见到它们在我未来的开发过程中会派上大用场。总而言之,这本书为我打开了Android开发的大门,让我不再感到迷茫,而是充满信心地向前迈进。
评分学习充电努力奋斗嗯嗯嗯嗯嗯嗯嗯
评分kotlin正式转正后就一直想买来看看,这个书看起来还可以,读读看
评分还不错 通俗易懂 刚开始开
评分可读性太差!全本都是与java对比。没有自己的特色!新手就不要看了,浪费时间!直接YouTube吧
评分好书
评分嗯,够看几天的了。希望呢能学到东西。
评分纸质不错,买到手迫不及待看了,觉得还行,入门可以买
评分不错
评分不错
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.teaonline.club All Rights Reserved. 图书大百科 版权所有