书籍详情
Android App开发入门与实战
作者:熊欣 著
出版社:人民邮电出版社
出版时间:2020-08-01
ISBN:9787115542502
定价:¥69.00
购买这本书可以去
内容简介
本书基于作者 14 年的开发实战经验,详细介绍了 13 套 Android 开发规范、3 套热门App 框架、12 个常用功能模块、14 套 App 解决方案,以及高效开发工具。最后,本书还以实训方式,展现了 Github 客户端开发的前前后后,作为全书知识的总结。本书不仅实例丰富,还提供完整源码,适合刚入门 Android 开发人员以及技术管理人员阅读,同时也可作为高等院校相关专业的教学、自学用书。
作者简介
熊欣,毕业于电子科技大学,从事移动开发十余年,拥有多年J2ME、Android、iOS开发经验,尤其专注于Android开发。曾就职于腾讯、华为、平安互联网公司,主导过由零到百万日活的App项目,也负责过千万日活门户App开发,并拥有国家技术专利40余篇。
目录
目录
第 1篇 规范篇
第 1章 编码规范 2
1.1 命名规范 2
1.1.1 Android包命名规范 2
1.1.2 Android代码命名规范 4
1.1.3 Android资源文件命名规范 6
1.2 代码规范 10
1.2.1 IDE规范 10
1.2.2 CheckStyle 10
1.2.3 代码注释 15
1.2.4 JavaDoc 18
1.2.5 .gitignore 21
1.2.6 ProGuard 21
第 2章 开发规范 23
2.1 API接口规范 23
2.1.1 API接口安全设计规范 23
2.1.2 API接口通用设计规范 25
2.2 SDK设计规范 28
2.2.1 SDK通用规范 28
2.2.2 SDK开发规范 28
2.2.3 SDK开发实例 29
2.3 App常用安全开发规范 30
2.3.1 加壳 30
2.3.2 组件外露 30
2.3.3 WebView 31
2.3.4 Logcat日志 31
2.3.5 网络请求 31
2.3.6 API接口 32
2.3.7 so文件 32
2.4 CodeReview规范 32
2.4.1 CodeReview目的 32
2.4.2 CodeReview清单vs Bad Smell 33
2.4.3 CodeReview方式 34
2.4.4 CodeReview输出 34
第3章 版本管理规范 35
3.1 Git版本管理规范 35
3.1.1 Git版本管理说明 35
3.1.2 Git版本管理流程图 36
3.1.3 Git分支命名规范 37
3.1.4 Git分支管理表格图 37
3.1.5 Git备忘录 37
3.2 Maven使用规范 37
3.2.1 Maven简介 37
3.2.2 snapshot和release 38
3.2.3 Maven上传的两种方法 38
3.2.4 引用Maven 41
3.2.5 Maven版本号 41
3.2.6 免费Maven服务器 41
3.2.7 上传到JCenter 41
第4章 打包发布规范 43
4.1 App打包规范 43
4.1.1 打包前 43
4.1.2 打包后 44
4.1.3 发版后 44
4.1.4 发版备注 45
4.2 App发布规范 45
4.2.1 全量发布 45
4.2.2 灰度发布 45
第5章 团队管理规范 47
5.1 任务管理规范 47
5.2 需求评审规范 48
5.3 过程管理规范 48
第 2篇 开发篇
第6章 常用设计模式 51
6.1 设计模式六大原则 51
6.1.1 单一职责原则 51
6.1.2 里氏替换原则 52
6.1.3 依赖倒置原则 53
6.1.4 接口隔离原则 55
6.1.5 迪米特法则 55
6.1.6 开闭原则 56
6.2 单例模式 56
6.2.1 单例模式介绍 56
6.2.2 单例模式实现 57
6.2.3 静态类 58
6.2.4 单例和静态类的选择 58
6.3 工厂模式 59
6.3.1 简单工厂 59
6.3.2 工厂方法 60
6.3.3 抽象工厂 62
6.4 观察者模式 63
6.4.1 Java自带的观察者 63
6.4.2 自己实现观察者模式 64
6.5 Builder模式 65
6.5.1 为什么要用Builder模式 65
6.5.2 Builder模式的实现 67
6.6 代理模式 68
6.6.1 静态代理 69
6.6.2 动态代理 69
6.6.3 动态代理应用:简单工厂 70
6.6.4 动态代理应用:AOP 72
6.7 策略模式 72
6.7.1 策略模式介绍 72
6.7.2 策略模式实现 73
6.7.3 关于SLF4J 76
6.8 模板模式 79
6.8.1 模板模式介绍 79
6.8.2 模板模式实现 79
6.9 适配器模式 80
6.9.1 适配器模式介绍 80
6.9.2 适配器模式实现 81
第7章 设计框架 83
7.1 MVC 83
7.1.1 MVC介绍 83
7.1.2 MVC的优点、缺点、适用范围 83
7.1.3 MVC实例 84
7.2 MVP 87
7.2.1 MVP介绍 87
7.2.2 MVP的优点、缺点、适用范围 87
7.2.3 MVP实例 88
7.3 MVVM 89
7.3.1 MVVM介绍 89
7.3.2 MVVM的特点 90
7.3.3 MVVM实例 90
第8章 动手写框架 93
8.1 TinyMVP 93
8.1.1 回顾MVP 93
8.1.2 常规解决方案 93
8.1.3 MVP优化:泛型 94
8.1.4 MVP优化:减少接口 95
8.1.5 MVP优化:生命周期 96
8.2 TinyMVVM 99
8.2.1 回顾MVVM 99
8.2.2 MVVM第 一种实现 100
8.2.3 MVVM第二种实现 102
8.2.4 MVVM第三种实现 104
8.3 TinyModule 106
8.3.1 关于Module 106
8.3.2 TinyModule的实现 107
8.3.3 拓展:Module的MVP化 109
第9章 常用模块 110
9.1 功能模块 110
9.1.1 网络请求 110
9.1.2 图片加载 111
9.1.3 数据库 111
9.1.4 异步分发 112
9.1.5 IOC 112
9.1.6 数据解析 112
9.1.7 权限 113
9.2 UI模块 113
9.2.1 Adapter 113
9.2.2 Refresh 113
9.2.3 Tab 113
9.2.4 Banner 114
9.2.5 ImageView 114
第 10章 动手写模块 115
10.1 日志模块:TinyLog 116
10.1.1 日志模块需求 116
10.1.2 日志模块技术分析 117
10.1.3 日志模块代码实现 118
10.1.4 总结 122
10.2 权限模块:TinyPermission 123
10.2.1 权限模块需求 123
10.2.2 权限模块技术分析 125
10.2.3 权限模块代码实现 126
10.2.4 总结 128
10.3 任务模块:TinyTask 129
10.3.1 任务模块需求 129
10.3.2 任务模块技术分析 130
10.3.3 任务模块代码实现 131
10.3.4 总结 138
10.4 异步分发模块:TinyBus 138
10.4.1 异步分发模块需求 139
10.4.2 异步分发模块技术分析 139
10.4.3 异步分发模块代码实现 140
10.4.4 总结 144
10.5 网络模块:TinyHttp 145
10.5.1 网络模块需求 145
10.5.2 网络模块技术分析 146
10.5.3 网络模块代码实现 147
10.5.4 总结 154
10.6 图片模块:TinyImage 154
10.6.1 一种封装图片调用的方式 154
10.6.2 Glide调用的改造 157
10.6.3 图片框架的切换 158
10.6.4 总结 161
10.7 数据库模块:TinySql 161
10.7.1 数据库模块需求 161
10.7.2 数据库模块技术分析 163
10.7.3 数据库模块代码实现 164
10.7.4 总结 168
10.8 两种开源数据库的封装 169
10.8.1 对GreenDao数据库的封装 169
10.8.2 对OrmLite数据库的封装 171
10.9 IOC模块:TinyKnifer 173
10.9.1 IOC模块需求 174
10.9.2 IOC实现:注解+反射 174
10.9.3 IOC实现:注解+Annotation
Processor+JavaPoet 176
10.10 Adapter模块:TinyAdapter 183
10.10.1 Adapter模块需求 184
10.10.2 Adapter模块技术分析 187
10.10.3 Adapter模块代码实现 187
10.10.4 总结 192
10.11 下拉刷新模块:TinyPullTo Refresh
192
10.11.1 下拉刷新模块需求 192
10.11.2 下拉刷新模块技术分析 193
10.11.3 下拉刷新模块代码实现 193
10.12 综合应用:TinyTemplate 195
第3篇 扩展篇
第 11章 常用开发解决方案 201
11.1 设计方案:蓝湖 201
11.2 产品方案:Axure 203
11.2.1 Axure优点 203
11.2.2 Axure和蓝湖 203
11.2.3 Axure实例 204
11.3 Mock方案:Postman 205
11.3.1 为什么要模拟API接口 205
11.3.2 利用Postman模拟API接口 205
11.4 长连接方案:Mars 208
11.4.1 为什么用Mars 208
11.4.2 .proto文件 209
11.4.3 自动生成Java文件 210
11.4.4 Android中的调用 210
11.5 伪协议方案 211
11.5.1 URL Scheme定义 212
11.5.2 URL Scheme解析 212
11.5.3 URL Scheme应用 212
11.5.4 URL Scheme应用场景 213
11.6 App预埋方案 215
11.6.1 升级 215
11.6.2 功能开关 216
11.6.3 通用弹框 216
11.6.4 旧版本和新版本字段兼容 217
11.6.5 extension扩展字段 217
11.6.6 权限管理 217
11.6.7 域名替换 218
11.7 Gradle配置方案 218
11.7.1 Gradle简介 218
11.7.2 配置信息 219
11.7.3 使用.each引入依赖库 220
11.7.4 任务信息 220
11.8 串行与并行方案:RxJava 221
11.8.1 什么是串行和并行 221
11.8.2 串行:FlatMap 221
11.8.3 串行:Concat 222
11.8.4 并行:Merge 223
11.8.5 并行:Zip 224
11.9 设计一种串行方案 225
11.10 异常处理方案 227
11.10.1 异常介绍 227
11.10.2 异常抛出 228
11.10.3 异常捕获 229
11.10.4 Android全局异常的捕获 231
11.10.5 预防异常 232
11.11 Android动画方案:属性动画 232
11.11.1 视图动画和属性动画 232
11.11.2 属性动画的应用 233
11.11.3 Lottie 235
11.12 Android Studio动态调试方案 235
11.13 自定义View方案 238
11.13.1 自定义View简介 238
11.13.2 View绘制流程 238
11.13.3 坐标系 239
11.13.4 方案一:继承系统View控件 239
11.13.5 方案二:组合控件 241
11.13.6 方案三:重写View 243
11.14 组件化方案 245
11.14.1 为什么要进行组件化开发 245
11.14.2 组件化改造方案 246
11.14.3 组件化开发手册 250
11.14.4 组件化开发实战 252
第 12章 Android优化 255
12.1 内存泄漏 255
12.1.1 Static静态变量 255
12.1.2 InnerClass内部类 257
12.1.3 其他导致内存泄漏的场景 260
12.1.4 LeakCanary 262
12.2 编译速度 262
12.2.1 配置文件优化 263
12.2.2 Gradle脚本优化 264
12.2.3 其他优化方案 265
第 13章 测试 266
13.1 压力测试Monkey 266
13.2 JUnit、Espresso、Mockito、Robolectric 267
13.2.1 JUnit 268
13.2.2 Espresso 269
13.2.3 Mockito 269
13.2.4 Robolectric 270
13.2.5 综合应用 270
13.2.6 扩展:mock植入和反射 272
第 14章 工具 273
14.1 Android模拟器 273
14.1.1 AVD 273
14.1.2 Genymotion 274
14.1.3 MuMu模拟器 274
14.2 文档管理 275
14.2.1 文档共享和编辑平台 275
14.2.2 知识管理平台 276
14.2.3 任务管理和缺陷跟踪平台 276
14.3 9PNG的应用 277
14.3.1 字体阴影 277
14.3.2 用9png图片实现通用阴影效果 278
14.3.3 用9png图片实现网络传输 279
14.4 CI:持续集成 279
14.4.1 Jenkins 279
14.4.2 Travis 281
14.5 Kotlin学习 282
14.5.1 Kotlin语法手册 282
14.5.2 Kotlin在Android上的应用 284
14.6 其他的一些与开发相关的工具 286
14.6.1 图片压缩 286
14.6.2 源码阅读 287
14.6.3 Stetho 288
14.6.4 Android Asset Studio 288
第4篇 实战篇
第 15章 Github客户端开发 291
15.1 Github需求 291
15.2 Github原型图 292
15.3 技术选型 293
15.3.1 架构 293
15.3.2 功能模块 294
15.3.3 UI模块 294
15.3.4 技术方案 295
15.4 开发准备 296
15.4.1 新建工程 296
15.4.2 目录结构 297
15.4.3 图标 298
15.4.4 配置文件 298
15.4.5 辅助工具 300
15.5 开发实现:架构与模块 301
15.5.1 MVVM架构 301
15.5.2 网络模块 301
15.5.3 图片模块 304
15.5.4 数据库模块 304
15.5.5 base模块 307
15.5.6 数据模块 311
15.5.7 其他模块 313
15.6 开发实现:业务 314
15.6.1 启动页 314
15.6.2 登录页 316
15.6.3 首页 318
15.6.4 开源项目和搜索 319
15.6.5 国际化 320
第 16章 打包与发布 322
16.1 打包 322
16.2 发布 324
第 1篇 规范篇
第 1章 编码规范 2
1.1 命名规范 2
1.1.1 Android包命名规范 2
1.1.2 Android代码命名规范 4
1.1.3 Android资源文件命名规范 6
1.2 代码规范 10
1.2.1 IDE规范 10
1.2.2 CheckStyle 10
1.2.3 代码注释 15
1.2.4 JavaDoc 18
1.2.5 .gitignore 21
1.2.6 ProGuard 21
第 2章 开发规范 23
2.1 API接口规范 23
2.1.1 API接口安全设计规范 23
2.1.2 API接口通用设计规范 25
2.2 SDK设计规范 28
2.2.1 SDK通用规范 28
2.2.2 SDK开发规范 28
2.2.3 SDK开发实例 29
2.3 App常用安全开发规范 30
2.3.1 加壳 30
2.3.2 组件外露 30
2.3.3 WebView 31
2.3.4 Logcat日志 31
2.3.5 网络请求 31
2.3.6 API接口 32
2.3.7 so文件 32
2.4 CodeReview规范 32
2.4.1 CodeReview目的 32
2.4.2 CodeReview清单vs Bad Smell 33
2.4.3 CodeReview方式 34
2.4.4 CodeReview输出 34
第3章 版本管理规范 35
3.1 Git版本管理规范 35
3.1.1 Git版本管理说明 35
3.1.2 Git版本管理流程图 36
3.1.3 Git分支命名规范 37
3.1.4 Git分支管理表格图 37
3.1.5 Git备忘录 37
3.2 Maven使用规范 37
3.2.1 Maven简介 37
3.2.2 snapshot和release 38
3.2.3 Maven上传的两种方法 38
3.2.4 引用Maven 41
3.2.5 Maven版本号 41
3.2.6 免费Maven服务器 41
3.2.7 上传到JCenter 41
第4章 打包发布规范 43
4.1 App打包规范 43
4.1.1 打包前 43
4.1.2 打包后 44
4.1.3 发版后 44
4.1.4 发版备注 45
4.2 App发布规范 45
4.2.1 全量发布 45
4.2.2 灰度发布 45
第5章 团队管理规范 47
5.1 任务管理规范 47
5.2 需求评审规范 48
5.3 过程管理规范 48
第 2篇 开发篇
第6章 常用设计模式 51
6.1 设计模式六大原则 51
6.1.1 单一职责原则 51
6.1.2 里氏替换原则 52
6.1.3 依赖倒置原则 53
6.1.4 接口隔离原则 55
6.1.5 迪米特法则 55
6.1.6 开闭原则 56
6.2 单例模式 56
6.2.1 单例模式介绍 56
6.2.2 单例模式实现 57
6.2.3 静态类 58
6.2.4 单例和静态类的选择 58
6.3 工厂模式 59
6.3.1 简单工厂 59
6.3.2 工厂方法 60
6.3.3 抽象工厂 62
6.4 观察者模式 63
6.4.1 Java自带的观察者 63
6.4.2 自己实现观察者模式 64
6.5 Builder模式 65
6.5.1 为什么要用Builder模式 65
6.5.2 Builder模式的实现 67
6.6 代理模式 68
6.6.1 静态代理 69
6.6.2 动态代理 69
6.6.3 动态代理应用:简单工厂 70
6.6.4 动态代理应用:AOP 72
6.7 策略模式 72
6.7.1 策略模式介绍 72
6.7.2 策略模式实现 73
6.7.3 关于SLF4J 76
6.8 模板模式 79
6.8.1 模板模式介绍 79
6.8.2 模板模式实现 79
6.9 适配器模式 80
6.9.1 适配器模式介绍 80
6.9.2 适配器模式实现 81
第7章 设计框架 83
7.1 MVC 83
7.1.1 MVC介绍 83
7.1.2 MVC的优点、缺点、适用范围 83
7.1.3 MVC实例 84
7.2 MVP 87
7.2.1 MVP介绍 87
7.2.2 MVP的优点、缺点、适用范围 87
7.2.3 MVP实例 88
7.3 MVVM 89
7.3.1 MVVM介绍 89
7.3.2 MVVM的特点 90
7.3.3 MVVM实例 90
第8章 动手写框架 93
8.1 TinyMVP 93
8.1.1 回顾MVP 93
8.1.2 常规解决方案 93
8.1.3 MVP优化:泛型 94
8.1.4 MVP优化:减少接口 95
8.1.5 MVP优化:生命周期 96
8.2 TinyMVVM 99
8.2.1 回顾MVVM 99
8.2.2 MVVM第 一种实现 100
8.2.3 MVVM第二种实现 102
8.2.4 MVVM第三种实现 104
8.3 TinyModule 106
8.3.1 关于Module 106
8.3.2 TinyModule的实现 107
8.3.3 拓展:Module的MVP化 109
第9章 常用模块 110
9.1 功能模块 110
9.1.1 网络请求 110
9.1.2 图片加载 111
9.1.3 数据库 111
9.1.4 异步分发 112
9.1.5 IOC 112
9.1.6 数据解析 112
9.1.7 权限 113
9.2 UI模块 113
9.2.1 Adapter 113
9.2.2 Refresh 113
9.2.3 Tab 113
9.2.4 Banner 114
9.2.5 ImageView 114
第 10章 动手写模块 115
10.1 日志模块:TinyLog 116
10.1.1 日志模块需求 116
10.1.2 日志模块技术分析 117
10.1.3 日志模块代码实现 118
10.1.4 总结 122
10.2 权限模块:TinyPermission 123
10.2.1 权限模块需求 123
10.2.2 权限模块技术分析 125
10.2.3 权限模块代码实现 126
10.2.4 总结 128
10.3 任务模块:TinyTask 129
10.3.1 任务模块需求 129
10.3.2 任务模块技术分析 130
10.3.3 任务模块代码实现 131
10.3.4 总结 138
10.4 异步分发模块:TinyBus 138
10.4.1 异步分发模块需求 139
10.4.2 异步分发模块技术分析 139
10.4.3 异步分发模块代码实现 140
10.4.4 总结 144
10.5 网络模块:TinyHttp 145
10.5.1 网络模块需求 145
10.5.2 网络模块技术分析 146
10.5.3 网络模块代码实现 147
10.5.4 总结 154
10.6 图片模块:TinyImage 154
10.6.1 一种封装图片调用的方式 154
10.6.2 Glide调用的改造 157
10.6.3 图片框架的切换 158
10.6.4 总结 161
10.7 数据库模块:TinySql 161
10.7.1 数据库模块需求 161
10.7.2 数据库模块技术分析 163
10.7.3 数据库模块代码实现 164
10.7.4 总结 168
10.8 两种开源数据库的封装 169
10.8.1 对GreenDao数据库的封装 169
10.8.2 对OrmLite数据库的封装 171
10.9 IOC模块:TinyKnifer 173
10.9.1 IOC模块需求 174
10.9.2 IOC实现:注解+反射 174
10.9.3 IOC实现:注解+Annotation
Processor+JavaPoet 176
10.10 Adapter模块:TinyAdapter 183
10.10.1 Adapter模块需求 184
10.10.2 Adapter模块技术分析 187
10.10.3 Adapter模块代码实现 187
10.10.4 总结 192
10.11 下拉刷新模块:TinyPullTo Refresh
192
10.11.1 下拉刷新模块需求 192
10.11.2 下拉刷新模块技术分析 193
10.11.3 下拉刷新模块代码实现 193
10.12 综合应用:TinyTemplate 195
第3篇 扩展篇
第 11章 常用开发解决方案 201
11.1 设计方案:蓝湖 201
11.2 产品方案:Axure 203
11.2.1 Axure优点 203
11.2.2 Axure和蓝湖 203
11.2.3 Axure实例 204
11.3 Mock方案:Postman 205
11.3.1 为什么要模拟API接口 205
11.3.2 利用Postman模拟API接口 205
11.4 长连接方案:Mars 208
11.4.1 为什么用Mars 208
11.4.2 .proto文件 209
11.4.3 自动生成Java文件 210
11.4.4 Android中的调用 210
11.5 伪协议方案 211
11.5.1 URL Scheme定义 212
11.5.2 URL Scheme解析 212
11.5.3 URL Scheme应用 212
11.5.4 URL Scheme应用场景 213
11.6 App预埋方案 215
11.6.1 升级 215
11.6.2 功能开关 216
11.6.3 通用弹框 216
11.6.4 旧版本和新版本字段兼容 217
11.6.5 extension扩展字段 217
11.6.6 权限管理 217
11.6.7 域名替换 218
11.7 Gradle配置方案 218
11.7.1 Gradle简介 218
11.7.2 配置信息 219
11.7.3 使用.each引入依赖库 220
11.7.4 任务信息 220
11.8 串行与并行方案:RxJava 221
11.8.1 什么是串行和并行 221
11.8.2 串行:FlatMap 221
11.8.3 串行:Concat 222
11.8.4 并行:Merge 223
11.8.5 并行:Zip 224
11.9 设计一种串行方案 225
11.10 异常处理方案 227
11.10.1 异常介绍 227
11.10.2 异常抛出 228
11.10.3 异常捕获 229
11.10.4 Android全局异常的捕获 231
11.10.5 预防异常 232
11.11 Android动画方案:属性动画 232
11.11.1 视图动画和属性动画 232
11.11.2 属性动画的应用 233
11.11.3 Lottie 235
11.12 Android Studio动态调试方案 235
11.13 自定义View方案 238
11.13.1 自定义View简介 238
11.13.2 View绘制流程 238
11.13.3 坐标系 239
11.13.4 方案一:继承系统View控件 239
11.13.5 方案二:组合控件 241
11.13.6 方案三:重写View 243
11.14 组件化方案 245
11.14.1 为什么要进行组件化开发 245
11.14.2 组件化改造方案 246
11.14.3 组件化开发手册 250
11.14.4 组件化开发实战 252
第 12章 Android优化 255
12.1 内存泄漏 255
12.1.1 Static静态变量 255
12.1.2 InnerClass内部类 257
12.1.3 其他导致内存泄漏的场景 260
12.1.4 LeakCanary 262
12.2 编译速度 262
12.2.1 配置文件优化 263
12.2.2 Gradle脚本优化 264
12.2.3 其他优化方案 265
第 13章 测试 266
13.1 压力测试Monkey 266
13.2 JUnit、Espresso、Mockito、Robolectric 267
13.2.1 JUnit 268
13.2.2 Espresso 269
13.2.3 Mockito 269
13.2.4 Robolectric 270
13.2.5 综合应用 270
13.2.6 扩展:mock植入和反射 272
第 14章 工具 273
14.1 Android模拟器 273
14.1.1 AVD 273
14.1.2 Genymotion 274
14.1.3 MuMu模拟器 274
14.2 文档管理 275
14.2.1 文档共享和编辑平台 275
14.2.2 知识管理平台 276
14.2.3 任务管理和缺陷跟踪平台 276
14.3 9PNG的应用 277
14.3.1 字体阴影 277
14.3.2 用9png图片实现通用阴影效果 278
14.3.3 用9png图片实现网络传输 279
14.4 CI:持续集成 279
14.4.1 Jenkins 279
14.4.2 Travis 281
14.5 Kotlin学习 282
14.5.1 Kotlin语法手册 282
14.5.2 Kotlin在Android上的应用 284
14.6 其他的一些与开发相关的工具 286
14.6.1 图片压缩 286
14.6.2 源码阅读 287
14.6.3 Stetho 288
14.6.4 Android Asset Studio 288
第4篇 实战篇
第 15章 Github客户端开发 291
15.1 Github需求 291
15.2 Github原型图 292
15.3 技术选型 293
15.3.1 架构 293
15.3.2 功能模块 294
15.3.3 UI模块 294
15.3.4 技术方案 295
15.4 开发准备 296
15.4.1 新建工程 296
15.4.2 目录结构 297
15.4.3 图标 298
15.4.4 配置文件 298
15.4.5 辅助工具 300
15.5 开发实现:架构与模块 301
15.5.1 MVVM架构 301
15.5.2 网络模块 301
15.5.3 图片模块 304
15.5.4 数据库模块 304
15.5.5 base模块 307
15.5.6 数据模块 311
15.5.7 其他模块 313
15.6 开发实现:业务 314
15.6.1 启动页 314
15.6.2 登录页 316
15.6.3 首页 318
15.6.4 开源项目和搜索 319
15.6.5 国际化 320
第 16章 打包与发布 322
16.1 打包 322
16.2 发布 324
猜您喜欢