新書推薦:
《
推拿纲目
》
售價:NT$
1836.0
《
精致考古--山东大学实验室考古项目论文集(一)
》
售價:NT$
1112.0
《
从天下到世界——国际法与晚清中国的主权意识
》
售價:NT$
347.0
《
血色帝国:近代英国社会与美洲移民
》
售價:NT$
265.0
《
海外中国研究·王羲之:六朝贵族的世界(艺术系列)
》
售價:NT$
811.0
《
唐宋绘画史 全彩插图版
》
售價:NT$
449.0
《
“御容”与真相:近代中国视觉文化转型(1840-1920)
》
售價:NT$
505.0
《
鸣沙丛书·大风起兮:地方视野和政治变迁中的“五四”(1911~1927)
》
售價:NT$
454.0
|
編輯推薦: |
Android开发者的优秀入门读物,系统阐述Kotlin的开发方法,涵盖22章教学课件、100多个示例源代码、1个完整实战项目。六位知名专家联袂推荐!配套:程序代码 赠送教学课件
|
內容簡介: |
本书是一部介绍如何使用Kotlin语言开发Android应用的教程,旨在帮助读者全面掌握Android开发技术,学习独立开发Android应用项目。 本书主要介绍Android应用开发技术,分为22章,包括开篇综述、Kotlin语言基础、Android开发环境搭建、第一个Android应用程序、Android界面编程基础、Android界面布局、Android基础控件、Android高级控件、活动、碎片、意图、数据存储、使用内容提供者共享数据、Android多任务开发、服务、广播接收器、多媒体开发、网络通信技术、百度地图与定位服务、Android绘图与动画技术、手机电话功能开发、项目实战——“我的备忘录”云服务版。 本书采用案例驱动式展开讲解,为便于读者高效学习,快速掌握使用Kotlin语言开发Android应用的方法,本书提供完整的教学课件、源代码、视频教程以及在线答疑服务等配套资源。本书既可作为高等学校计算机软件技术课程的教材,也可作为社会培训机构的培训教材,还可作为广大Android初学者和Android应用开发程序员的参考书。
|
關於作者: |
关东升 一个在IT领域摸爬滚打20多年的老程序员、知名培训专家、畅销书作家。精通多种IT技术。参与设计和开发北京市公交一卡通大型项目,开发国家农产品追溯系统、金融系统微博等移动客户端项目,并在App Store发布多款游戏和应用软件。 长期为中国移动、中国联通、南方航空、中石油、工商银行、平安银行和天津港务局等企事业单位提供培训服务。先后出版了《iOS开发指南》《Cocos2d-x实战》《Java从小白到大牛》《Python从小白到大牛》等40多部图书。
|
目錄:
|
基 础 篇
第1章 开篇综述 3
1.1 Kotlin语言简介 3
1.1.1 Kotlin语言设计目标 3
1.1.2 Kotlin语言特点 3
1.2 Android移动操作系统概述 4
1.2.1 Android历史介绍 4
1.2.2 Android架构 5
1.2.3 Android平台介绍 6
1.3 本章总结 7
第2章 Kotlin语言基础 8
2.1 Kotlin语言学习环境的搭建 8
2.2 JDK 8
2.2.1 JDK的下载和安装 8
2.2.2 设置环境变量 9
2.3 IntelliJ IDEA开发工具 11
2.3.1 创建第一个IntelliJ IDEA项目 12
2.3.2 编写Kotlin源代码文件 14
2.3.3 运行程序 15
2.4 变量与常量 16
2.5 Kotlin数据类型 17
2.5.1 基本数据类型 17
2.5.2 可空类型 18
2.6 字符串 21
2.6.1 字符串表示形式 21
2.6.2 字符串模板 22
2.7 Kotlin中的函数 23
2.7.1 函数声明 23
2.7.2 使用命名参数调用函数 24
2.7.3 参数默认值 24
2.7.4 表达式函数体 25
2.8 Kotlin函数式编程 25
2.8.1 函数类型 26
2.8.2 Lambda表达式 26
2.9 Kotlin面向对象编程 28
2.9.1 类声明 28
2.9.2 构造函数 29
2.9.3 属性 30
2.10 数据类 32
2.11 嵌套类 32
2.11.1 声明嵌套类 32
2.11.2 内部类 34
2.11.3 对象表达式 35
2.12 抽象类与接口 37
2.12.1 抽象类声明及实现 37
2.12.2 接口声明及实现 39
2.13 数据容器 40
2.13.1 数组 41
2.13.2 set集合 44
2.13.3 List集合 48
2.13.4 Map集合 51
2.14 本章总结 55
第3章 Android开发环境的搭建 56
3.1 下载和安装Android Studio 56
3.2 安装Android SDK 57
3.2.1 配置Android SDK环境变量 58
3.2.2 变更Android SDK的安装路径 59
3.3 创建Android模拟器 60
3.4 本章总结 62
第4章 第一个Android应用程序 63
4.1 通过Android Studio工具创建项目 63
4.2 Android项目剖析 65
4.2.1 Android项目目录结构 65
4.2.2 活动文件MainActivity.kt 65
4.2.3 activity_main.xml布局文件 66
4.2.4 AndroidManifest.xml文件 66
4.3 运行项目 67
4.4 学会使用Android开发者社区帮助文档 68
4.4.1 在线帮助文档 68
4.4.2 Android SDK API文档 68
4.4.3 Android SDK开发指南 69
4.5 本章总结 69
界 面 篇
第5章 Android界面编程基础 73
5.1 Android界面组成 73
5.1.1 视图 73
5.1.2 视图组 73
5.2 Android应用界面构建 74
5.2.1 使用Android Studio界面设计工具 74
5.2.2 LabelButton实例:界面布局实现 74
5.3 事件处理模型 78
5.3.1 活动作为事件监听器 78
5.3.2 对象表达式作为事件监听器 80
5.3.3 Lambda表达式作为事件监听器 80
5.4 屏幕上的事件处理 81
5.4.1 触摸事件 81
5.4.2 实例:屏幕触摸事件 82
5.4.3 键盘事件 84
5.4.4 实例:改变图片的透明度 84
5.5 本章总结 86
第6章 Android界面布局 87
6.1 Android界面布局设计模式 87
6.1.1 表单布局模式 87
6.1.2 列表布局模式 88
6.1.3 网格布局模式 88
6.2 布局管理 89
6.2.1 帧布局 89
6.2.2 实例:帧布局 89
6.2.3 线性布局 91
6.2.4 线性布局实例:构建登录界面 91
6.2.5 相对布局 94
6.2.6 相对布局实例:构建查询功能界面 94
6.2.7 网格布局 96
6.2.8 网格布局实例:构建计算器界面 96
6.2.9 布局文件嵌套实例:构建登录界面 98
6.3 Android约束布局 100
实例:使用约束布局重构LabelButton界面 100
6.4 本章总结 103
第7章 Android基础控件 104
7.1 按钮 104
7.1.1 Button 104
7.1.2 ImageButton 104
7.1.3 ToggleButton 105
7.1.4 实例:ButtonSample 106
7.2 标签 107
7.3 文本框 108
7.3.1 文本框相关属性 108
7.3.2 实例:用户登录 109
7.3.3 实例:文本框输入控制 110
7.4 单选按钮 113
7.4.1 RadioButton 113
7.4.2 RadioGroup 114
7.4.3 实例:使用单选按钮 114
7.5 复选框 116
7.5.1 CheckBox 116
7.5.2 实例:使用复选框 117
7.6 进度栏 119
7.6.1 进度栏相关属性和函数 119
7.6.2 实例:水平条状进度栏 120
7.6.3 实例:圆形进度栏 124
7.7 拖动栏 125
7.7.1 SeekBar 126
7.7.2 实例:使用拖动栏 126
7.8 本章总结 128
第8章 Android高级控件 129
8.1 列表类型控件 129
8.1.1 适配器 129
8.1.2 Spinner 129
8.1.3 实例:使用Spinner进行选择 131
8.1.4 ListView 132
8.1.5 实例:使用ListView实现显示文本 133
8.1.6 实例:使用ListView实现显示文本 图片 134
8.2 Toast 138
实例:文本类型Toast 138
8.3 对话框 139
8.3.1 实例:显示文本信息对话框 139
8.3.2 实例:简单列表项对话框 141
8.3.3 实例:单选列表对话框 142
8.3.4 实例:复选列表对话框 144
8.3.5 实例:复杂布局对话框 146
8.4 操作栏和菜单 148
8.4.1 操作栏 148
8.4.2 菜单编程 149
8.4.3 实例:文本菜单 149
8.4.4 实例:操作表按钮 151
8.5 本章总结 152
第9章 活动 153
9.1 活动概述 153
9.1.1 创建活动 153
9.1.2 活动的生命周期 155
9.1.3 实例:Back和Home按钮的区别 156
9.2 多个活动之间的跳转 161
9.2.1 用户登录 161
9.2.2 启动下一个活动 162
9.2.3 参数传递 164
9.2.4 返回上一个活动 165
9.3 活动任务与返回栈 166
9.4 本章总结 167
第10章 碎片 168
10.1 界面重用问题 168
10.2 碎片技术 169
10.3 碎片的生命周期 169
10.4 使用碎片开发 171
10.4.1 碎片相关类 171
10.4.2 创建碎片 172
10.4.3 静态添加碎片到活动 173
10.4.4 动态添加碎片到活动 174
10.4.5 管理碎片事务 175
10.4.6 碎片与活动之间的通信 175
10.5 实例:比赛项目 176
10.5.1 创建两个碎片 177
10.5.2 创建MainActivity活动 181
10.5.3 点击Master碎片列表项 183
10.5.4 数据访问对象 186
10.6 本章总结 187
进 阶 篇
第11章 意图 191
11.1 意图概述 191
11.1.1 意图与目标组件间的通信 191
11.1.2 意图对象包含的内容 191
11.2 意图类型 192
11.2.1 显式意图 192
11.2.2 隐式意图 193
11.3 匹配组件 193
11.3.1 动作 194
11.3.2 数据 195
11.3.3 类别 196
11.4 实例:Android系统内置意图 197
11.5 本章总结 199
第12章 数据存储 200
12.1 Android数据存储概述 200
12.2 本地文件 200
12.2.1 沙箱目录设计 200
12.2.2 访问应用程序files目录 201
12.2.3 实例:访问本地CSV文件 201
12.3 SQLite数据库 205
12.3.1 SQLite数据类型 205
12.3.2 Android平台下管理SQLite数据库 206
12.4 SQLite数据存储实例:我的备忘录 207
12.4.1 我的备忘录App概述 207
12.4.2 数据库设计 208
12.4.3 SQLiteOpenHelper帮助类 208
12.4.4 数据查询 209
12.4.5 数据插入 213
12.4.6 数据删除 214
12.5 使用SharedPreferences 217
实例:读写SharedPreferences 217
12.6 本章总结 219
第13章 使用内容提供者共享数据 220
13.1 内容提供者概述 220
13.2 Content URI 221
13.2.1 Content URI概述 221
13.2.2 内置Content URI 222
13.3 实例:访问联系人信息 223
13.3.1 查询联系人 223
13.3.2 运行时权限 227
13.4 实例:查询联系人Email 229
13.5 实例:查询联系人电话 231
13.6 实例:访问通话记录 232
13.7 本章总结 237
第14章 Android多任务开发 238
14.1 Android中使用Kotlin协程 238
14.1.1 在项目中添加协程库 238
14.1.2 第一个Android协程程序 240
14.2 案例:协程实现计时器 241
14.2.1 主线程更新UI问题 242
14.2.2 协程解决更新UI问题 242
14.3 本章总结 243
第15章 服务 244
15.1 服务概述 244
15.1.1 创建服务 244
15.1.2 服务的分类 245
15.2 启动类型服务 246
15.2.1 启动类型服务生命周期 246
15.2.2 实例:启动类型服务 247
15.3 绑定类型服务 248
15.3.1 绑定类型服务生命周期 248
15.3.2 实例:绑定类型服务 249
15.4 本章总结 252
第16章 广播接收器 253
16.1 广播接收器概述 253
16.2 编写与注册广播接收器 253
16.2.1 编写广播接收器 253
16.2.2 注册广播接收器 254
16.2.3 实例:发送广播 255
16.3 系统广播 257
16.3.1 系统广播动作 257
16.3.2 实例:Downloader 257
16.4 通知 262
发送通知实例:NotificationSample 262
16.5 本章总结 265
第17章 多媒体开发 266
17.1 多媒体文件概述 266
17.1.1 音频文件 266
17.1.2 视频文件 267
17.2 Android音频/视频播放API 267
17.2.1 核心API——MediaPlayer类 268
17.2.2 播放状态 268
17.3 音频播放实例:MyAudioPlayer 270
17.3.1 资源音频文件播放 270
17.3.2 本地音频文件播放 274
17.4 Android音频/视频录制API 277
17.5 音频录制实例:MyAudioRecorder 278
17.6 视频播放 281
17.6.1 VideoView控件 281
17.6.2 实例:使用VideoView控件播放视频 281
17.7 本章总结 283
第18章 网络通信技术 284
18.1 网络通信技术概述 284
18.1.1 Socket通信 284
18.1.2 HTTP 284
18.1.3 HTTPS 285
18.1.4 Web服务 285
18.1.5 搭建自己的Web服务器 285
18.2 发送网络请求 287
18.2.1 使用java.net.URL 288
18.2.2 重构实例:“我的备忘录”App 291
18.2.3 使用第三方请求库OkHttp4 293
18.2.4 OkHttp4发送Post请求实例:“我的备忘录”App 293
18.2.5 实例:Downloader 295
18.3 本章总结 296
第19章 百度地图与定位服务 297
19.1 使用百度地图 297
19.1.1 获得Android签名证书中的SHA1值 297
19.1.2 搭建和配置环境 298
19.1.3 实例:显示地图 301
19.1.4 实例:设置地图状态 304
19.1.5 实例:地图覆盖物 306
19.2 定位服务 308
19.2.1 定位服务授权 308
19.2.2 位置信息提供者 309
19.2.3 管理定位服务 310
19.2.4 实例:MyLocation 311
19.2.5 测试定位服务 314
19.3 定位服务与地图结合实例:WhereAMI 317
19.4 本章总结 321
第20章 Android绘图与动画技术 322
20.1 Android 2D绘图技术 322
20.1.1 画布和画笔 322
20.1.2 实例:绘制点和线 323
20.1.3 实例:绘制矩形 324
20.1.4 实例:绘制弧线 326
20.1.5 实例:绘制位图 327
20.2 位图变换 328
20.2.1 矩阵 328
20.2.2 实例:位图变换 328
20.3 调用Android照相机获取图片 329
20.3.1 调用Android照相机 329
20.3.2 调用Android照相机实例:CameraTake 330
20.4 Android动画技术 334
20.4.1 渐变动画 334
20.4.2 实例:渐变动画 335
20.4.3 动画插值器 339
20.4.4 使用动画集 340
20.4.5 帧动画 340
20.5 本章总结 342
第21章 手机电话功能开发 343
21.1 拨打电话功能 343
21.1.1 拨打电话功能概述 343
21.1.2 实例:拨打电话 344
21.2 访问电话呼入状态功能 346
21.2.1 呼入电话状态 346
21.2.2 实例:电话黑名单(Blacklist) 347
21.3 本章总结 351
实 战 篇
第22章 项目实战——“我的备忘录”云服务版 355
22.1 应用分析与设计 355
22.2 编码实现过程 356
22.2.1 用Android Studio创建项目 356
22.2.2 查询备忘录功能 357
22.2.3 增加备忘录功能 362
22.2.4 删除备忘录功能 366
22.3 Android设备测试 368
22.4 还有“最后一公里” 369
22.4.1 添加图标 369
22.4.2 生成数字签名文件 369
22.4.3 发布打包 370
|
內容試閱:
|
2017年5月19日谷歌I/O大会上,谷歌公司宣布Kotlin语言作为Android应用开发一级语言。由于工作的需要,我在2015年就接触到Kotlin语言,被它的简洁深深吸引。我将以前用Java编写的QQ聊天工具用Kotlin语言重新编写,代码减少了30%。设计者设计Kotlin语言的目的是取代Java。诞生了二十多年的Java虽然还是排名第一的语言,但Java语言有很多诟病。经过几年的发展,Kotlin语言越来越成熟。更多的Android开发人员转而使用Kotlin语言开发Android应用。
另外,基于Android系统的移动应用开发也是立志从事移动开发或学习移动开发的人士必须掌握的技能。基于这些需求和原因,我们精心编写了本书。
立体化图书
本书继续采用立体化图书概念编写,所谓“立体化图书”就是包含图书及配套视频、课件、源代码、服务等内容。
本书读者对象
本书是一本基于Kotlin语言版本的Android应用开发图书。无论您是计算机相关专业的大学生,还是从事软件开发的工程师,都可以从本书入门,成为使用Kotlin语言开发Android应用的程序员。
使用书中源代码
本书包括100多个完整实例和1个完整项目的源代码,读者可以到出版社网站本书页面下载。
下载本书源代码并解压,会看到如图1所示的示例源代码文件夹。打开其中文件夹可见对应章节的示例源代码,如图2所示是第8章中示例源代码文件夹。
图1 示例源代码文件夹
图2 第8章示例源代码文件夹
配套源代码大部分是通过Android Studio工具创建的项目,可以通过Android Studio工具打开这些源代码。如果Android Studio工具处于如图3所示的欢迎界面,则选择Open an Existing Project选项,打开如图4所示Open File or Project(打开文件或项目)对话框,找到Android Studio项目文件夹,即图标的文件夹。如果读者已经进入IntelliJ IDEA工具,可以通过菜单File→Open命令打开如图4所示的Open File or Project对话框。另外,在打开过程中有可能出现如图5所示的Sync Android SDKs(SDK变更提示)对话框。这是因为笔者设置的SDK路径与读者的不同,因此会有该提示对话框,不必担心,继续打开项目即可。
图3 欢迎界面
图4 Open File or Project对话框 图5 Sync Android SDKs对话框
致谢
在此感谢清华大学出版社的盛东亮编辑给我们提供了宝贵的意见。感谢智捷课堂团队的赵志荣、赵大羽、关锦华、闫婷娇、刘佳笑和赵浩丞参与部分内容的写作。感谢赵浩丞手绘了书中全部草图,并从专业的角度修改书中图片,力求奉献给广大读者更加真实完美的图片。感谢我的家人容忍我的忙碌,以及对我的关心和照顾,使我能抽出这么多时间,投入全部精力专心地编写此书。
由于Kotlin语言不断更新迭代,加之作者水平有限,书中难免存在疏漏之处,恳请广大读者提出宝贵意见,以便再版改进。
关东升
2022年7月
|
|