AndroidApp开发入门与实战

AndroidApp开发入门与实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2020-08
ISBN: 9787115542502
定价: 69.00
装帧: 其他
12人买过
  • 本书基于作者 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
  • 内容简介:
    本书基于作者 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
查看详情
您可能感兴趣 / 更多
AndroidApp开发入门与实战
人脸识别技术与应用
熊欣 著
AndroidApp开发入门与实战
电力谐波分析及应用
熊欣 著
AndroidApp开发入门与实战
中国菜名英译研究
熊欣 著