作为一个编写过ARM教程和Android产品开发者而言。你在单片机的相关知识,在Android底层是绝对有用的。
这个里底层是指内核接口以下的程序。以上包括Android HAL驱动(就是linux C程序编写,跟硬件控件没太多直接联系),Android 的框架和Android的应用。这一类开发对你而且是全新的东西。
而底层的程序包括,内核,bootloader和驱动。基本开发Android硬件产品公司主要需要这一类人。
而不同产品中,内核和bootloader变化较小,主要的工作量是在驱动之上。驱动相当于 单片机程序+linux内核接口。
但是从单片机转型为Linux驱动开发的,几个主要问题的,是代码量急剧增加,在单片机中有一些习惯在驱动开发里变成致命的陷阱。比如不喜欢用宏,在驱动大量用到内核复杂结构而单片机往往自写,还有一个并发处理,也是一个难点。 我教过很多想单片机转型成Linux的工程师。这一些东西往往很难改变,有时难得有人就放弃,还是回去做单片机开发了。