“开发到一定的阶段,有些问题不是API代码就能够解决的,还需要硬件相关的知识“
引言
开发android也有一段时间了,感觉焦点不能再局限上层应用,需要从Android整体框架入手,全面掌握Android的设计艺术,这里特意整理了相关的知识
一、Android 相关
1、卡顿分析
2、网络优化
- 聊聊Linux 五种IO模型
 - 微信网络请求框架mars
 - 微信跨业务基础组件mars
 - 携程 App 的网络性能优化实践
 - 阿里无线 11.11:手机淘宝移动端接入网关基础架构演进之路
 - 蚂蚁金服亿级并发下的移动端到端网络接入架构解析
 - 百度App网络深度优化系列《一》DNS优化
 - HTTP/2 头部压缩技术介绍
 - 腾讯社交网络图片带宽优化技术演进之路
 - 看得「深」、看得「清」—— 深度学习在图像超清化的应用
 - TLS协议分析 与 现代加密通信协议设计
 - TLS1.3
 - 基于TLS1.3的微信安全通信协议mmtls介绍
 - Facebook是如何大幅提升TLS连接效率的?
 - 小米安全:证书锁定
 - CDN + P2P 在大规模直播 & 实时直播的技术实践
 - P2P如何将视频直播带宽降低75%?
 - QUIC协议在腾讯的实践和优化.PDF
 - QUIC在手机微博中的应用实践.pdf
 - 手机淘宝移动端接入网关基础架构演进之路
 - 360开源又一力作——ArgusAPM移动性能监控平台
 - 面向切面(AspectJ)编程
 
3、Ui适配
- 头条:反射实现的Android屏幕适配
 - OLED和LCD的区别
 - Android 目前稳定高效的UI适配方案
 - SmallestWidth 限定符适配方案
 - Vulkan:低开销,高性能3D图形API
 - Android图形整体架构
 - BufferQueue:图形处理核心
 - VSYNC:android 垂直同步概念
 - Android Project Butter(黄油计划)分析
 - 检查GPU渲染速度和绘制过度
 - 一颗像素的诞生
 - ui测试问题定位工具graphics API Debugger
 - gfxinfo可以拿到包各个阶段动画以及帧相关信息,命令如下
 
adb shell dumpsys gfxinfo packageName
//以下命令可以拿到近120帧的每帧耗时
adb shell dumpsys gfxinfo 包名 framestats 
// 通过以下命令获取到SurfaceFlinger
adb shell dumpsys SurfaceFlinger
4、系统源码
二、数据库
1、数据库原理
2、数据持久化方案
3、数据库修复
- How To Corrupt An SQLite Database File
 - 微信 SQLite 数据库修复实践
 - 微信移动端数据库组件WCDB系列(二) — 数据库修复三板斧
 - WCDB Android 数据库修复
 
4、数据库优化
5、SQLite进阶
6、文件压缩方案
三、编译
- 字节码操纵技术探秘
 - ASM-操纵Java字节码的框架
 - 微信Android热补丁实践演进之路
 - Instant Run 原理(英文)
 - Instant Run 原理(中文)
 - facebook redex编译框架
 - 网易HubbleData无痕埋点
 - 51 信用卡 Android 自动埋点实践
 - JVM文档
 - aspectj java 编程扩展框架
 - aspectjx
 
后记
望君学有所成!
—— Weiwq 后记于 2019.06 广州