以下内容整理自一位阿里 Android 开发工程师的分享,内容是 毕业生应该具备的技术树 ,PART1
为较全面的技术树整理,不同方向的人在这里面各有侧重;PART2
为 Android 开发岗应该具备的技术树 ,希望对你有帮助。
PART1 较全面的技术树
1.c/c++ 推荐阅读书籍:
- 《c++ primer》
- 《c primer plus》
- 《effective c++》
- 《more effective c++》`
2.Java 推荐阅读书籍:
- 《Java核心技术》卷 |、||
- 《深入理解Java虚拟机》
3.数据结构与算法:
- 栈
- 链表(指针题)
- 各种排序算法以及复杂度分析
- hash算法的原理
- map的原理(hashmap,treemap)
- 二叉树、满二叉树、完全二叉树、最小生成树、Dijkstra(单源最短路径)、平衡二叉树、红黑树实现
4.计算机网络:
- TCP:
《TCP/IP详解 卷一》(网络、通信、分布式系统、服务器)
- HTTP:
《图解HTTP》(web开发)、《UNIX网络编程》
5.五层协议的体系结构
- DNS的解析过程
- ping的过程
- TCP三次握手、四次挥手
- TCP如何实现可靠传输(UDP)
- TCP拥塞控制
- TCP流量控制
- socket的使用
- HTTP、HTTPS、HTTP2
6.操作系统:
- 线程
- 进程
- 线程同步
- 进程间通信
- 缓存算法(LRU算法)
- 死锁问题
- 文件系统
7.数据库:
- 1NF、2NF、3NF
- sql语法与命令
- 索引的原理与作用
- 事务:原子性、一致性、隔离性、持久性
- 超键、候选键、主键、外键
8.编译原理:
- 《龙书》《虎书》《鲸书》
- 解释器、编译器、虚拟机原理
- 编译过程:词法分析、语法分析、语义分析
9.设计模式:
- 《Head First 设计模式》
10.Linux:
- 《Linux从入门到精通》
- 《深入理解 Linux内核》
- 《UNIX环境高级编程》
PART2 Android 技术树:
1.基本功:
- Java、数据库、操作系统、Android SDK
2.基础:
- Activity、Fragment生命周期
- 单线程模型中 Message、Handler、MessageQueue、Looper 间的关系
- UI 的绘制和更新
- AsyncTask 使用场景、底层实现、优缺点
- Activity 任务栈 和 LaunchMode
- Android 多线程间通信
- 高效可用的线程池
- 网络异步加载的原理
- Android 事件传递
3.进阶:
- Android 系统架构
- Dalvik 虚拟机
- Android 内存回收机制
- 如何解决OOM
- 图像缓存策略
- Android 中的设计模式
4.实战:
- 如何做好稳定性
- 如何提升App性能
- 如何设计应用启动框架
- 如何做到业务解耦
5.流行开源库:
- Retrofit
- leakcanary
- RxJava
- picasso/fresco
- EventBus/RxBus
- OkHttp / Volley
6.进阶书:
- 《深入理解Android内核设计思想》
- 《Android 开发艺术探索》
- 《老罗的android之路》
7.关注:
- 标杆公司的动态:facebook、google等
补充加密部分的知识点:
- RSA、MD5、BASE64、对称加密、非对称加密、Https加密等