引言:
今天偶然看到StuQ的技術(shù)圖譜, 找了找竟然沒(méi)有Android開(kāi)發(fā)的. 想起之前自己弄了一個(gè), 翻出來(lái)看看并不過(guò)時(shí), 整理下發(fā)出, 大家共同進(jìn)步.
轉(zhuǎn)載請(qǐng)注明出處: 簡(jiǎn)書(shū)/anly_jun/Android App 開(kāi)發(fā)技術(shù)圖譜
圖片比較大, 加載較慢, 請(qǐng)等待~~
Android_App_Skill_Map
1. 操作系統(tǒng)
Windows/MacOSX/Linux
2. 編程語(yǔ)言
- Java
- HTML/JS (Hybrid/Web App)
- C/C++ (NDK)
- SQL (DB)
- Kotlin
3. 開(kāi)發(fā)工具
3.1 IDE
- Android Studio
- Eclipse
3.2 調(diào)試工具
3.2.1 網(wǎng)絡(luò)調(diào)試
- Charles
- Wireshark
- Fiddler
- tcpdump
- Paw/Postman
3.2.2 內(nèi)存分析
- 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/任務(wù)管理
- Redmine
- JIRA
- Bugzilla
- Teambition
- Tower
3.6 編譯工具
- Gradle
3.7 持續(xù)集成
- Jenkins
- Travis CI
3.8 應(yīng)用分發(fā)
- 蒲公英
- fir.im
1. App基礎(chǔ)
1.1 基本組件
- Activity
- Service
- Content Provider
- Broadcast Receiver
- Intent/Intent Filter
- App Manifest File
1.2 UI
- Layouts
- Widgets
- Resources
- Animations
- 設(shè)備適配
1.3 Connectivity
- WiFi
- Mobile網(wǎng)絡(luò)
- 網(wǎng)絡(luò)狀態(tài)監(jiān)聽(tīng)
1.4 MultiMedia
- Audio/Video
- Camera/Gallery
1.5 GPS&Location&Map
1.5.1 系統(tǒng)定位
- GPS定位
- Network定位
3rd Map定位
- 百度Map
- 高德Map
2. App進(jìn)階
2.1 Process&Thread
2.1.1 Process
- Linux進(jìn)程
- App進(jìn)程原理
2.1.2 AIDL
- 實(shí)現(xiàn)方式
- 原理
2.1.3 Handler/Looper/MQ/Thread
2.1.4 Loader
2.1.5 AsyncTask
2.2 性能優(yōu)化
2.2.1 ANR
2.2.2 布局層級(jí)性能優(yōu)化
2.3 內(nèi)存優(yōu)化
2.3.1 內(nèi)存檢測(cè)工具
2.3.2 內(nèi)存分析工具
2.3.3 Bitmap優(yōu)化
2.3.4 內(nèi)存泄露查找及分析
2.5 網(wǎng)絡(luò)優(yōu)化
2.5.1 API優(yōu)化
2.5.2 低網(wǎng)速下優(yōu)化
2.5.3 流量使用優(yōu)化
- 判斷當(dāng)前網(wǎng)絡(luò)類型
- 使用緩存
2.6 單元測(cè)試
3. App高級(jí)
3.1 相關(guān)原理熟悉
3.1.1 Activity
- 啟動(dòng)流程
- 生命周期回調(diào)原理
- 與View/Window的關(guān)系
- 與Fragment的關(guān)系
3.1.2 View/Window
- View/Window關(guān)系
- View渲染
- View事件分發(fā)處理流程
3.1.3 編譯打包
- 編譯打包原理
- 逆向工程分析
- 熱修復(fù)
3.2 Hybrid App
3.2.1 與Native App的異同
3.2.2 主流框架
- PhoneGap
- ionic
- React Native
3.3 架構(gòu)能力
3.3.1 架構(gòu)
- MVC
- MVP
- MVVM
- Flux
- Clean Architecture
3.3.2 App框架
- 分包
- 分層
3.3.3 設(shè)計(jì)模式
- OOD原則
- 常用設(shè)計(jì)模式運(yùn)用
3.4 ART&Dalvik
- AOT compilation
- GC
- Bytecode&.Dex
3.5 自動(dòng)化測(cè)試
- monkey/monkey runner
- UIAutomator
- Espresso
- Robotium
4. 擴(kuò)展學(xué)習(xí)
4.1 響應(yīng)式編程
4.1.1 Rx
- RxJava
- RxAndroid
- RxBinding
4.1.2 Agera
4.2 主流開(kāi)源庫(kù)
4.2.1 快速開(kāi)發(fā)
- Android Annotation
- ButterKnife
4.2.2 Views
- 太多
4.2.3 HTTP模型
- Retrofit
- OkHttp
- Volley
4.2.4 圖片處理
- Glide
- Fresco
- Picasso
- UIL
4.2.5 依賴注入
- Dagger2
4.2.6 數(shù)據(jù)庫(kù)
- ORMLite
- GreenDAO
- Realm
- Sugar
4.2.7 輔助
- Logger
- LeakCanary
- DbInspector
本文已上傳至Github AndroidDevResources 項(xiàng)目, 歡迎Fork, 提出意見(jiàn).