以前只是自己的興趣, 看過一點點 android的東西, 現在要正式的學習和使用了。
先了解一下差異吧,不知道未來的路在哪裏。
在kernel子目錄下存放的就是Android的Linux Kernel了, 通過和標準的Linux 2.6.25 Kernel的對比,我們可以發現,其主要增加了以下的內容:
1. 基於ARM架構增加Gold-Fish平臺,相應增加的目錄如下:
kernel/arch/arm/mach-goldfish
kernel/include/asm-arm/arch-goldfish
Gold-Fish平臺採用的是ARM926T CPU作爲BaseBand處理器, 該CPU主頻至少爲200M HZ. 採用MSM7201A CPU(ARM 11)作爲主CPU, 其主頻爲528M HZ.
2. 增加了yaffs2 FLASH文件系統,相應增加的目錄爲:
kernel/fs/yaffs2
實際上,Android包經過編譯後生成的system.img和ramdisk.img文件就是yaffs2格式的包.
3. 增加了Android的相關Driver,相應目錄爲:
kernel/drivers/android
主要分爲:
Android IPC系統: Binder
Android 日誌系統: Logger
Android 電源管理: Power
Android 鬧鐘管理: Alarm
Android 內存控制檯: Ram_console
Android 時鐘控制的gpio: Timed_gpio
4. 增加了switch處理, 相應的目錄爲:
kernel/drivers/switch/
5. 增加了一種新的共享內存處理方式, 相應增加的文件爲:
kernel/mm/ashmem.c
6. 其他爲Linux-2.6.25內核所做的補丁等等,例如BlueTooth, 在此不做詳細分析
另外GoldFish平臺相關的驅動文件如下:
1. 字符輸出設備:
kernel/drivers/char/goldfish_tty.c
2. 圖象顯示設備: (Frame Buffer)
kernel/drivers/video/goldfishfb.c
3. 鍵盤輸入設備:
kernel/drivers/input/keyboard/goldfish_events.c
4. RTC設備: (Real Time Clock)
kernel/drivers/rtc/rtc-goldfish.c
5. USB Device設備:
kernel/drivers/usb/gadget/android_adb.c
6. SD卡設備:
kernel/drivers/mmc/host/goldfish.c
7. FLASH設備:
kernel/drivers/mtd/devices/goldfish_nand.c
kernel/drivers/mtd/devices/goldfish_nand_reg.h
8. LED設備:
kernel/drivers/leds/ledtrig-sleep.c
9. 電源設備:
kernel/drivers/power/goldfish_battery.c
10. 音頻設備:
kernel/arch/arm/mach-goldfish/audio.c
11. 電源管理:
kernel/arch/arm/mach-goldfish/pm.c
12. 時鐘管理:
kernel/arch/arm/mach-goldfish/timer.c
1.應用程序