Android App 开发技术图谱 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 1. App基础 1.1 基本组件 Activity Service Content Provider Broadcast Receiver Intent/Intent Filter App Manifest File 1.2 UI Layouts Widgets Resources Animations 设备适配 1.3 Connectivity WiFi Mobile网络 网络状态监听 1.4 MultiMedia Audio/Video Camera/Gallery 1.5 GPS&Location&Map 1.5.1 系统定位 GPS定位 Network定位 3rd Map定位 百度Map 高德Map 2. App进阶 2.1 Process&Thread 2.1.1 Process Linux进程 App进程原理 2.1.2 AIDL 实现方式 原理 2.1.3 Handler/Looper/MQ/Thread 2.1.4 Loader 2.1.5 AsyncTask 2.2 性能优化 2.2.1 ANR 2.2.2 布局层级性能优化 2.3 内存优化 2.3.1 内存检测工具 2.3.2 内存分析工具 2.3.3 Bitmap优化 2.3.4 内存泄露查找及分析 2.5 网络优化 2.5.1 API优化 2.5.2 低网速下优化 2.5.3 流量使用优化 判断当前网络类型 使用缓存 2.6 单元测试 3. App高级 3.1 相关原理熟悉 3.1.1 Activity 启动流程 生命周期回调原理 与View/Window的关系 与Fragment的关系 3.1.2 View/Window View/Window关系 View渲染 View事件分发处理流程 3.1.3 编译打包 编译打包原理 逆向工程分析 热修复 3.2 Hybrid App 3.2.1 与Native App的异同 3.2.2 主流框架 PhoneGap ionic React Native 3.3 架构能力 3.3.1 架构 MVC MVP MVVM Flux Clean Architecture 3.3.2 App框架 分包 分层 3.3.3 设计模式 OOD原则 常用设计模式运用 3.4 ART&Dalvik AOT compilation GC Bytecode&.Dex 3.5 自动化测试 monkey/monkey runner UIAutomator Espresso Robotium 4. 扩展学习 4.1 响应式编程 4.1.1 Rx RxJava RxAndroid RxBinding 4.1.2 Agera 4.2 主流开源库 4.2.1 快速开发 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 数据库 ORMLite GreenDAO Realm Sugar 4.2.7 辅助 Logger LeakCanary DbInspector Github, 博客, 简书, 掘金, 开发者头条