Android App 开发技能图谱

操作系统
- Windows/MacOSX/Linux
编程语言
- Java
- HTML/JS (Hybrid/Web App)
- C/C++ (NDK)
- SQL (DB)
- Kotlin
开发工具
IDE
- Android Studio
- Eclipse
调试工具
网络调试
- 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
Android App 开发技能图谱的更多相关文章
- Android App开发技能图谱(转载)
操作系统 Windows/MacOSX/Linux 编程语言 Java HTML/JS (Hybrid/Web App) C/C++ (NDK) SQL (DB) Kotlin 开发工具 IDE An ...
- Android ROM 开发技能图谱
# Android ROM 开发技能图谱 ## 1. 操作系统 * Ubuntu(首选)* MacOSX ## 2. 编程语言 * Java * JNI(务必掌握)* C++* C ## 3. 源码 ...
- Android 架构师技能图谱
# Android 架构师技能图谱 ## 架构与设计 - 设计模式 - 重构 - 技术选型 - 特性 - 可用性 - 性能 - 包大小 - 方法数 - 文档 - 技术支持 - UI架构模式 - MVC ...
- HTML5 开发技能图谱skill-map
# HTML5 开发技能图谱的加密算法,和网上流传的代码也差不多( ...
- Nancy 学习-视图引擎 继续跨平台
前面一篇,讲解Nancy的基础,以及Nancy自宿主,现在开始学习视图引擎. Nancy 目前支持两种 一个是SSVE 一个是Razor.下面我们一起学习. The Super Simple View ...
- 关于jq ajax封装以及error的报错参数
jq的ajax完整版本 $.ajax({ url: "GetCityByPId.ashx", data: {pId:pid}, dataType: "JSON" ...
- 【SQL】CLR聚合函数什么鬼
之前写过一个合并字符串的CLR聚合函数,基本是照抄MS的示例,外加了一些处理,已经投入使用很长时间,没什么问题也就没怎么研究,近日想改造一下,遇到一些问题,遂捣鼓一番,有些心得,记录如下. 一.杂项 ...
- C#编程总结(五)多线程带给我们的一些思考
C#编程总结(五)多线程带给我们的一些思考 如有不妥之处,欢迎批评指正. 1.什么时候使用多线程? 这个问题,对于系统架构师.设计者.程序员,都是首先要面对的一个问题. 在什么时候使用多线程技术? 在 ...
- Hibernate总结(二)
在上一篇Hibernate总结(一)简单总结了一级缓存,快照,增删改查的简单使用,这一篇总结两张表的级联操作. 级联涉及到三种情况,many-many,1-many,many-1. 首先是1-many ...
- get传递中文产生乱码的解决方式汇总
1 最基本的乱码问题. 这个乱码问题是最简单的乱码问题.一般新会出现.就是页面编码不一致导致的乱码. <%@ page language="java" pageEncodin ...