新书上市:Android APP开发实战 从规划到上线全程详解

京东: https://item.jd.com/28649240718.html

当当: http://product.dangdang.com/25282490.html
 

亚马逊:https://www.amazon.cn/dp/B07D4ZPMGJ/ref=sr_1_5?s=books&ie=UTF8&qid=1527770243&sr=1-5&keywords=android+app

新书上市:Android APP开发实战 从规划到上线全程详解_第1张图片

第 1章 开发APP前的准备事项… ……… 1

1.1 APP适配的硬件……………………… 2

1.2 APP横竖屏界面的选择……………… 2

1.3 APP适配的操作系统版本…………… 2

1.4 APP适配的屏幕尺寸………………… 3

1.5 APP开发样机的选择………………… 4

1.6 APP内置的图片资源………………… 4

第2章 APP产品和设计人员的工作……5

2.1 编写产品文档时的注意事项… ……… 6

2.2 设计效果图时的注意事项…………… 17

2.3 APP的切图工作………………………18

2.4 点9图简介… …………………………20

2.4.1 点9图……………………………20

2.4.2 制作工具… ……………………20

2.4.3 注意事项… …………………… 21

2.5 产品和设计文档的版本管理………… 21

第3章 APP端和服务器端的协作………… 22

3.1 接口设计注意事项… …………………23

3.2 安全方案………………………………30

3.2.1 HTTP命令的使用… …………30

3.2.2 使用时间戳参数 … ………… 31

3.2.3 数据加密 … …………………32

3.2.4 密码的处理 … ………………32

3.2.5 数据的存储 … ………………32

3.3 登录方式………………………………32

3.3.1 账号 密码………………………32

3.3.2 账号 密码 验证码……………32

3.4 登录状态的维持………………………33

3.4.1 利用Token实现… ……………33

3.4.2 利用Cookie实现………………34

3.4.3 利用账号和密码实现… ………35

3.5 数据同步方案…………………………35

3.5.1 文件的同步… …………………35

3.5.2 地址数据的同步… ……………36

3.5.3 非地址数据的同步… …………37

3.6 业务逻辑的实现………………………38

3.7 接口文档的维护………………………38

第4章 字符编码… …………………… 40

4.1 字符集… ………………………………41

4.2 字符编码………………………………42

4.3 字节序…………………………………43

第5章 TCP/IP概述…………………… 44

5.1 协议简介… ……………………………45

5.2 TCP和UDP的区别… ………………45

5.2.1 面向连接服务… ………………45

5.2.2 无连接服务… …………………46

第6章 HTTP网络请求… …………… 47

6.1 HTTP简介……………………………48

6.1.1 协议… …………………………48

6.1.2 HTTP方法… …………………48

6.1.3 HTTP消息… …………………49

6.1.4 HTTP头字段介绍… …………52

6.1.5 Keep-Alive模式介绍… ……55

6.1.6 HTTP状态码简介… …………56

6.2 Cookie简介… ………………………56

6.2.1 Cookie…………………………56

6.2.2 Cookie的设置和发送…………57

6.3 Session简介…………………………57

6.3.1 Session… ……………………57

6.3.2 SessionID……………………58

6.4 短连接与长连接………………………58

6.4.1 短连接… ………………………58

6.4.2 长连接… ………………………58

6.4.3 使用场景… ……………………59

6.5 Volley网络库简介……………………59

6.5.1 Volley网络库… ………………59

6.5.2 Volley网络库的使用… ………66

第7章 HTTPS概述…………………… 73

7.1 协议简介… ……………………………74

7.2 HTTPS的认证类型… ………………74

7.2.1 单向认证… ……………………74

7.2.2 双向认证… ……………………75

第8章 加密简介… …………………… 76

8.1 对称加密… ……………………………77

8.2 非对称加密……………………………77

8.3 MD5简介… …………………………77

第9章 设计模式………………………… 80

9.1 设计模式简介… ………………………81

9.2 面向对象设计原则……………………81

9.3 设计模式类别…………………………81

9.3.1 单例模式… ……………………82

9.3.2 Builder模式 …………………83

9.3.3 原型模式… ……………………83

9.3.4 工厂方法模式… ………………83

9.3.5 策略模式… ……………………84

9.3.6 状态模式… ……………………84

9.3.7 命令模式… ……………………85

9.3.8 观察者模式… …………………85

9.3.9 备忘录模式… …………………85

9.3.10 迭代器模式……………………85

9.3.11 模板方法模式…………………85

9.3.12 代理模式………………………85

9.3.13 组合模式………………………86

9.3.14 适配器模式……………………86

9.3.15 外观模式………………………86

9.3.16 桥接模式………………………86

第 10章 架构模式… …………………… 87

10.1 MVC架构……………………………88

10.2 MVP架构……………………………88

10.3 MVVM架构…………………………89

10.4 MVP VM架构… …………………89

第 11章 APP架构设计………………… 90

11.1 基本原则………………………………91

11.2 分层设计………………………………92

11.2.1 三层架构………………………92

11.2.2 View层设计… ………………92

11.2.3 业务逻辑层设计(Presenter)……………94

11.2.4 数据访问层设计(Model)…… 94

11.2.5 功能模块设计…………………94

11.3 层间通信………………………………96

11.3.1 通信方式………………………96

11.3.2 交互模式………………………96

11.4 跨业务模块调用………………………97

11.4.1 跨业务模块调用简介…………97

11.4.2 跨业务模块调用方案…………97

第 12章 Activity概述………………… 98

12.1 Activity启动方式……………………99

12.1.1 启动模式………………………99

12.1.2 FLAG介绍………………… 100

12.2 Activity消息路由… …………… 101

12.2.1 设计思路…………………… 101

12.2.2 具体实现…………………… 101

12.3 Activity数据的保存和恢复……103

12.3.1 临时保存数据和恢复数据…… 103

12.3.2 持久保存数据和恢复数据…… 103

12.4 Activity数据传递… …………… 104

12.4.1 数据传递媒介……………… 104

12.4.2 数据传递机制……………… 108

12.5 BaseActivity设计……………… 109

12.5.1 应用级别的BaseActivity设计………………………… 109

12.5.2 功能级别的BaseActivity设计………………………… 111

第 13章 Service概述…………………114

13.1 Service的不同形式… ………… 115

13.2 Service与线程… ……………… 115

13.3 IntentService… ……………… 116

13.4 前台服务… ……………………… 116

13.5 服务的生命周期… ……………… 117

第 14章 Broadcast概述… …………118

14.1 广播机制简介……………………… 119

14.2 BroadcastReceiver………… 119

14.2.1 静态注册…………………… 119

14.2.2 动态注册…………………… 120

14.3 广播类型… ……………………… 120

14.3.1 普通广播(Normal…Broadcast)…… 120

14.3.2 系统广播(System…Broadcast)…… 121

14.3.3 有序广播(Ordered…Broadcast)…… 121

14.3.4 局部广播(Local…Broadcast)…… 123

14.4 广播的安全性… ………………… 123

第 15章 ContentProvider概述… ……125

第 16章 Fragment概述………………127

16.1 Fragment简介… ……………… 128

16.2 Fragment的创建……………… 128

16.3 Fragment的懒加载………… 130

16.4 Fragment的数据保存和恢复… 133

16.4.1 临时保存数据和恢复……… 133

16.4.2 持久保存数据和恢复……… 134

16.5 Fragment的使用场景………… 134

第 17章 Android权限…………………135

17.1 权限分类…………………………… 136

17.1.1 Normal Permissions…… 136

17.1.2 Dangerous…Permissions…… 137

17.2 动态权限申请…………………… 138

17.3 兼容性问题……………………… 139

第 18章 Android动画……………… 140

18.1 帧动画……………………………… 141

 18.2 View动画………………………… 142

18.3 属性动画简介… ………………… 144

 18.3.1 属性动画…………………… 144

18.3.2 使用示例…………………… 145

18.4 Activity切换动画… …………… 147

第 19章 图片类型……………………… 149

19.1 位图简介…………………………… 150

19.1.1 位图………………………… 150

19.1.2 WebP格式………………… 150

19.2 矢量图简介……………………… 151

第 20章 Android矢量图的使用……152

20.1 功能简介………………………… 153

20.2 兼容性处理……………………… 154

20.3 Vector语法简介………………… 155

 20.4 Vector静态图的使用…………… 157

20.5 Vector动态图的使用…………… 159

20.5.1 功能实现…………………… 159

20.5.2 动态Vector兼容性问题…… 161

第 21章 Android异常…………………162

21.1 异常分类…………………………… 163

21.2 异常处理………………………… 163

21.2.1 使用try…catch…处理异常………………………… 164

21.2.2 使用UncaughtException Handler处理异常………… 164

21.2.3 ANR异常的处理………… 170

21.3 注意事项……………………… 174

第 22章 Android的本地存储…………175

22.1 内部存储(Internal Storage)…… 176

22.1.1 非缓存文件的处理………… 176

22.1.2 缓存文件的处理…………… 176

22.2 外部存储(External Storage)…… 177

22.2.1 外部公共存储……………… 178

22.2.2 外部私有存储……………… 179

22.2.3 使用作用域目录访问……… 182

第 23章 ABI管理……………………… 184

23.1 ABI简介…………………………… 185

23.2 支持的ABI……………………… 185

23.3 为特定ABI生成代码…………… 186

23.4 Android系统的ABI管理……… 186

23.5 Android系统ABI支持………… 187

23.6 安装时自动解压缩原生代码……… 187

第 24章 ProGuard混淆…………… 188

24.1 ProGuard简介………………… 189

24.2 ProGuard指令介绍…………… 189

24.3 ProGuard注意事项…………… 190

24.4 ProGuard相关文件…………… 192

第 25章 Android Studio使用技巧……193

25.1 编译打包………………………… 194

25.2 功能宏的使用…………………… 196

25.3 集成SO文件……………………… 196

25.4 模板的定制使用………………… 197

第 26章 APP缓存处理…………………211

26.1 缓存简介………………………… 212

26.2 缓存控制………………………… 212

26.3 缓存实现………………………… 212

26.4 WebView缓存………………… 213

26.5 缓存注意事项…………………… 214

26.6 清除数据和清除缓存的区别……214

第 27章 APP性能优化…………………215

27.1 减少APP所占空间大小… ……… 216

27.1.1 减少图片所占空间大小…… 216

27.1.2 减少音频文件所占空间大小………………………… 221

27.1.3 减少代码所占空间大小…… 221

27.1.4 使用APK Analyzer分析APP……………………… 222

27.1.5 利用工具减少APP大小…… 226

27.2 减少APP使用的网络流量……… 228

27.3 内存优化………………………… 229

27.3.1 节省内存………………… 229

27.3.2 防止内存泄露…………… 231

27.3.3 防止OOM……………… 232

27.4 UI性能优化……………………… 232

27.5 电量优化………………………… 233

27.6 运行速度优化…………………… 233

27.7 性能优化工具…………………… 234

27.7.1 Android Studio自带工具………………………… 234

27.7.2 Android系统工具……… 235

27.7.3 三方工具…………………… 236

第 28章 Log功能设计…………………237

28.1 Log输出控制…………………… 238

28.2 注意事项………………………… 239

28.3 Log数据的格式化……………… 239

28.4 使用AOP技术输出Log………… 239

28.4.1 AOP简介………………… 239

28.4.2 AOP技术的使用………… 240

第 29章 APP版本管理…………………254

第30章 APP版本更新功能设计………256

30.1 功能项…………………………… 257

30.1.1 服务器端功能…………… 257

30.1.2 APP端功能……………… 257

30.2 APP和服务器交互……………… 257

第31章 APP常用功能设计…………… 260

31.1 启动界面设计……………………… 261

31.1.1 启动界面白屏解决方案…… 261

31.1.2 启动界面屏蔽返回按键……… 261

31.2 首页设计………………………… 262

31.3 登录功能设计…………………… 262

31.4 商品详情界面设计……………… 262

31.5 购物车功能设计………………… 262

31.6 商品展示界面功能设计………… 263

31.7 个人中心界面功能设计………… 263

31.8 搜索功能设计…………………… 263

31.9 WebView功能设计…………… 264

31.10 出错提示功能设计……………… 266

31.11 界面内容隐藏和显示设计……… 266

31.12 提示功能设计…………………… 267

31.12.1 三种控制简介… ………… 267

31.12.2 AlertDialog介绍………… 268

31.12.3 Toast介绍……………… 269

31.12.4 Snackbar介绍………… 270

31.13 定期执行任务的功能设计……… 271

31.13.1 JobScheduler介绍……… 271

31.13.2 JobScheduler的替代方案……………………… 274

31.13.3 注意事项………………… 277

31.14 全屏模式的功能设计…………… 277

31.14.1 Lean Back……………… 277

31.14.2 Immersive……………… 278

31.15 开机自启动的功能设计………… 279

31.15.1 普通模式………………… 279

31.15.2 直接启动模式…………… 279

31.15.3 示例代码………………… 279

31.16 APP快捷图标的功能设计……… 280

31.16.1 简介……………………… 280

31.16.2 静态快捷图标…………… 281

31.16.3 动态快捷图标…………… 282

31.17 针对Android7.0及更高版本的后台优化方案…………………… 282

31.17.1 对于CONNECTIVITY_ACTION…限制的解决方案………………………… 283

31.17.2 对于ACTION_NEW_ PICTURE和ACTION_ NEW_VIDEO的限制的解决方法………………… 284

31.18 服务器接口的单元测试………… 285

31.18.1 单元测试………………… 286

31.18.2 使用MockWebServer进行接口的单元测试………… 286

31.19 自动调整文字大小的TextView……………………… 289

31.19.1 Default方式……………… 290

31.19.2 Granularity方式……… 290

31.19.3 Preset Sizes方式……… 291

第32章 代码封装………………………293

第33章 APP测试………………………295

第34章 项目管理………………………298

34.1 项目团队成员…………………… 299

34.2 需求处理………………………… 299

34.3 进度计划… ……………………… 300

第35章 Git使用………………………302

35.1 Git工具简介……………………… 303

35.1.1 客户端工具………………… 303

35.1.2 服务器端工具 …………… 306

35.2 Git常用命令……………………… 306

35.3 使用Git的注意事项……………… 307

你可能感兴趣的:(APP开发实战)