本篇文章主要针对Android当中所涉及到的性能优化做一个总结:
主要包含这几方面:
一、启动优化
技术点:
1.传说中的黑白屏问题优化
2.黑白屏在商业 APP 中的价值
3.APP 启动流程
4.如何使用 Traceview 工具对优化定位处理
二、UI绘制优化
技术点:
1.CPU 与 GPU 工作流程
2.过度绘制优化方案
3.布局优化方案
4.相关工具 ui Automator viewer,Monitor,HierarchyView
三、内存优化
技术点:
1.JVM 与 GC 基础
2.深度理解 java 引用
3.内存泄漏的准确定位
4.处理第三方框架与源码引起的泄漏问题
5.了解 GC 回收算法
6.内存抖动的定位与处理
7.内存异常的常见的编码问题分析
四、图片优化
技术点:
1.libjpeg 库的编译
2.NDK 基本使用
3.哈夫曼编码
4.使用 libjpeg 实现图片压缩
5.libjpeg 压缩技术
6.补充哈夫曼编码与哈夫曼树
7.补充内存优化 Activity 常见泄漏
五、Bitmap的内存管理
技术点:
1.inBitmap 使用
2.内存优化中三级缓存设计(复用池,LruMemoryCache,LruDiskCache)
3.长图与巨图加载
六、长图优化与电量优化
技术点:
1.微博等 APP 长图加载的处理方案
2.电量优化分析工具 Battery Historian 安装与使用
3.Doze 和 App Standby 模式
4.alarm 与 jobScheduler 应用
七、APK加固
技术点:
1.常用反编译工具使用
2.proguard 混淆配置
3.常用的加解密技术实现
4.android 如何加载 Dex 文件
5.Dex 文件的加密让用户反编译失效
6.解密 Dex 文件加载到系统进行运行
7.APK 文件对齐与签名
8.Application 启动源码分析
9.APPlication 与四大组件关系源码分析
10.反射系统源码实现 Application 切换
八、7z 压缩
技术点:
1. 7z 压缩与 7zip(p7zip)程序
2. 7z、7za 与 7zr 程序的使用,与 zip 的对比
3. 可执行文件的编译与 Android 下运行
4. 动态库/静态库/源码编译,Android 上移植使用 7zr
九、Protobuf
技术点:
1. Protobuf 序列化与反序列化
2. Protobuf 优势与应用场景分析
3. Protobuf 数据结构、编码原理,
4. Protobuf 使用、编译
5. Protobuf 自定义通信协议
十、进程包活
技术点:
1. Activity、Service 提权
2. Service、账号同步、JobScheduler 保活
3. 双进程守护