| 作者 |
| 强增 |
| 丛书名 |
| 出版社 |
| 人民邮电出版社 |
| ISBN |
| 9787115472304 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 本书详尽地介绍了APP从规划到上线过程中所涉及的各方面知识,包括产品规划和原型设计、效果图设计、切图和尺寸标注、APP与服务器间的协作、字符编码、网络、多媒体、数据加密、设计模式、APP架构设计、APP性能优化、开发工具的使用、APP测试和项目管理等。 本书帮助读者开阔眼界,且能够以更专业和高效的方式完成APP的开发,适合新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 |