转眼间工作已两年了,这期间收获很多,只是没有写成博客和大家分享出来(其实我一直在本地用为知笔记软件记录的笔
记)。后面我会坚持写博客的,把自己的一些心得感悟分享出来,也许这也是一种学习吧。首先分享工作和学习经历吧,呵呵
一、工作第一年(2014-2015.5)
这一年做的是硬件方面的工作,领导和同事都很热情,只是画板终究不是我喜欢的。这一年画了N多块PCB板,画板方面进步很
快。此外除了画低速PCB外,业余时间,我也自学了高速PCB的设计。当时计划自己画一个s5pv210的核心板,虽然核心板布线是
完成了,但是在网上搜了一下打样费用,大概要了我一半的工资,还是算了吧。后来,我买了一块友善的ARM9开发板,开始了系统
学习arm linux方面的知识(之前大学期间有练过S5pv210开发板,但基础不够,就先吃灰了)。从买了ARM9开发板后,下班后我就
按着教程一步步熟悉开发流程,这样坚持了几个月,但长期1点左右休息,导致身体变差。尤让我记忆犹新的是2014年的十一长
假,我竟然在宿舍调了7天的Uboot,硬生生的把床坐出了一个坑来,结果最后还没调试成功。后来uboot->kernel->rootfs,这一
套打下来,我也熟悉了一般的开发流程(笔记都在笔记软件上,呵呵、、后面我自己做个板,重新在来一遍)。后来开始研究Linux
0.11 kernel 代码,由于时间有限,我也就研究了内存管理,文件系统,2大子系统。
二、工作第二年(2015.6-2016.6)
这一年我从事了自己热爱的嵌入式行业,走进了《老罗的Android之旅》,也拜访了邓凡平老师的《深入理解Android》,等一系列大神的博客。他们的无私奉献,让我们这些程序员们收获颇多,这里感谢他们的付出。为了能够记录自己的成长,结合自己当前负责的Camera模块,将按着下面几个方面循序渐进,重新学习一下,也给自己一个重新写博客的机会。Come on!
- 基础知识:
1)C++基础知识学习(这在学习framwork方面的代码是非常重要的)
2)数据结构基础,常用的那几种树的理解和实现(红黑树后面遇到很多)
3)设计模式(Android大量使用了设计模式,很有必要研究)
4)Android常用几个类的认识(sp,RefBase,thread,等等)
- 进阶知识:
1)Linux内存管理
2)android 共享内存,ION机制
3)Binder知识梳理
4)android 显示系统的理解(主要是和上面相关的buffer有关)
5)Camera模块framwork,native代码分析
上面这几个"进阶知识"是我目前最想了解的,后面其它的模块,有记录我会在补充上去。