内容简介
第1章 开发APP前的准备事项
1.1 APP适配的硬件
1.2 APP横竖屏界面的选择
1.3 APP适配的操作系统版本
1.4 APP适配的屏幕尺寸
1.5 APP开发样机的选择
1.6 APP内置的图片资源
第2章 APP产品和设计人员的工作
2.1编写产品文档时的注意事项
2.2设计效果图时的注意事项
2.3 APP的切图工作
2.4点9图简介
2.4.1点9图
2.4.2制作工具
2.4.3注意事项
2.5产品和设计文档的版本管理
第3章 APP端和服务器端的协作
3.1接口设计注意事项
3.2安全方案
3.2.1 HTTP命令的使用
3.2.2使用时间戳参数
3.2.3数据加密
3.2.4密码的处理
3.2.5数据的存储
3.3登录方式
3.3.1账号+密码
3.3.2账号+密码+验证码
3.4登录状态的维持
3.4.1利用Token实现
3.4.2利用Cookie实现
3.4.3利用账号和密码实现
3.5数据同步方案
3.5.1文件的同步
3.5.2地址数据的同步
3.5.3非地址数据的同步
3.6业务逻辑的实现
3.7接口文档的维护
第4章 字符编码
4.1字符集
4.2字符编码
4.3字节序
第5章 TCP/IP概述
5.1协议简介
5.2 TCP和UDP的区别
5.2.1面向连接服务
5.2.2无连接服务
第6章 HTTP网络请求
6.1 HTTP简介
6.1.1协议
6.1.2HTTP方法
6.1.3HTTP消息
6.1.4HTTP头字段介绍
6.1.5 Keep-Alive模式介绍
6.1.6HTTP状态码简介
6.2 Cookie简介
6.2.1 Cookie
6.2.2 Cookie的设置和发送
6.3 Session简介
6.3.1 Session
6.3.2 SessionID
6.4短连接与长连接
6.4.1短连接
6.4.2长连接
6.4.3使用场景
6.5 Volley网络库简介
6.5.1 Volley网络库
6.5.2 Volley网络库的使用
第7章 HTTPS概述
7.1协议简介
7.2HTTPS的认证类型
7.2.1单向认证
7.2.2双向认证
第8章 加密简介
8.1对称加密
8.2非对称加密
8.3 MD5简介
第9章 设计模式
9.1设计模式简介
9.2面向对象设计原则
9.3设计模式类别
9.3.1单例模式
9.3.2 Builder模式
9.3.3原型模式
9.3.4工厂方法模式
9.3.5策略模式
9.3.6状态模式
9.3.7命令模式
9.3.8观察者模式
9.3.9备忘录模式
9.3.10迭代器模式
9.3.11模板方法模式
9.3.12代理模式
9.3.13组合模式
9.3.14适配器模式
9.3.15外观模式
9.3.16桥接模式
第10章 架构模式
10.1 MVC架构
10.2 MVP架构
10.3 MVVM架构
10.4 MVP+VM架构
第11章 APP架构设计
11.1基本原则
11.2分层设计
11.2.1三层架构
11.2.2 View层设计
11.2.3业务逻辑层设计(Presenter)
11.2.4数据访问层设计(Model)
11.2.5功能模块设计
11.3层间通信
11.3.1通信方式
11.3.2交互模式
11.4跨业务模块调用
11.4.1跨业务模块调用简介
11.4.2跨业务模块调用方案
第12章 Activity概述
12.1 Activity启动方式
12.1.1启动模式
12.1.2 FLAG介绍
12.2 Activity消息路由
12.2.1设计思路
12.2.2具体实现
12.3 Activity数据的保存和恢复
12.3.1临时保存数据和恢复数据
12.3.2持久保存数据和恢复数据
12.4 Activity数据传递
12.4.1数据传递媒介
12.4.2数据传递机制
12.5 BaseActivity设计
12.5.1应用级别的BaseActivity设计
12.5.2功能级别的BaseActivity设计
第13章 Service概述
13.1 Service的不同形式
13.2 Service与线程
13.3 IntentService
13.4前台服务
13.5服务的生命周期
第14章 Broadcast概述
14.1广播机制简介
14.2 Broad castReceiver
14.2.1静态注册
14.2.2动态注册
14.3广播类型
14.3.1普通广播(Normal Broadcast)
14.3.2系统广播(System Broadcast)
14.3.3有序广播(Ordered Broadcast)
14.3.4局部广播(Local Broadcast)
14.4广播的安全性
第15章 ContentProvider概述
第16章 Fragment概述
16.1 Fragment简介
16.2 Fragment的创建
16.3 Fragment的懒加载
16.4 Fragment的数据保存和恢复
16.4.1临时保存数据和恢复
16.4.2持久保存数据和恢复
16.5 Fragment的使用场景
第17章 Android权限
17.1权限分类
17.1.1 Normal Permissions
17.1.2 Dangerous Permissions
17.2动态权限申请
17.3兼容性问题
第18章 Android动画
18.1帧动画
18.2 View动画
18.3属性动画简介
18.3.1属性动画
18.3.2使用示例
18.4 Activity切换动画
第19章 图片类型
19.1位图简介
19.1.1位图
19.1.2 WebP格式
19.2矢量图简介
第20章 Android矢量图的使用
20.1功能简介
20.2兼容性处理
20.3 Vector语法简介
20.4 Vector静态图的使用
20.5 Vector动态图的使用
20.5.1功能实现
20.5.2动态Vector兼容性问题
第21章 Android异常
21.1异常分类
21.2异常处理
21.2.1使用try…catch…处理异常
21.2.2使用UncaughtException-Handler处理异常
21.2.3 ANR异常的处理
21.3注意事项
第22章 Android的本地存储
22.1内部存储(Internal Storage)
22.1.1非缓存文件的处理
22.1.2缓存文件的处理
22.2外部存储(External Storage)
22.2.1外部公共存储
22.2.2外部私有存储
22.2.3使用作用域目录访问
第23章 ABI管理
23.1 ABI简介
23.2支持的ABI
23.3为特定ABI生成代码
23.4 Android系统的ABI管理
23.5 Android系统ABI支持
23.6安装时自动解压缩原生代码
第24章 ProGuard混淆
24.1 ProGuard简介
24.2 ProGuard指令介绍
24.3 ProGuard注意事项
24.4 ProGuard相关文件
第25章 Android Studio使用技巧
25.1编译打包
25.2功能宏的使用
25.3集成SO文件
25.4模板的定制使用
第26章 APP缓存处理
26.1缓存简介
26.2缓存控制
26.3缓存实现
26.4 WebView缓存
26.5缓存注意事项
26.6清除数据和清除缓存的区别
第27章 APP性能优化
27.1减少APP所占空间大小
27.1.1减少图片所占空间大小
27.1.2减少音频文件所占空间大小
27.1.3减少代码所占空间大小
27.1.4使用APK Analyzer分析APP
27.1.5利用工具减少APP大小
27.2减少APP使用的网络流量
27.3内存优化
27.3.1节省内存
27.3.2防止内存泄露
27.3.3防止OOM
27.4 UI性能优化
27.5电量优化
27.6运行速度优化
27.7性能优化工具
27.7.1 Android Studio自带工具
27.7.2 Android系统工具
27.7.3三方工具
第28章 Log功能设计
28.1 Log输出控制
28.2注意事项
28.3 Log数据的格式化
28.4使用AOP技术输出Log
28.4.1 AOP简介
28.4.2 AOP技术的使用
第29章 APP版本管理
第30章 APP版本更新功能设计
30.1功能项
30.1.1服务器端功能
30.1.2 APP端功能
30.2 APP和服务器交互
第31章 APP常用功能设计
31.1启动界面设计
31.1.1启动界面白屏解决方案
31.1.2启动界面屏蔽返回按键
31.2首页设计
31.3登录功能设计
31.4商品详情界面设计
31.5购物车功能设计
31.6商品展示界面功能设计
31.7个人中心界面功能设计
31.8搜索功能设计
31.9 WebView功能设计
31.10出错提示功能设计
31.11界面内容隐藏和显示设计
31.12提示功能设计
31.12.1三种控件简介
31.12.2 AIertDialog介绍
31.12.3Toast介绍
31.12.4 Snackbar介绍
31.13定期执行任务的功能设计
31.13.1 JobScheduler介绍
31.13.2 JobScheduler的替代方案
31.13.3注意事项
31.14全屏模式的功能设计
31.14.1 Lean Back
31.14.2 Immersive
31.15开机自启动的功能设计
31.15.1普通模式
31.15.2直接启动模式
31.15.3示例代码
31.16 APP快捷图标的功能设计
31.16.1简介
31.16.2静态快捷图标
31.16.3动态快捷图标
31.17针对Android7.0及更高版本的后台优化方案
31.17.1对于CONNECTIVITY_ACTION限制的解决方案
31.17.2对于ACTION_NEW_PICTURE和ACTION_NEW_VIDEO限制的解决方案
31.18服务器接口的单元测试
31.18.1单元测试
31.18.2使用MockWebServer进行接口的单元测试
31.19自动调整文字大小的TextView
31.19.1 Default方式
31.19.2 Granularity方式
31.19.3 Preset Sizes方式
第32章 代码封装
第33章 APP测试
第34章 项目管理
34.1项目团队成员
34.2需求处理
34.3进度计划
第35章 Git使用
35.1 Git工具简介
35.1.1客户端工具
35.1.2服务器端工具
35.2 Git常用命令
35.3使用Git的注意事项