新书上市: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


第 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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,841评论 5 472
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,415评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,904评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,051评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,055评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,255评论 1 278
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,729评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,377评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,517评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,420评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,467评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,144评论 3 317
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,735评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,812评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,029评论 1 256
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,528评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,126评论 2 341

推荐阅读更多精彩内容