网站颜色:

【移动开发三客 】第一行代码 Android 第3版+30天App开发从0到1 APICloud移动开发实战+App架构师实践指南 移动软件开发编程书

  • 产品名称:移动开发三客第一行代码...
  • 书名:移动开发三客第一行代码Android第3版+30天App开发从0到1
  • 作者:SkySeraph潘旭玲等
  • 定价:247.00元
  • 书名:移动开发三客第一行代码Android第3版+30天App开发从0到1
  • 是否是套装:是
  • 出版社名称:人民邮电出版社


内容介绍

95 App架构师实践指南 79.00 9787115482730 30天App开发从0到1 APICloud移动开发实战 69.00 9787115524836 *一行代码 Android 第3版 99.00 《App架构师实践指南》 内 容 提 要 本书全面讲解了成为移动应用架构师必 备的知识,以及需要学习的技术,主要内容包括App架构师成长路线、App基础语法系列、App开发工具系列、App SDK使用系列、开源库的选择和使用、App常用模块设计、App架构和重构、App质量和稳定性系列、App性能优化系列、App安全逆向系列、App热门技术、项目管理、产品思维、设计理念、推广运营、打造高效团队、架构师思维等综合技能。 本书适合企业一线App开发工程师、程序员、产品经理等从业者阅读,也适合 作为大专院校相关专业师生的学习用书和培训学校的教材。 《30天App开发从0到1 APICloud移动开发实战》 本书围绕APICloud平台,全面、系统、细致地讲述了App开发的相关内容,涉及平台工作原理、内部实现机制和应用开发技巧。本书涵盖了APICloud应用开发的知识,包括基础知识、关键技术、开发技巧和行业方案,并从实践角度出发,通过大量的实例代码、详细的操作步骤和丰富的开发截图,帮助开发人员迅速掌握APICloud应用开发,有能力制作出好的App。本书是APICloud开发人员的入门指南,并配有免费的讲解视频,适合各种层次的APICloud学习者和开发人员阅读。 《*一行代码 Android 第3版》 《*一行代码 Android 第3版》被Android*发者誉为“Android学习*一书”。全书系统全面、循序渐进地介绍了Android软件开发的*备知识、经验和技巧。 《*一行代码 Android 第3版》基于Android 10.0对*2版进行了全面更新,不仅将所有知识点都在Android 10.0系统上进行了重新适配,同时加入Kotlin语言的全面讲解,使用Kotlin对全书代码进行重写,而且还介绍了*新系统特性以及Jetpack架构组件的使用,使本书更加实用。 《*一行代码 Android 第3版》内容通俗易懂,由浅入深,既是Android初学者的入门*备,也是Android*发者的进阶*选。
目录

《App架构师实践指南》
目录

* 一篇 基 础 篇
* 1章 App架构师成长路线 2
1.1 架构师定义 2
1.2 程序员发展路线 3
1.3 App架构师技能矩阵 5
1.3.1 App架构师画布 5
1.3.2 技能图谱 5
1.4 本章小结 6
1.5 推荐资料 7
* 2章 App基础语法系列 8
2.1 编程语言 8
2.1.1 那些年,那些语言 9
2.1.2 聊聊Swift 11
2.1.3 Swift 3和Java 8新特性 13
2.2 面向对象思想 14
2.2.1 编程范式 14
2.2.2 封装、继承与多态 15
2.2.3 内部类的使用和思考 17
2.3 线程与进程 19
2.4 反射、注解与泛型 21
2.4.1 反射与注解 21
2.4.2 泛型 23
2.5 本章小结 24
2.6 推荐资料 25
第3章 App开发工具系列 26
3.1 IDE 26
3.1.1 Android Studio 27
3.1.2 Xcode 29
3.2 编译调试 29
3.3 版本管理 31
3.3.1 代码管理 31
3.3.2 Git分支管理 32
3.4 产品设计 34
3.5 程序员珍藏 35
3.5.1 抓包工具 36
3.5.2 ADB 36
3.5.3 Chrome开发插件 37
3.6 本章小结 38
3.7 推荐资料 38
第4章 App SDK使用系列 39
4.1 从Lifecycle说起 39
4.2 大话UI 41
4.2.1 关于布局 41
4.2.2 常用控件 41
4.2.3 自定义View 42
4.3 存储和网络 43
4.4 本章小结 43
4.5 推荐资料 44
第5章 开源库的选择和使用 45
5.1 关于开源 46
5.2 开源库的选择 46
5.2.1 开源项目选择 46
5.2.2 关于License 47
5.3 开源库的使用 48
5.4 本章小结 49
5.5 推荐资料 49
* 二篇 核 心 篇
第6章 App常用模块设计 52
6.1 基础组件库 52
6.1.1 构建你的基础组件库 53
6.1.2 不得不说的图片库 54
6.1.3 浅谈网络库和加密 61
6.2 常用业务模块 65
6.2.1 启动引导模块 65
6.2.2 注册登录模块 66
6.2.3 运营统计模块 67
6.3 编译打包 68
6.3.1 打包方式和流程 68
6.3.2 Gradle实用技巧 71
6.4 版本适配 75
6.4.1 iOS App适配 76
6.4.2 Android App适配 77
6.5 本章小结 78
第7章 App架构和重构 79
7.1 从组件和模块说起 80
7.2 组件化、模块化和插件化 80
7.2.1 三个概念 80
7.2.2 App插件化 82
7.2.3 App组件化 83
7.3 UML基本功 86
7.3.1 UML工具 86
7.3.2 常见UML图 87
7.3.3 UML实例 88
7.4 大话设计模式 88
7.4.1 六大原则 89
7.4.2 设计模式总览 89
7.4.3 设计模式实践 90
7.5 接口设计 91
7.5.1 API,What and Why 92
7.5.2 How API 92
7.6 常见架构模式 95
7.6.1 MVX模式 95
7.6.2 常见软件架构 97
7.6.3 从组件化角度看App架构 100
7.7 重构未眠夜 102
7.7.1 重构概览 102
7.7.2 架构重构 103
7.7.3 代码重构 104
7.8 架构设计够了么 106
7.9 本章小结 106
7.10 推荐资料 106
第8章 App质量和稳定性系列 108
8.1 质量标准和稳定性指标 109
8.1.1 应用的核心质量 109
8.1.2 稳定性衡量指标 109
8.2 质量和稳定性手段 112
8.2.1 质量监控 112
8.2.2 问题处理原则 115
8.2.3 App持续集成 115
8.2.4 代码质量监测 125
8.3 笑谈Crash 138
8.3.1 Crash基础和原理 138
8.3.2 Crash收集和统计 142
8.3.3 Crash分析 150
8.4 测试专场 160
8.4.1 测试综述 161
8.4.2 兼容性测试 165
8.4.3 性能和安全性测试 174
8.4.4 自动化测试 174
8.4.5 A/B Testing 180
8.4.6 代码覆盖率 182
8.4.7 线上演练 183
8.5 本章小结 183
8.6 推荐资料 183
第9章 App性能优化系列 185
9.1 性能分析 186
9.1.1 性能维度 186
9.1.2 性能优化 186
9.1.3 性能测试平台 187
9.2 硬件性能优化 187
9.2.1 电量信息获取 188
9.2.2 耗电分析 190
9.2.3 电量优化 191
9.3 UI和CPU性能优化 194
9.3.1 基础原理 194
9.3.2 流畅度度量 196
9.3.3 卡顿分析和优化 201
9.4 内存性能优化 206
9.4.1 内存机制和原理 206
9.4.2 内存分析工具 210
9.4.3 泄露和溢出 210
9.4.4 内存性能优化 212
9.5 网络性能优化 215
9.5.1 网络性能概述 216
9.5.2 网络性能测试和流量度量 218
9.5.3 网络性能优化 220
9.6 App包Size优化 223
9.6.1 App包Size优化概述 223
9.6.2 App包Size分析 224
9.6.3 App包Size优化 227
9.7 App启动速度优化 230
9.7.1 App启动方式和流程 230
9.7.2 App启动时间度量 232
9.7.3 App启动速度优化 234
9.8 App代码优化 235
9.9 本章小结 240
9.10 推荐资料 240
* 10章 App安全逆向系列 242
10.1 逆向概述 242
10.1.1 App包组成 243
10.1.2 逆向工具 245
10.1.3 Root和越狱 247
10.1.4 二次打包 247
10.2 逆向分析 248
10.2.1 静态分析 248
10.2.2 动态分析 249
10.2.3 Hook和注入 249
10.3 安全测试 251
10.4 安全建议 252
10.4.1 混淆和签名 253
10.4.2 加固加壳 262
10.4.3 安全编码和隐私 263
10.5 本章小结 265
10.6 推荐资料 265
* 11章 App热门技术 267
11.1 进程保活 267
11.1.1 基础知识 268
11.1.2 保活方法 271
11.2 MultiDex 271
11.3 RxJava 273
11.3.1 RxJava基础 273
11.3.2 RxJava应用实例 276
11.4 Hybrid 281
11.5 HotFix 282
11.6 AOP 283
11.6.1 OOP与AOP 283
11.6.2 AOP应用实例 283
11.7 本章小结 286
11.8 推荐资料 286
第三篇 产 品 篇
* 12章 App是如何练成的 290
12.1 App练成 290
12.2 开发流程 291
12.3 也谈版本号 292
12.4 本章小结 293
* 13章 项、产、设、运“四天* ” 294
13.1 项目管理 294
13.1.1 敏捷Scrum 295
13.1.2 班车模式 298
13.2 产品思想 298
13.2.1 产品经理 299
13.2.2 产品思维 299
13.3 设计理念 302
13.3.1 UI与UX 302
13.3.2 设计理念 304
13.4 推广运营 306
13.4.1 运营指标 306
13.4.2 大话推广 309
13.4.3 运营之道 310
13.5 本章小结 310
13.6 推荐资料 310
* 14章 我的高效团队 312
14.1 从代码规范开始 312
14.2 不得不说的Code Review 313
14.3 晨会,高效一 天的开始 315
14.4 沟通和团建 315
14.5 别忘了技术分享 316
14.6 面试,面试,再面试 317
14.7 自管理,扁平化 318
14.8 * 后,聊聊加班 319
14.9 本章小结 319
14.10 推荐资料 319
第四篇 拓 展 篇
* 15章 架构师那点事 322
15.1 大话全栈工程师 322
15.2 架构师思维 323
15.3 学而时习之 324
15.4 软技能 325
15.5 本章小结 326
15.6 推荐资料 326


《30天App开发从0到1 APICloud移动开发实战》
目录
第 一部分 基础教程:如何从零起步开发*款App
第 1章 APICloud App开发流程 3
1.1 APICloud平台介绍 4
1.1.1 查看APICloud平台能力 4
1.1.2 开发模式、技术语言和平台定位 6
1.1.3 技术、产品、生态、案例和商业模式 10
1.1.4 *发者服务体系 10
1.1.5 新手入门APICloud应用开发 14
1.2 体验完整项目的开发流程 15
1.2.1 注册APICloud账号 15
1.2.2 创建一个App项目 15
1.2.3 编辑项目 18
1.2.4 调试项目 18
1.2.5 编译项目 21
1.3 小结 22
第 2章 搭建App整体框架,完成App静态页面开发 23
2.1 启动 25
2.1.1 APICloud App执行流程 25
2.1.2 Widget和Window 26
2.1.3 App config.xml配置文件使用 26
2.1.4 APICloud引擎的两个重要事件 27
2.2 APICloud应用设计思想 27
2.3 界面和导航 28
2.3.1 APICloud应用的UI组成结构 28
2.3.2 APICloud界面布局5大组件 29
2.3.3 APICloud混合渲染模式 30
2.3.4 查看APICloud引擎api对象功能 32
2.3.5 屏幕适配 33
2.3.6 前端框架 33
2.3.7 状态栏处理 34
2.3.8 iPhone X的状态栏处理 35
2.3.9 优化点击事件和tapmode 37
2.3.10 静态页面中建议遵循的布局方法 37
2.4 搭建App整体框架,完成App静态页面开发 38
2.4.1 创建首页的标题栏和Tab标签组 38
2.4.2 制作Tab页面并添加点击事件和动画效果 43
2.4.3 制作悬浮购物车信息栏 48
2.4.4 跳转到登录页面 51
2.4.5 城市选择菜单和事件通信 52
2.5 小结 55
第3章 联调前后端数据接口,实现App数据从服务端动态获取 56
3.1 APICloud提供的数据通信能力和相关API 57
3.1.1 APICloud支持的通信协议 57
3.1.2 用于HTTP通信的主要API 57
3.2 APICloud数据云 58
3.2.1 APICloud数据云的用途 58
3.2.2 APICloud数据云的特点 58
3.3 联调前后端数据接口,实现App数据从服务端动态获取 59
3.3.1 实现用户注册功能 59
3.3.2 实现用户登录功能 60
3.3.3 获取商品列表数据 62
3.3.4 显示商品列表 63
3.4 小结 64
第4章 加载更新服务端数据,实现本地的数据存储 65
4.1 使用doT模板引擎 66
4.2 本地存储和图片缓存 67
4.2.1 uzStorage 67
4.2.2 偏好设置 67
4.2.3 文件 68
4.2.4 database 69
4.2.5 存储容量 69
4.2.6 沙箱机制 70
4.2.7 资源访问协议 70
4.2.8 图片缓存 71
4.3 下拉刷新、上拉加载的实现 71
4.3.1 下拉刷新 72
4.3.2 上拉加载 72
4.4 事件机制 72
4.4.1 统一事件管理 72
4.4.2 事件管理API 73
4.4.3 平台事件类型 74
4.5 常用对话框窗口 75
4.6 在指定的窗口中执行脚本 76
4.7 加载更新服务端数据,实现本地的数据存储 77
4.7.1 使用doT模板引擎显示商品列表 77
4.7.2 实现图片缓存 78
4.7.3 实现下拉刷新 79
4.7.4 实现上拉加载更多 81
4.7.5 实现保存登录信息 82
4.7.6 实现清除缓存 84
4.8 小结 85
第5章 使用扩展模块API,完成App所需功能实现 86
5.1 APICloud扩展模块 87
5.1.1 APICloud端引擎架构 87
5.1.2 APICloud模块调用过程 88
5.2 自定义模块 88
5.3 使用UIScrollPicture 89
5.4 使用UIInput 91
5.5 使用UIActionSelector 92
5.6 多媒体相关模块使用 96
5.7 使用扩展模块API,实现App所需功能 96
5.7.1 实现商品详情页轮播图 96
5.7.2 使用UIInput实现原生输入框 100
5.7.3 实现三级联动的城市选择器 101
5.7.4 实现头像上传 103
5.8 小结 105
第6章 使用第三方开放服务模块,完善App功能和业务逻辑 106
6.1 集成第三方服务 107
6.2 目前APICloud已经集成的第三方服务模块 107
6.3 自定义AppLoader 108
6.3.1 自定义AppLoader与官方AppLoader的区别 108
6.3.2 为什么要使用自定义AppLoader 109
6.3.3 编译生成自定义AppLoader 109
6.4 第三方服务模块使用流程 110
6.5 百度地图模块的接入和使用 110
6.5.1 申请应用ID和Key 110
6.5.2 配置ID和Key 112
6.5.3 百度地图的常用API 112
6.6 分享与登录的接入和使用 114
6.6.1 申请ID和Key 114
6.6.2 配置ID和Key 114
6.6.3 分享模块的常用API 114
6.7 个推推送的接入和使用 117
6.7.1 申请ID和Key 117
6.7.2 配置ID和Key 117
6.7.3 个推模块的常用方法 117
6.8 支付宝支付模块的接入和使用 118
6.8.1 申请应用ID和Key 118
6.8.2 配置应用ID和Key 118
6.8.3 支付宝模块的常用API 119
6.9 使用第三方开放服务模块,完善App功能和业务逻辑 119
6.9.1 获取当前城市 119
6.9.2 根据输入内容检索地址列表 121
6.9.3 使用个推进行消息推送 123
6.10 小结 124
第7章 使用APICloud应用管理服务,实现App发布和运营 125
7.1 编译生成App安装包 126
7.1.1 云编译 126
7.1.2 代码全包加密 127
7.1.3 扩展API调用安全配置 127
7.2 版本管理 128
7.2.1 在APICloud控制台管理版本 128
7.2.2 Config文件相关配置 129
7.2.3 mam模块 129
7.3 云修复 130
7.3.1 Config文件相关配置和mam模块 130
7.3.2 制作并发布云修复包 130
7.3.3 相关API使用 131
7.4 闪屏广告 131
7.4.1 在APICloud控制台使用闪屏广告 132
7.4.2 相关API使用 132
7.5 优化策略 133
7.5.1 了解HTML5特性 133
7.5.2 窗口结构 133
7.5.3 页面加载速度 134
7.5.4 不用重型框架 134
7.5.5 屏幕适配 134
7.5.6 数据加载 134
7.5.7 图片处理 135
7.5.8 交互响应速度 135
7.5.9 尊重系统特性 135
7.6 编码规范 135
7.7 Widget管理 136
7.7.1 多Widget架构 136
7.7.2 主Widget 137
7.7.3 子Widget 137
7.7.4 Widget管理相关API使用 137
7.8 SuperWebView 138
7.8.1 SuperWebView介绍 138
7.8.2 SuperWebView特点 138
7.9 使用APICloud应用管理服务,实现App的发布和运营管理 138
7.9.1 编译App 139
7.9.2 版本发布 139
7.9.3 使用云修复 139
7.9.4 闪屏广告 140
7.10 小结 140

*二部分 实战技巧:如何开发*款优质的App
第8章 如何与众不同 143
8.1 自定义样式的日期选择器 144
8.1.1 使用模块UICustomPicker 144
8.1.2 开发流程及要点概述 145
8.2 自动义样式的三级联动城市选择器 149
8.2.1 使用模块:UILinkedPicker 150
8.2.2 开发流程及要点概述 150
8.3 实现固定不动的下拉筛选菜单 152
8.4 滑动页面动态改变导航条颜色 155
8.4.1 实现思路 155
8.4.2 知识点说明 155
8.4.3 核心部分代码 155
8.5 实现高斯模糊的背景图片 156
8.6 精致0.5 px细线的实现 158
8.7 小结 159
第9章 挖掘API潜力 160
9.1 深入挖掘Frame的各种应用场景 161
9.1.1 模拟页面按钮 161
9.1.2 模拟窗口组件 161
9.1.3 模拟侧滑窗口 163
9.2 使用UIScrollPicture模块开发引导页 164
9.2.1 概述 165
9.2.2 实现思路 165
9.3 使用photoBrowser模块实现自定义样式的图片浏览功能 167
9.3.1 概述 167
9.3.2 自定义样式图片浏览器功能实现步骤 168
9.4 使用UIInput模块实现自定义搜索界面 170
9.4.1 概述 170
9.4.2 自定义搜索界面实现步骤 170
9.5 使用UIChatBox模块实现聊天界面 172
9.5.1 概述 172
9.5.2 UIChatBox 模块实现聊天界面实现步骤 173
9.6 使用api.ajax进行网络请求 176
9.7 小结 179
第 10章 超级实用技巧 180
10.1 如何让页面动态适配有虚拟按键栏的Android 181
10.2 获取验证码功能的实现 182
10.3 打开一个外部链接作为新的页面,并设置样式以及事件监听 184
10.4 实现更换皮肤功能 186
10.5 实现多语言切换功能 187
10.6 调用任意App 189
10.6.1 URL Scheme应用场景 189
10.6.2 URL Scheme在APICloud中的应用 189
10.7 数据表格的快速开发 191
10.7.1 使用APICloud模块实现数据表格的开发 192
10.7.2 使用第三方JavaScript框架实现数据表格的开发 193
10.8 apiready与window.onload的平衡使用 194
10.8.1 apiready与window.onload区别 194
10.8.2 apiready与window.onload的使用时机 194
10.8.3 应用实例 195
10.9 地图模块的实用扩展:在地图上添加自定义按钮 196
10.10 地图搜索的*级应用:如何获取城市地铁线路列表 198
10.10.1 需求分解 198
10.10.2 功能实现 198
10.11 极光推送的快速实现 200
10.11.1 获取App包名 200
10.11.2 获取极光推送AppKey 201
10.11.3 配置极光推送模块 202
10.11.4 在代码中监听推送消息 202
10.11.5 开始推送 203
10.12 小结 204
第 11章 性能优化探索 205
11.1 用imageCache缓存图片 206
11.2 数据不要从DOM上获取 208
11.3 流畅的用户登录体验 210
11.3.1 程序员的思维习惯 210
11.3.2 正确的做法 211
11.3.3 关键代码实现 211
11.4 合理使用同步/异步接口 212
11.4.1 JavaScript的同步/异步机制 212
11.4.2 异步的优势 213
11.4.3 应用实例 214
11.5 小结 215
第 12章 调试技巧 216
12.1 调试技巧:使用Charles查看网络请求 217
12.1.1 查看HTTP请求 217
12.1.2 查看HTTPS请求 219
12.2 调试技巧:使用Charles模拟网络请求 222
12.2.1 请求示例代码 222
12.2.2 构建模拟数据 223
12.2.3 使用本地文件作为接口返回值 224
12.3 调试技巧:使用Safari断点调试iOS应用 226
12.3.1 从APICloud官网编译安装自定义AppLoader 226
12.3.2 显示桌面Safari浏览器的“开发”菜单 226
12.3.3 开启iOS设备的Web检查器功能 226
12.3.4 把待调试代码同步到AppLoader 227
12.3.5 Safari断点调试iOS应用 228
12.4 调试技巧:使用Chrome断点调试Android应用 229
12.4.1 从APICloud官网安装AppLoader 230
12.4.2 在Android上开启USB调试 231
12.4.3 把待调试代码同步到AppLoader 231
12.4.4 在Chrome中断点调试 232
12.5 小结 235
第三部分 行业应用:如何快速开发主流行业App
第 13章 如何快速开发*款IoT App 239
13.1 IoT App的分类和功能 240
13.1.1 IoT App的分类 240
13.1.2 IoT App的主要功能 240
13.2 IoT App的技术架构 241
13.2.1 两方通信架构 241
13.2.2 三方通信架构 241
13.2.3 四方通信架构 242
13.3 IoT App中高频使用的API 243
13.3.1 界面组件类模块 243
13.3.2 功能扩展类模块 244
13.3.3 开放服务类模块 245
13.4 如何使用APICloud开发*款IoT App 246
13.5 小结 246
第 14章 如何快速开发*款教育App 247
14.1 教育App的分类和功能 248
14.1.1 教育App的分类 248
14.1.2 教育 App的主要功能 248
14.2 教育App的产品架构 249
14.2.1 产品功能架构 249
14.2.2 学习计划架构 250
14.3 教育App中高频使用的API 250
14.3.1 UI组件类模块 250
14.3.2 功能扩展类模块 251
14.3.3 开放服务类模块 252
14.4 如何使用APICloud开发*款教育App 253
14.5 小结 253
第 15章 如何快速开发*款直播App 254
15.1 直播App的分类和功能 255
15.1.1 直播App的分类 255
15.1.2 直播App的主要功能 255
15.2 直播App技术架构 256
15.3 直播App中高频使用的API 256
15.3.1 UI组件类模块 257
15.3.2 功能扩展类模块 258
15.3.3 开放服务类模块 258
15.4 如何使用APICloud开发*款直播App 259
15.5 小结 260
第 16章 如何快速开发*款电商App 261
16.1 电商App的分类和功能 262
16.1.1 电商App的分类 262
16.1.2 电商 App的主要功能 263
16.2 电商App的产品结构 263
16.2.1 前端产品结构 263
16.2.2 后台产品结构 264
16.3 电商App中高频使用的API 265
16.3.1 UI组件类模块 265
16.3.2 功能扩展类模块 266
16.3.3 开放服务类模块 267
16.4 如何使用APICloud开发*款电商App 267
16.5 小结 268
附录A APICloud App客户端开发规范(Version 1.0) 269
附录B 开发工具APICloud Studio 2使用详解 282

《*一行代码 Android 第3版》
目  录

第 1章 开始启程——你的第 一行
Android代码 1
1.1 了解全貌,Android王国简介 2
1.1.1 Android系统架构 2
1.1.2 Android已发布的版本 3
1.1.3 Android应用开发特色 4
1.2 手把手带你搭建开发环境 5
1.2.1 准备所需要的工具 5
1.2.2 搭建开发环境 5
1.3 创建你的第 一个Android项目 9
1.3.1 创建HelloWorld项目 9
1.3.2 启动模拟器 11
1.3.3 运行HelloWorld 14
1.3.4 分析你的第 一个Android程序 15
1.3.5 详解项目中的资源 20
1.3.6 详解build.gradle文件 22
1.4 前行*备:掌握日志工具的使用 25
1.4.1 使用Android的日志工具Log 25
1.4.2 为什么使用Log而不使用println() 26
1.5 小结与点评 28
第 2章 探究新语言,快速入门Kotlin
编程 30
2.1 Kotlin语言简介 31
2.2 如何运行Kotlin代码 32
2.3 编程之本:变量和函数 35
2.3.1 变量 35
2.3.2 函数 37
2.4 程序的逻辑控制 41
2.4.1 if条件语句 41
2.4.2 when条件语句 42
2.4.3 循环语句 45
2.5 面向对象编程 48
2.5.1 类与对象 49
2.5.2 继承与构造函数 50
2.5.3 接口 55
2.5.4 数据类与单例类 58
2.6 Lambda编程 61
2.6.1 集合的创建与遍历 61
2.6.2 集合的函数式API 65
2.6.3 Java函数式API的使用 69
2.7 空指针检查 71
2.7.1 可空类型系统 72
2.7.2 判空辅助工具 73
2.8 Kotlin中的小魔术 77
2.8.1 字符串内嵌表达式 77
2.8.2 函数的参数默认值 78
2.9 小结与点评 81
第3章 先从看得到的入手,探究
Activity 82
3.1 Activity是什么 82
3.2 Activity的基本用法 82
3.2.1 手动创建Activity 83
3.2.2 创建和加载布局 85
3.2.3 在AndroidManifest文件中
注册 88
3.2.4 在Activity中使用Toast 90
3.2.5 在Activity中使用Menu 92
3.2.6 销毁一个Activity 96
3.3 使用Intent在Activity之间穿梭 96
3.3.1 使用显式Intent 96
3.3.2 使用隐式Intent 99
3.3.3 更多隐式Intent的用法 101
3.3.4 向下一个Activity传递数据 105
3.3.5 返回数据给上一个Activity 106
3.4 Activity的周期 108
3.4.1 返回栈 108
3.4.2 Activity状态 109
3.4.3 Activity的生存期 110
3.4.4 体验Activity的周期 111
3.4.5 Activity被回收了怎么办 117
3.5 Activity的启动模式 118
3.5.1 standard 119
3.5.2 singleTop 120
3.5.3 singleTask 122
3.5.4 singleInstance 123
3.6 Activity的*佳实践 126
3.6.1 知晓当前是在哪一个Activity 126
3.6.2 随时随地退出程序 127
3.6.3 启动Activity的*佳写法 129
3.7 Kotlin课堂:标准函数和静态方法 130
3.7.1 标准函数with、run和apply 130
3.7.2 定义静态方法 133
3.8 小结与点评 137
第4章 软件也要拼脸蛋,UI开发的
点点滴滴 138
4.1 该如何编写程序界面 138
4.2 常用控件的使用方法 139
4.2.1 TextView 139
4.2.2 Button 142
4.2.3 EditText 144
4.2.4 ImageView 149
4.2.5 ProgressBar 151
4.2.6 AlertDialog 154
4.3 详解3种基本布局 156
4.3.1 LinearLayout 156
4.3.2 RelativeLayout 163
4.3.3 FrameLayout 166
4.4 系统控件不够用?创建自定义控件 169
4.4.1 引入布局 169
4.4.2 创建自定义控件 172
4.5 *常用和*难用的控件:ListView 174
4.5.1 ListView的简单用法 174
4.5.2 定制ListView的界面 176
4.5.3 提升ListView的运行效率 179
4.5.4 ListView的点击事件 180
4.6 更强大的滚动控件:RecyclerView 182
4.6.1 RecyclerView的基本用法 183
4.6.2 实现横向滚动和瀑布流布局 186
4.6.3 RecyclerView的点击事件 191
4.7 编写界面的*佳实践 193
4.7.1 制作9-Patch图片 193
4.7.2 编写精美的聊天界面 196
4.8 Kotlin课堂:延迟初始化和密封类 201
4.8.1 对变量延迟初始化 201
4.8.2 使用密封类优化代码 204
4.9 小结与点评 206
第5章 平板要兼顾,探究
Fragment 207
5.1 Fragment是什么 207
5.2 Fragment的使用方式 209
5.2.1 Fragment的简单用法 210
5.2.2 动态添加Fragment 212
5.2.3 在Fragment中实现返回栈 215
5.2.4 Fragment和Activity之间的
交互 216
5.3 Fragment的周期 217
5.3.1 Fragment的状态和回调 217
5.3.2 体验Fragment的周期 219
5.4 动态加载布局的技巧 221
5.4.1 使用限定符 221
5.4.2 使用*小宽度限定符 224
5.5 Fragment的*佳实践:一个简易
版的新闻应用 225
5.6 Kotlin课堂:扩展函数和运算符
重载 234
5.6.1 大有用途的扩展函数 234
5.6.2 有趣的运算符重载 236
5.7 小结与点评 240
第6章 全局大喇叭,详解广播机制 242
6.1 广播机制简介 242
6.2 接收系统广播 243
6.2.1 动态注册监听时间变化 243
6.2.2 静态注册实现开机启动 245
6.3 发送自定义广播 249
6.3.1 发送标准广播 249
6.3.2 发送有序广播 252
6.4 广播的*佳实践:实现强制下线功能 255
6.5 Kotlin课堂:高阶函数详解 261
6.5.1 定义高阶函数 261
6.5.2 内联函数的作用 265
6.5.3 noinline与crossinline 268
6.6 Git时间:初识版本控制工具 271
6.6.1 安装Git 271
6.6.2 创建代码仓库 272
6.6.3 提交本地代码 274
6.7 小结与点评 274
第7章 数据存储全方案,详解
持久化技术 275
7.1 持久化技术简介 275
7.2 文件存储 276
7.2.1 将数据存储到文件中 276
7.2.2 从文件中读取数据 279
7.3 SharedPreferences存储 281
7.3.1 将数据存储到SharedPre-
ferences中 282
7.3.2 从SharedPreferences中读取
数据 284
7.3.3 实现记住密码功能 285
7.4 SQLite数据库存储 288
7.4.1 创建数据库 289
7.4.2 升级数据库 295
7.4.3 添加数据 297
7.4.4 更新数据 300
7.4.5 删除数据 302
7.4.6 查询数据 304
7.4.7 使用SQL操作数据库 307
7.5 SQLite数据库的*佳实践 307
7.5.1 使用事务 308
7.5.2 升级数据库的*佳写法 309
7.6 Kotlin课堂:高阶函数的应用 312
7.6.1 简化SharedPreferences的用法 312
7.6.2 简化ContentValues的用法 314
7.7 小结与点评 317
第8章 跨程序共享数据,探究ContentProvider 318
8.1 ContentProvider简介 318
8.2 运行时权限 319
8.2.1 Android权限机制详解 319
8.2.2 在程序运行时申请权限 322
8.3 访问其他程序中的数据 326
8.3.1 ContentResolver的基本用法 326
8.3.2 读取系统 329
8.4 创建自己的ContentProvider 332
8.4.1 创建ContentProvider的步骤 332
8.4.2 实现跨程序数据共享 336
8.5 Kotlin课堂:泛型和委托 345
8.5.1 泛型的基本用法 345
8.5.2 类委托和委托属性 347
8.5.3 实现一个自己的lazy函数 350
8.6 小结与点评 352
第9章 丰富你的程序,运用
多媒体 353
9.1 将程序运行到上 353
9.2 使用通知 355
9.2.1 创建通知渠道 355
9.2.2 通知的基本用法 357
9.2.3 通知的进阶技巧 362
9.3 调用摄像头和相册 367
9.3.1 调用摄像头拍照 367
9.3.2 从相册中选择图片 371
9.4 播放多媒体文件 374
9.4.1 播放音频 374
9.4.2 播放视频 377
9.5 Kotlin课堂:使用infix函数构建
更可读的语法 381
9.6 Git时间:版本控制工具进阶 383
9.6.1 忽略文件 384
9.6.2 查看修改内容 385
9.6.3 撤销未提交的修改 387
9.6.4 查看提交记录 388
9.7 小结与点评 389
第 10章 后台默默的劳动者,探究
Service 390
10.1 Service是什么 390
10.2 Android多线程编程 391
10.2.1 线程的基本用法 391
10.2.2 在子线程中更新UI 392
10.2.3 解析异步消息处理机制 395
10.2.4 使用AsyncTask 396
10.3 Service的基本用法 399
10.3.1 定义一个Service 399
10.3.2 启动和停止Service 401
10.3.3 Activity和Service进行
通信 404
10.4 Service的周期 408
10.5 Service的更多技巧 408
10.5.1 使用前台Service 409
10.5.2 使用IntentService 411
10.6 Kotlin课堂:泛型的*级特性 415
10.6.1 对泛型进行实化 415
10.6.2 泛型实化的应用 417
10.6.3 泛型的协变 418
10.6.3 泛型的逆变 422
10.7 小结与点评 425
第 11章 看看精彩的世界,使用网络
技术 427
11.1 WebView的用法 427
11.2 使用HTTP访问网络 429
11.2.1 使用HttpURLConnection 430
11.2.2 使用OkHttp 433
11.3 解析XML格式数据 436
11.3.1 Pull解析方式 438
11.3.2 SAX解析方式 441
11.4 解析JSON格式数据 444
11.4.1 使用JSONObject 445
11.4.2 使用GSON 446
11.5 网络请求回调的实现方式 448
11.6 *好用的网络库:Retrofit 451
11.6.1 Retrofit的基本用法 452
11.6.2 处理复杂的接口地址类型 456
11.6.3 Retrofit构建器的*佳写法 459
11.7 Kotlin课堂:使用协程编写高效的
并发程序 461
11.7.1 协程的基本用法 461
11.7.2 更多的作用域构建器 467
11.7.3 使用协程简化回调的写法 471
11.8 小结与点评 474
第 12章 *佳的UI体验,Material
Design实战 475
12.1 什么是Material Design 475
12.2 Toolbar 476
12.3 滑动菜单 483
12.3.1 DrawerLayout 483
12.3.2 NavigationView 486
12.4 悬浮按钮和可交互提示 491
12.4.1 FloatingActionButton 491
12.4.2 Snackbar 494
12.4.3 CoordinatorLayout 496
12.5 卡片式布局 498
12.5.1 MaterialCardView 498
12.5.2 AppBarLayout 504
12.6 下拉刷新 507
12.7 可折叠式标题栏 510
12.7.1 CollapsingToolbarLayout 510
12.7.2 充分利用系统状态栏空间 519
12.8 Kotlin课堂:编写好用的工具方法 522
12.8.1 求N个数的*大*小值 522
12.8.2 简化Toast的用法 524
12.8.3 简化Snackbar的用法 526
12.9 Git时间:版本控制工具的*级
用法 528
12.9.1 分支的用法 528
12.9.2 与远程版本库协作 530
12.10 小结与点评 532
第 13章 *级程序开发组件,探究
Jetpack 533
13.1 Jetpack简介 533
13.2 ViewModel 534
13.2.1 ViewModel的基本用法 536
13.2.2 向ViewModel传递参数 539
13.3 Lifecycles 541
13.4 LiveData 545
13.4.1 LiveData的基本用法 545
13.4.2 map和switchMap 549
13.5 Room 554
13.5.1 使用Room进行増删改查 555
13.5.2 Room的数据库升级 562
13.6 WorkManager 565
13.6.1 WorkManager的基本用法 566
13.6.2 使用WorkManager处理
复杂的任务 568
13.7 Kotlin课堂:使用DSL构建专有的
语法结构 571
13.8 小结与点评 577
第 14章 继续进阶,你还应该掌握的
*级技巧 579
14.1 全局获取Context的技巧 579
14.2 使用Intent传递对象 582
14.2.1 Serializable方式 582
14.2.2 Parcelable方式 583
14.3 定制自己的日志工具 584
14.4 调试Android程序 586
14.5 深色主题 589
14.6 Kotlin课堂:Java与Kotlin代码
之间的转换 596
14.7 总结 600
第 15章 进入实宅开发一个天气
预报App 601
15.1 功能需求及技术可行性分析 601
15.2 Git时间:将代码托管到GitHub上 605
15.3 搭建MVVM项目架构 612
15.4 搜索全球城市数据 615
15.4.1 实现逻辑层代码 615
15.4.2 实现UI层代码 620
15.5 显示天气信息 626
15.5.1 实现逻辑层代码 626
15.5.2 实现UI层代码 631
15.5.3 记录选中的城市 645
15.6 手动刷新天气和切换城市 647
15.6.1 手动刷新天气 648
15.6.2 切换城市 650
15.7 制作App的图标 654
15.8 生成正式签名的APK文件 659
15.8.1 使用Android Studio生成 660
15.8.2 使用Gradle生成 663
15.9 你还可以做的事情 666
第 16章 编写并发布一个开源库,PermissionX 669
16.1 开发前的准备工作 669
16.2 实现PermissionX开源库 673
16.3 对开源库进行测试 678
16.4 将开源库发布到jcenter仓库 681
16.5 体验我们的成果 688
16.6 结束语 691






作者介绍

《App架构师实践指南》 赵波,研究生,前阿里资 深软件工程师/图像算法工程师,擅长移动应用和图像算法开发,在计算机视觉,无线互联以及软件测试生态链工具等多领域有深入研究和较深刻理解。曾在多家创业公司担任技术顾问和技术总监职位,某知名企业培训机贵业内训高 级讲师,某在线教育平台Android讲师,发表国家核心期刊3篇,国家发明专利22件,国内* 一本NFC书籍《Android NFC开发实战》作者, 《30天App开发从0到1 APICloud移动开发实战》 邹达 APICloud联合创始人兼CTO APICloud云端一体平台的技术架构设计者及核心引擎的实现者,对大规模、高并发的云端服务开发有着丰富的经验。杰出的JavaScript全栈工程师,有十多年浏览器引擎及移动应用引擎开发经验,先后参与过国内外多款浏览器引擎、JavaScript引擎和移动应用引擎的开发工作。同时也是混合模式开发技术的倡导者,竖内较早一批将Web与Native技术融合的实践者。 李德兴 APICloud技术负责人 一直从事浏览器、JavaScript引擎及相关中间件技术的工作,参与过多个基于浏览器的移动中间件引擎的开发工作。精通Android操作系统,有丰富的App架构及开发经验。热爱新技术,熟悉HTML5和W3C规范,对HTML5和浏览器技术的实际应用有深入研究并付诸过大量实践。 《*一行代码 Android 第3版》 郭霖,Android开发工程师。从事Android开发工作9年,有着丰富的项目实战经验,负责及参与开发过多款移动应用与游戏,同时还是多个开源项目的作者,对Android系统架构及应用层开发有着深入的理解。 2013年3月开始,在CSDN上发表Android技术相关博文,很快获得了大量网友的好评。目前博客访问量已超过1000万次,评论超过10000条。荣获CSDN认证专家,并连续多年被评选为CSDN年度博客之星。_310x310.jpg
热门设计服务