# 程序员职业发展规划
【技术方向】5年 - Android高级工程师 阿里P6
Android工程师职业发展方向规划:
http://naotu.baidu.com/file/1ab611f8592ee4b6a18b8592f4e78a51?token=4e73adda2edacf37
http://naotu.baidu.com/file/82fda7a3ad479fbff45908c463fdcd62?token=8ecbfaab1cc83b72

--------------------------------------------------------------------------------------------------------------
-------------------- FMBP 知识体系 == 【官方文档 + 名著 + 源码 + 实践】----------------------------
--------------------------------------------------------------------------------------------------------
【F、移动端】
指导思想:《我的职业是前端工程师》
https://ued.party/

#1【大前端 - 混合/跨平台开发】
- 【 Hybrid == Webview + html5/js/css3/】
给Android开发者看的前端教程
https://blog.csdn.net/lfdfhl/column/info/17220

- 【快应用】
快应用开发
微信小程序

#2【 移动端原生】
- 【Android 相关】
###1 Kotlin
https://time.geekbang.org/course/intro/105

###2 Groovy&Gradle 与 Maven 打包插件与仓库
Gradle官方教程
https://gradle.org/resources/

Gradle学习博客
https://blog.csdn.net/innost/article/details/48228651
https://blog.csdn.net/lastsweetop/article/details/79053746

《Maven实战》

a.学习Gradle核心技术 --
自定义配置项目构建过程 ;
implementation - api
https://medium.com/mindorks/implementation-vs-api-in-gradle-3-0-494c817a6fa

c. gradle 插件如何hook打包过程,从而实现功能,如减少apk大小,dex分包等

- 【IOS】
学习路线:https://time.geekbang.org/column/article/85326
OC
Swift

###3 Ioc、Aop 与 AspectJ
https://blog.csdn.net/innost/article/details/49387395
https://juejin.im/post/5bd6ce8f51882527dd7f6f03

###4 NDK -- Linux / C / C++ / NDK 开发工具链
http://kms.sys.wanmei.net/pages/viewpage.action?pageId=29239649
官方文档 -- 向项目添加C/c++代码
https://developer.android.com/studio/projects/add-native-code?utm_source=android-studio
https://my.oschina.net/caipeng/blog/2243613
《Linux 系统编程》

#3 【移动端区块链游戏与社交应用】
经营类、虚拟世界
step1: https://cryptozombies.io/
step2 LOOM Unity SDK:https://medium.com/loom-network-chinese/%E6%B8%B8%E6%88%8F%E5%BC%80%E5%8F%91%E8%80%85%E4%BB%AC%E6%B3%A8%E6%84%8F%E5%95%A6-%E4%BD%BF%E7%94%A8loom-unity-sdk-%E4%B8%8D%E7%94%A8%E4%BA%86%E8%A7%A3%E5%8C%BA%E5%9D%97%E9%93%BE%E7%BC%96%E7%A8%8B%E4%B9%9F%E8%83%BD%E5%BC%80%E5%8F%91%E5%8C%BA%E5%9D%97%E9%93%BE%E6%B8%B8%E6%88%8F%E4%BA%86-4f6de4de3baa
step3:区块链技术栈
C++
Golang

# 【M、主方向 - Android内核与架构】
##1 编译过程、运行环境
###1 Android studio 编译、打包过程核心技术
https://juejin.im/post/5a69c0ccf265da3e2a0dc9aa
APK签名机制
https://www.jianshu.com/p/286d2b372334
manifest及资源文件merge过程
https://developer.android.com/studio/build/manifest-merge?hl=zh-cn
Asset 资源文件加密
https://www.jianshu.com/p/97bfe485e179

aapt/dx工具、.Java -> .class -> .dex 、方法签名
压缩、ProGuard完全解析,签名流程梳理 , smali

###2 Java虚拟机原理
极客帮:https://time.geekbang.org/column/intro/108
Android 开发了解 Android虚拟机或者 JVM方法:
https://www.zhihu.com/question/63720280/answer/212645992
ref:深入理解Android之Java虚拟机Dalvik:
http://blog.csdn.net/Innost/article/details/50377905?utm_source=gank.io%2Fxiandu&utm_medium=website
ref:Dalvik与ART
https://www.jianshu.com/p/58f817d176b7
源码角度虚拟机原理 -- 类加载过程
https://www.jianshu.com/p/cb39b1797326
http://www.importnew.com/17770.html
https://www.cnblogs.com/wtzbk/p/7985156.html
JVM 内存管理-GC
https://blog.csdn.net/sd4015700/article/details/50109939
深入理解java内存模型系列文章

[问]如果想替换第三方jar中的某个class文件,或者在开发时你的class文件与jar中的重名,但是你想使用自己的应该如何解决?如果你替换掉某个方法又该怎么解决?

###3 插件化原理:DroidPlugin VirtualApp、DynamicLoadAp
<深入探索Android热修复技术原理7.3Q.pdf>
深入理解Android 插件化技术
https://zhuanlan.zhihu.com/p/33017826
https://zhuanlan.zhihu.com/p/39804097

#### hook技术
ClassLoader核心原理
Dex文件结构及加载原理
hook一个无需注册的Activity实战
hook一个主题,实现资源的远程加载实战
@target theme主题换肤框架手写实践

#### Xposed详解
http://blog.csdn.net/Innost/article/details/50461783?utm_source=gank.io%2Fxiandu&utm_medium=website
https://www.wrbug.com/

#### 插件化框架原理
http://a.codekk.com/detail/Android/FFish/DynamicLoadApk%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90
··
#### 热修复原理
AndFix 、SoPhix、Tinker
http://mp.weixin.qq.com/s?__biz=MzIxNzU1Nzk3OQ==&mid=2247487017&idx=1&sn=8abaad1612f871980c042f0fd214975d&chksm=97f6b09da081398b63c2dcd7642b858229ea7c82246af493041ff325c25beb01879bf24d6a0b&mpshare=1&scene=23&srcid=0608yqnuQcXKT2xEhq29c2AN#rd

##2 架构师发展方向(架构重构与设计思想)
《 重构,改善既有代码的设计》
《clean code》
《十大开源库-- 视频课》

###1 面向对象设计思想 UML(类图、时序图)
《Thinking in UML》
UML及starUML工具
《设计模式之禅》

###2 主流框架设计思想
*** 【主流框架】网络框架 与 Json解析框架
核心问题
1)多线程断点续传原理
2)线程池管理

## 网络框架
### Volley
### okHttp
https://www.jianshu.com/p/230e2e2988e0
### retrofit

## json解析框架
Gson
fastJson

*** 【主流框架】图片加载
核心问题
LRUCache/DiskLruCache原理
图片加载原理

### Glide 使用与原理,及坑
Glide 指导文档
https://mrfu.me/2016/02/27/Glide_Getting_Started/
Glide好处 -- 与PIcasso、Fresco对比
https://www.jianshu.com/p/ca5ce4444c37
Glide 详细使用
https://blog.csdn.net/sgiceleo/article/details/64440783
http://www.jianshu.com/p/e78407a18716
https://mrfu.me/2016/02/27/Glide_Displaying_Gifs_&_Videos/
Glide 使用优化
http://m.blog.csdn.net/plokmju88/article/details/78141155

### Picasso与Glide对比
https://square.github.io/picasso/

### 【实战】手写网络加载框架
https://www.jianshu.com/p/3df395d8a6bc

*** 【主流框架】EventBus 框架原理
饿了么进程间事件分发库 -- HermesEventBus
事件分发基于EventBus,IPC基于Hermes
***【技术专题】 Jetpack -- LiveData
*** 【主流框架】 RxJava / RxAndroid 框架学习
http://mp.weixin.qq.com/s?__biz=MzIwMzYwMTk1NA==&mid=2247489050&idx=1&sn=4b9edc057cc6913dae1580e24d911e37&chksm=96cdb757a1ba3e41ee902bb12ee437ab3d93b64a5fefe030c5aa82184a6ebc63ec669178d6a1&mpshare=1&scene=23&srcid=0102Tu33NEz2xONdd4UzF1pC#rd
https://juejin.im/book/5a09997cf265da432002bf6a

*** 【主流框架】数据库框架
### 开源框架 GreenDao 使用与原理
### ORMLite
### Room

*** 【主流框架】 依赖注入框架
Dagger2
https://google.github.io/dagger/

ButterKnife

###3 项目架构
架构MVC、MVP、MVVM、jetpack
官方组件:https://github.com/googlesamples
1)MVVM --
kotlin+MVVM+databinding+AOP+dagger2+RxJava+Retrofit
PaoNet
https://www.jianshu.com/p/77e42aebd7bb
Android Architecture Component - Jetpack
https://developer.android.com/jetpack/docs/guide

2)KotlinMvp
kotlin+MVP+RxJava+Retrofit

3)组件化架构使用 -- ARouter、CC
基于路由框架的Router组件化框架参考开源项目 AcgClub
基于组件总线的CC组件化框架 -- CC
基于路由思想的美团WMRouter
https://tech.meituan.com/meituan_waimai_android_open_source_routing_framework.html

##3 Android 技术专题与系统源码
<深入理解android 卷一.pdf>
<深入理解android 卷二.pdf>
<深入理解android 卷三.pdf>
《Android开发艺术探索》
https://www.cnblogs.com/duguguiyu/category/112850.html
《 Android源码与设计模式》

***【技术专题】 通信机制 -- 线程通信与异步

###ThreadLocal 原理
ThreadLocal如果引用一个static变量是不是线程安全的
### 消息机制 -- Handler、MessageQueue
<深入理解android 卷三.pdf> 第二章
<深入理解android 卷二.pdf> 第二章
http://www.jackywang.tech/AndroidInterview-Q-A/chinese/android/Handler%E6%B6%88%E6%81%AF%E5%A4%84%E7%90%86.html

### Thread/AsyncTask/HandlerThread/IntentService/RxJava源码分析
https://blog.csdn.net/lyz_zyx/article/details/60598656
https://blog.csdn.net/lyz_zyx/article/details/60869762

***【技术专题】 Android Framework 核心服务源码 与 设计模式
## 通信机制
### Handler通信原理与框架手写

### Binder机制/AIDL
https://xiaozhuanlan.com/topic/9405168327
《深入理解Android》卷一二三
http://www.jackywang.tech/AndroidInterview-Q-A/chinese/android/%E8%BF%9B%E7%A8%8B%E9%97%B4%E9%80%9A%E8%AE%AF%E6%9C%BA%E5%88%B6Binder.html

### Intent 数据传递与内核
Bundle
Parcleable
Serialize
隐式调用
Intent 是如何实现 Activity、Service 等之间的解耦合的?

### Socket通信原理

## 组件工作原理
《Android开发艺术探索》
《深入理解android 卷二》 第六章 AMS

Activity
https://www.jianshu.com/p/8d58804d4bf4
https://www.jianshu.com/p/9ecea420eb52
《深入理解Android》

Broadcast
LocalBroadcastManager

Service
生命周期及AMS关系
两种启动方式原理
Service进程优先级调优与实践

Context 原理解析
application动态切换,让一个应用有两个application实现加固与安全

Fragment 内核
调用栈管理
生命周期管理源码

## 应用管理 -- apk安装过程
<深入理解android 卷二.pdf> 第四章 PackageManagerService

## 进程管理、任务管理 、内存管理
### Android中进程内存的分配,能不能自己分配定额内存
https://www.cnblogs.com/ymczxy/p/4710991.html

## WebView 与 WebKit 内核模块
《深入理解Android:WebKit卷+(移动开发)》

@target WebView&native 通信框架手写实践

## 权限机制

***【技术专题】 View 绘制 & 高级动画绘制、动画原理
https://blog.csdn.net/lfdfhl/article/details/78566702
### 自定义View过程 -- 实战技能
http://hencoder.com/

### View绘制原理--系统是如何调用到onMessure,onDraw等方法的
<Android开发艺术探索>
https://blog.csdn.net/wangwei708846696/article/details/80539230
https://blog.csdn.net/u012124438/article/details/71435787?utm_source=blogxgwz2

### View事件分发与滑动冲突
<Android开发艺术探索>

### 属性动画
属性动画使用、差值器&估值器
Animate Vector Drawables(矢量动画))、
SVG(SVG概述、SVG图片使用实例、SVG动画使用实例)、
GIF动画引擎框架、
自定义动画框架
MaterialDesign动画(Touch feedback(触摸反馈)、
Reveal effect(揭露效果)、
Activity transitions(Activity转换效果)、
Curved motion(曲线运动)、

### View System -- 绘制与优化原理
《Android开发艺术探索》
<深入理解android 卷一.pdf> 8(视图绘制原理)
<深入理解android 卷三.pdf> 第四、五、六章 Window绘制、输入系统

DisplayManager
WindowManager
AcitivtyManager
Surface vs SurfaceFlinger

[实战]
1) 评分控件的实现SVG:
https://www.jianshu.com/p/67e8c0555d8d
RichPath
3)RecycleView https://mp.weixin.qq.com/s/S7BJAUCQeSHQ4uPqd3N4qA
4)NestedScroll
5) 水波纹动画--腾讯课堂
https://ke.qq.com/webcourse/index.html#cid=130901&term_id=100146035&taid=1984214761340757&vid=c1424dt669v
SurfaceView/GLSurfaceView/TextureView/SurfaceTextture
https://www.cnblogs.com/renhui/p/8258391.html

***【技术专题】 Jetpack

#【B、基础知识】
##1 java核心技术
Java-Interview
Java并发编程的总结与思考
一张图让你看懂JAVA线程间的状态转换
Java并发编程:Thread类的使用
Java多线程编程总结
锁机制:synchronized、Lock、Condition
Java 中的锁
深入分析ConcurrentHashMap
Java反射机制原理 -- http://www.importnew.com/23902.html
《java 并发艺术》
《java 核心》
https://mp.weixin.qq.com/s/fXEYulgiTNgun0pJswRhXA
Java 个版本特性与变化

##2 数理逻辑、数据结构、算法 与 人工智能
慕课网算法课程
https://coding.imooc.com/class/chapter/71.html#Anchor
极客帮 - 《人工智能入门课》
https://time.geekbang.org/column/intro/62
程序员数学课
https://time.geekbang.org/column/article/71139

百度云盘--玩转算法面试题视频教程)
leetcode
《王晓华-算法的乐趣》

算法 + 人工智能

##3 网络协议、操作系统
### 网络协议
《Tcp ip 第五版》
《图解Http》
HTTP协议详解(真的很经典) - Hundre - 博客园 - http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html?utm_source=qq&utm_medium=social

### 通信工程 - IM入门知识
http://www.52im.net/thread-2406-1-1.html

### 操作系统

### 密码学
《经典密码学与现代密码学》

【P、项目实践】
功能开发与维护
核心技术点学习
优化

##1 项目性能与安全
https://time.geekbang.org/column/intro/142
《Android移动性能实战》
《Android应用性能优化最佳实践》
《性能之巅》
https://medium.com/googleplaydev/how-to-optimize-your-app-for-android-go-edition-f0d2bedf9e03
https://developer.android.com/topic/performance/
Android官方视频:Google发布于Youtube的官方Android性能优化的视频。
https://nanchen2251.github.io

### 卡顿场景
UI -- 绘制、刷新
应用启动--安装启动、冷启动、热启动
页面跳转--页面间跳转、前后台切换
事件响应--按键、系统事件、滑动

### 内存泄漏&OOM 优化
Heap Snapshot
MAT工具

### 电量优化
消耗机制
优化工具
battery-historian

### 反编译、抓包调试工具
https://blog.csdn.net/Android_Tutor/article/details/5724435
AndroidCrackTool 2
Stecho
Fiddle2

##2 代码优化 --从编译和维护的角度:稳定性、拓展性、可维护性
《Effective Java》
《Clean Code》
《重构:改善既有代码的设计》
《整洁代码之道》

##3 项目适配与测试
### android适配 : 屏幕适配、机型适配方案、SDK版本变化与适配方案
https://www.cnblogs.com/soaringEveryday/p/4835839.html

### 测试
Junit、Expresso

### Java 诊断利器
arthas

### Git 使用
掘金小册
https://juejin.im/book/5a124b29f265da431d3c472e

转载于:https://www.cnblogs.com/hxzhang/p/10649286.html

【职业学习规划】Android架构师方向相关推荐

  1. 成为一名合格Android架构师,移动APP开发框架盘点,面试资料分享

    缘起 经过近十年的发展,Android技术优化日新月异,如今Android 10.0 已经发布,Android系统性能也已经非常流畅,可以在体验上完全媲美iOS.到了各大厂商手里,改源码.自定义系统, ...

  2. 阿里Android架构师面试就这?我上我也行!

    一.牛*初现 刚踏进大学入门Android开发的时候,对架构师这个词并没有太多的概念,就觉得肯定很牛*,感觉只要随着时间的沉淀就必然会"进化"成架构师. 后来开始写代码,从Java ...

  3. 全球最火的程序员学习路线!架构师花费近一年时间整理出来的安卓核心知识,年薪超过80万!

    前言 作为一个程序员,性能优化是无法避开的事情,并且性能优化也是软件系统中最有挑战的工作之一,更是每个工程师都需要掌握的核心技能. 性能问题和Bug不同,后者的分析和解决思路更清晰,很多时候从应用日志 ...

  4. 阿里P7技术知识点,Android架构师年薪50w,只因做到了这几点

    前言 最近部门招聘,很多工程师,包括我在内都参与了内推和面试的过程,经过这次招聘,我发现能够最终拿到offer的人,基本上在看到简历的那一瞬间就已经定下来了,后续的面试只不过是一种验证而已(注意,是验 ...

  5. android 系统(103)---Android 架构师需要掌握的技能

    Android 架构师需要掌握的技能 架构与设计 设计模式 重构 技术选型 特性 可用性 性能 包大小 方法数 文档 技术支持 UI架构模式 MVC MVP MVVM 研发工具 集成开发环境 Andr ...

  6. android架构师技能图谱

    Android 架构师技能图谱 架构与设计 设计模式 重构 技术选型 特性 可用性 性能 包大小 方法数 文档 技术支持 UI架构模式 MVC MVP MVVM 研发工具 集成开发环境 Android ...

  7. 吃一堑长一智!十年开发经验Android架构师,含小米、腾讯、阿里

    前言 最近有些朋友提问,Android QQ空间 换肤实现原理是什么?于是,我决定在这里做一下回答.对这个方面感兴趣的朋友也可以来看下. 手q的换肤机制主要是通过拦截系统resource中的sPrel ...

  8. 如何成为一名Android架构师,乃至高级架构师,文末有路线图

    很多Android的小伙伴在做了多年的开发之后,始终搞不清楚达到Android架构师需要何种技能,我们对比着Android高级工程师来说明. 我们先来看一下Android高级工程师的招聘要求 职位描述 ...

  9. Android架构师亲述:我从某度外包到字节,你知道我经历了什么吗?

    Android架构师亲述:我从某度外包到字节,你知道我经历了什么吗? 朋友在某大型互联网公司担任架构师.刚毕业那年,他以外包的身份进入了某度,那个时候几乎每一天都很焦虑,大家技术能力没差太多,为何我是 ...

最新文章

  1. java ee cdi_Java EE6 CDI,命名组件和限定符
  2. 武汉市江岸区2021年高考成绩查询,2021年武汉各区一、二、三批次高中有哪些(名单)...
  3. 《深入理解 Spring Cloud 与微服务构建》第十五章 微服务监控 Spring Boot Admin
  4. 计算机导论在线阅读,计算思维与计算机导论.pdf
  5. 淘云互动机器人_新时代!新机遇!讯飞淘云2018年全国经销商年终大会隆重召开!...
  6. DTCC参会归来有感
  7. PR2017添加字幕文本或文字水印
  8. 快速采集交换机下计算机ip,怎样查看整个交换机里的电脑ip
  9. Mac下将ISO写入U盘镜像
  10. 如何查询本机的内网IP地址
  11. 小学信息技术 计算机组装,浅谈小学信息技术教学创新
  12. Android通用流行框架大全,零基础入门学习android
  13. 自然语言处理实战:机器学习常见工具与技术
  14. 时间同步,自动驾驶里的花好月圆
  15. oracle rman crosscheck,rman crosscheck作用
  16. iOS:多效果的CategoryView
  17. dbk-5/Empf/CEE/O/M30技术文章dbk-5/Sender/M30/k1
  18. 项目流程管理工具OmniPlan Pro 4
  19. 如何将电梯门禁卡复制到手机/手环上
  20. 5个 JavaScript 怪异行为及其原因

热门文章

  1. [BZOJ5329][SDOI2018]战略游戏
  2. IDEA中运行出现ERROR Could not find value for key log4j.appender.fileAppender
  3. smoke.js是一款基于HTML5 Canvas的逼真烟雾特效js插件。通过该js插件,可以非常轻松的在页面中制作出各种烟雾效果。...
  4. Berkeley DB DB数据库
  5. 电脑桌面右下角小人非常萌
  6. 办公自动化——python操作excel
  7. LAY-EXCEL导出excel并实现单元格合并
  8. android 对象的创建,android – 如何使用嵌套对象创建一个类Parcelable
  9. CrystalDiskInfo v1.0.20 Final 多国语言版
  10. 《搜索引擎优化 SEO 知识完全手册》完整版2