做嵌入式linux应用的开发已经三年多了。
接触过分别用Qtopia,PowerParts,GTK+作为GUI框架的嵌入式手持设备的设计。
去年十月Google开放了Android的应用开发的应用开发,不过是基于Java的,让我这个一直使用C/C++开发的十分不爽。
一年过去了,我也怀疑过Google开放代码的诚意,不够终于就在前几天,Source code终于千呼万唤始出来。
准备阅读其平台的源代码。由于一直是C/C++开发,JVM和一些基本的库都是用C/C++开发的。准备写一些文章关于Android的平台相关的开发,比如键盘驱动的集成,C语言开发的库与JVM之间的接口等。
初步看了下代码,framework下面的代码是作为一个想在Android C语言开发的很好的例子。
Android使用了DBUS,不过可能只给蓝牙的集成用的,不是作为最基本的IPC方式。
Android的hardware下面是硬件相关的一些接口,比如udev,power等。
不过奇怪的是Android居然没有采用HAL最为硬件的抽象层,而是写了一些C++的源代码进行包装,这个觉得不是非常elegant.
感觉代码写的还不错,据研究过的同事说,设计使用了很多的Design Patterns. GOF就是牛啊。