Android应用开发技能图谱
工具链
-
编程语言
- Java/Kotlin
- C/C++(NDK方向,源码阅读)
- SQL(DB)
- HTML/JS(Hybrid/Web App)
-
操作系统
- Linux/macOS/Windows
-
IDE:
- Android Studio为主
- Eclipse
-
网络调试
-
内存分析
-
综合分析(CPU、Network、Memory、GPU):
- Android Studio Monitors
-
Android Tools
-
代码管理
- 版本管理
- Git
- SVN
- Code Review:
- Gerrit
- Git托管系统比如(github/gitlab/oschina/coding)的Pull Request
- Android Studio VCS git log
- 版本管理
-
团队协作
- Teambition
- Tower
- git issues
-
编译工具
-
持续集成、分发
- Jenkins
- Travis CI
-
早期测试分发
- fir.im
- 蒲公英
App初级入门
-
基础组件
- Activity (launchmode/category)
- Service
- Content Provider
- Broadcast Receiver
- Intent & Intent Filter
- Manifest
- Permission
-
UI
- View/ViewGroup
- Widgets
- Resources(res/assets)
- Animations
-
Connectivity
- WiFi/AP
- Cellular Network(connectivity changed)
- Bluetooth
-
MultiMedia
- Audio Encoding/Decoding
- Video Encoding/Decoding
- Camera Recording
- Gallery
-
LBS
- GPS
- AGPS(Cellular Network)
- Map SDK
App中级进阶
-
Process/Thread/Runnable
- Process
- AIDL
- Handler/Looper/MessageQueue
- Loader/AsyncTask
-
UI优化
- ANR: Broadcast/Input Events
- UI Layout 层次优化
- Bitmap 分辨率裁剪
-
内存管理
- Soft/Weak References
- 内存分析、泄露检测
-
网络优化
- 网络请求压缩(gzip等)
- 善用HTTP协议,使用PATCH等
- 流量使用
- 根据网络类型选择不同分辨率图片素材
- 使用缓存
-
测试
- Android Studio使用不同Product Flavor提供测试方案
- UI模拟测试
- API单元测试
App高级提升
-
知其所以然
-
Activity
-
View/Window
- WindowManager
- View渲染处理流程
- View事件分发处理流程
- View与Window的关系,PopupWindow?
-
编译打包
- javac/dex/art
- aapt处理流程
- gradle productflavor合并/app与lib工程合并
- apktool逆向
- 热修复/classloader
- 代码混淆、资源压缩、加密
-
-
Hybrid App
- 与Native App异同
- 通过JS Bride互相调用
- 主流跨平台框架:PhoneGap/Cordova/React Native
-
架构能力
-
JVM/DVM
- ART/AOT
- GC
- Bytecode/dex
- JVM内存模型
-
自动化编译测试
- Jenkins/Travis CI
- UIAutomator
- Espresso
- Monkey Runner
延伸通用基础
-
响应式编程
- RxJava & RxAndroid & RxBinding
-
网络知识
- TCP/IP
- HTTP
- Socket
- 抓包调试
- 原文作者:CsHeng
- 原文链接:https://sukikaka.cc/2017/08/29/android%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91%E6%8A%80%E8%83%BD%E5%9B%BE%E8%B0%B1/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。