路线
每个人的学习路线不尽相同,需要选择适合自己的学习路线
- 自己为自己制定了学习计划,学习操作系统->编译原理 这样一步一步的进行,需要有足够的自制力和自学能力
- 以工作和项目为出发点,深入学习后面的实现原理、底层机制,不断扩大自己的知识面
学习资源
- 初级学者可以学习android developer开发网站上的内容
- 根据自己的水平,找适合自己、优秀的开源代码,学习里面的设计思想,并尝试仿写、应用上
- 看android源码,从framework层入手,慢慢深入到kernel层。在看的过程中,会遇到一些不容易看懂的地方,可以采用调试源码、打log输出等方式辅助自己去理解。有些代码值得自己花较长时间去”啃掉骨头”,反复的去理解、琢磨,渡过这段瓶颈时间,后面再看其他代码可能会很容易
其它
- 看源码的时候,初看是了解其整体,看大体思路。可以从方法名入手,因为方法名大多都是有语义的。推荐工具source insight
- 有很多机制都是通用的,不分平台、语言。比如消息循环机制、cpu进程调度,这些原理需要去学习和掌握,一通百通
- 提升技术水平的道路上有的时候是很辛苦的,需要自己给自己鼓励,坚持下去
途径
Android开发周报、开发者头条、infoq、stackoverflow
积累
总结学习,用印象笔记、博客、有道云笔记等记录
练习
阅读和项目相关的书籍、资料,尝试维护github,学写demo
其它
听分享
适应新的生产工具、开发环境,多使用多总结,培养对技术的热情!
建议
有目的性的深入技术,不能只是浏览。
夯实基础,developer开发文档!不要轻易放弃,看的时候不要递归,及时返回,遇到不懂的点可暂时先放下,要有全局观。
看系统browser源码
脸皮厚!!不懂就问
重点总结
- 夯实基础:google官方文档需要通读2~3遍,在入职前就按照入职前建议通读全部文档
- 两种路径:
- 制定学习计划,系统性学习,需要有足够的自制力和自学能力。如自己从操作系统、编译原理一步步的进行。
- 围绕工作和项目,深入学习实现原理和底层机制,不断扩大知识面。
- 提升看系统源代码能力:从上层app->framework->kernel,没有捷径,需要花时间啃硬骨头。
- 脸皮厚!!不懂就问。