Android App开发技能图谱(转载)
操作系统
- Windows/MacOSX/Linux
编程语言
- Java
- HTML/JS (Hybrid/Web App)
- C/C++ (NDK)
- SQL (DB)
- Kotlin
开发工具
- IDE
- Android Studio
-
调试工具
-
网络调试
- Charles
- Wireshark
- Fiddler
- tcpdump
- Paw/Postman
-
内存分析
- monitor
- MAT
-
Android tools
- adb
- draw9patch
- hierarchyviewer
- uiautomatorviewer
-
-
版本管理
-
Git
- Git命令
- Github/GitLab
-
SVN
-
-
CodeReview
- Gerrit
- Github pull request
-
Bug/任务管理
- Redmine
- JIRA
- Bugzilla
- Teambition
- Tower
-
编译工具
- Gradle
-
持续集成
- Jenkins
- Travis CI
-
应用分发
- 蒲公英
- fir.im
App基础
-
基本组件
- Activity
- Service
- Content Provider
- Broadcast Receiver
- Intent/Intent Filter
- App Manifest File
-
UI
- Layouts
- Widgets
- Resources
- Animations
- 设备适配
-
Connectivity
- WiFi
- Mobile网络
- 网络状态监听
-
MultiMedia
- Audio/Video
- Camera/Gallery
-
GPS&Location&Map
-
系统定位
- GPS定位
- Network定位
-
3rd Map定位
- 百度Map
- 高德Map
-
App进阶
-
Process&Thread
-
Process
- Linux进程
- App进程原理
-
AIDL
- 实现方式
- 原理
-
Handler/Looper/MQ/Thread
-
Loader
-
AsyncTask
-
-
性能优化
-
ANR
-
布局层级性能优化
-
-
内存优化
-
内存检测工具
-
内存分析工具
-
Bitmap优化
-
内存泄露查找及分析
-
-
网络优化
-
API优化
-
低网速下优化
-
流量使用优化
- 判断当前网络类型
- 使用缓存
-
-
单元测试
App高级
-
相关原理熟悉
-
Activity
- 启动流程
- 生命周期回调原理
- 与View/Window的关系
- 与Fragment的关系
-
View/Window
- View/Window关系
- View渲染
- View事件分发处理流程
-
编译打包
- 编译打包原理
- 逆向工程分析
- 热修复
-
-
Hybrid App
-
与Native App的异同
-
主流框架
- PhoneGap
- ionic
- React Native
-
-
架构能力
-
架构
- MVC
- MVP
- MVVM
- Flux
- Clean Architecture
-
App框架
- 分包
- 分层
-
设计模式
- OOD原则
- 常用设计模式运用
-
-
ART&Dalvik
- AOT compilation
- GC
- Bytecode&.Dex
-
自动化测试
- monkey/monkey runner
- UIAutomator
- Espresso
- Robotium
扩展学习
-
响应式编程
-
Rx
- RxJava
- RxAndroid
- RxBinding
-
Agera
-
-
主流开源库
-
快速开发
- Android Annotation
- ButterKnife
-
Views
- 太多
-
HTTP模型
- Retrofit
- OkHttp
- Volley
-
图片处理
- Glide
- Fresco
- Picasso
- UIL
-
依赖注入
- Dagger2
-
数据库
- ORMLite
- GreenDAO
- Realm
- Sugar
-
辅助
- Logger
- LeakCanary
- DbInspector
-
链接:https://github.com/TeamStuQ/skill-map/blob/master/data/map-MobileDev-AndroidDev.md
直面挑战,躬身入局