很久以来,都在忙于公司的项目开发(程序猿总是在不停的追赶进度),没有时间停下来好好梳理一下自己的知识体系,借用那句话“时间就像海绵,挤一挤总是有的”,所以我决定立马提笔,把日常工作中使用和学习到的一些知识和领悟记录下来。
为什么选择先开始梳理android呢,由于本人工作的前两三年一直在从事java web后端开发,最近三四年呢,才转型过来做android,对于我现在每天都在学习,使用,陪伴的,还是android,所以我选择从android开始梳理自己的知识体系。
关于android,我想先梳理出一个技术图谱:
1. 操作系统
Windows/MacOSX/Linux
2. 编程语言
Java
HTML/JS (Hybrid/Web App)
C/C++ (NDK)
SQL (DB)
Kotlin
3. 开发工具
3.1 IDE
Android Studio
Eclipse
3.2 调试工具
3.2.1 网络调试
Charles
Wireshark
Fiddler
tcpdump
Paw/Postman
3.2.2 内存分析
monitor
MAT
3.2.3 Android tools
adb
draw9patch
hierarchyviewer
uiautomatorviewer
3.3 版本管理
3.3.1 Git
Git命令
Github/GitLab
3.3.2 SVN
3.4 CodeReview
Gerrit
Github pull request
3.5 Bug/任务管理
Redmine
JIRA
Bugzilla
Teambition
Tower
3.6 编译工具
Gradle
3.7 持续集成
Jenkins
Travis CI
3.8 应用分发
蒲公英
fir.im
4. App基础
4.1 基本组件
Activity
Service
Content Provider
Broadcast Receiver
Intent/Intent Filter
App Manifest File
4.2 UI
Layouts
Widgets
Resources
Animations
设备适配
4.3 Connectivity
WiFi
Mobile网络
网络状态监听
4.4 MultiMedia
Audio/Video
Camera/Gallery
4.5 GPS&Location&Map
4.5.1 系统定位
GPS定位
Network定位
4.5.2 第三方Map定位
百度Map
高德Map
5. App进阶
5.1 Process&Thread
5.1.1 Process
Linux进程
App进程原理
5.1.2 AIDL
实现方式
原理
5.1.3 Handler/Looper/MQ/Thread
5.1.4 Loader
5.1.5 AsyncTask
5.2 性能优化
5.2.1 ANR
5.2.2 布局层级性能优化
5.3 内存优化
5.3.1 内存检测工具
5.3.2 内存分析工具
5.3.3 Bitmap优化
5.3.4 内存泄露查找及分析
5.4 网络优化
5.4.1 API优化
5.4.2 低网速下优化
5.4.3 流量使用优化
判断当前网络类型
使用缓存
5.5 单元测试
6. App高级
6.1 相关原理熟悉
6.1.1 Activity
启动流程
生命周期回调原理
与View/Window的关系
与Fragment的关系
6.1.2 View/Window
View/Window关系
View渲染
View事件分发处理流程
6.1.3 编译打包
编译打包原理
逆向工程分析
热修复
6.2 Hybrid App
6.2.1 与Native App的异同
6.2.2 主流框架
PhoneGap
ionic
React Native
6.3 架构能力
6.3.1 架构
MVC
MVP
MVVM
Flux
Clean Architecture
6.3.2 App框架
分包
分层
6.3.3 设计模式
OOD原则
常用设计模式运用
6.4 ART&Dalvik
AOT compilation
GC
Bytecode&.Dex
6.5 自动化测试
monkey/monkey runner
UIAutomator
Espresso
Robotium
7. 扩展学习
7.1 响应式编程
7.1.1 Rx
RxJava
RxAndroid
RxBinding
7.1.2 Agera
7.2 主流开源库
7.2.1 快速开发
Android Annotation
ButterKnife
7.2.2 Views
太多
7.2.3 HTTP模型
Retrofit
OkHttp
Volley
7.2.4 图片处理
Glide
Fresco
Picasso
UIL
7.2.5 依赖注入
Dagger2
7.2.6 数据库
ORMLite
GreenDAO
Realm
Sugar
7.2.7 消息总线
Eventbus
7.2.8 辅助
Logger
LeakCanary
DbInspector