當前位置:編程學習大全網 - 編程語言 - 嵌入式linux和嵌入式android系統有什麽區別和聯系

嵌入式linux和嵌入式android系統有什麽區別和聯系

嵌入式android源碼架構:uboot+linux kernel+android(包含文件系統,虛擬機,UI)

嵌入式linux:這是大部分人認識的linux uboot+linux kernel+文件系統+QT(UI),

當然兩者的linux 內核因為上層UI的不同會稍有差別,不過還是非常接近的,做過linux的人可以無縫切換到android底層開發,所以大家說的學習android系統,其實最重要的就是學習linux驅動,再加壹下android下的專門的HAL,JNI,java等等,不過大公司android相關部分也是專門的人做的了。

甚至連QT都不用了,因為linux很多設備都是沒有UI的,所以要來幹啥?直接無界面,照樣是嵌入式linux。

現在大家說的什麽嵌入式debian,ubuntu,其實也是站在linux巨人的肩膀上,其實都不算是linux的分支,只算是linux的延伸,小變化而已。看到這裏大家知道嵌入式linux的強大了吧,反正是比wince 強大N倍啊。

O(∩_∩)O~,所以啊,學習嵌入式android,其實底下就是學習uboot,linux內核啊,不會搞這些就像搞應用壹樣,所以大家以為android就是java,是非常片面的。

以前老的,說了壹下區別,可以參考壹下

ARCH -- 這是Android修改了arch/arm下面的壹些文件:

arch/arm:

Chg: arch/arm/kernel/entry-armv.S

Chg: arch/arm/kernel/module.c

Chg: arch/arm/kernel/process.c

Chg: arch/arm/kernel/ptrace.c

Chg: arch/arm/kernel/setup.c

Chg: arch/arm/kernel/signal.c

Chg: arch/arm/kernel/traps.c

Chg: arch/arm/mm/cache-v6.S

Chg: arch/arm/vfp/entry.S

Chg: arch/arm/vfp/vfp.h

Chg: arch/arm/vfp/vfphw.S

Chg: arch/arm/vfp/vfpmodule.c

Goldfish -- 這是Android為了模擬器所開發的壹個虛擬硬件平臺。Goldfish執行arm926T指令(在2.6.29中,goldfish也支持ATMv7指令),但是在實際的設備中,該虛擬平臺的文件不會被編譯。

arch/arm/mach-goldfish:

New: arch/arm/mach-goldfish/audio.c

New: arch/arm/mach-goldfish/board-goldfish.c

New: arch/arm/mach-goldfish/pdev_bus.c

New: arch/arm/mach-goldfish/pm.c

New: arch/arm/mach-goldfish/switch.c

New: arch/arm/mach-goldfish/timer.c

YAFFS2 -- 和PC把文件存儲在硬盤上不壹樣, 移動設備壹般把Flash作為存儲設備。尤其是NAND flash應用非常廣泛(絕大多數手機用的都是NAND flash,三星的壹些手機使用的是OneNAND)。NAND flash具有低成本和高密度的優點。

YAFFS2 是“Yet Another Flash File System, 2nd edition" 的簡稱。 它提供在Linux內核和NAND flash設備 之前高效率的接口。 YAFFS2並沒有包含在標準的Linux內核中, Google把它添加到了Android的kernel

fs/yaffs2:

New: fs/yaffs2/devextras.h

New: fs/yaffs2/Kconfig

New: fs/yaffs2/Makefile

New: fs/yaffs2/moduleconfig.h

New: fs/yaffs2/yaffs_checkptrw.c

New: fs/yaffs2/yaffs_checkptrw.h

New: fs/yaffs2/yaffs_ecc.c

New: fs/yaffs2/yaffs_ecc.h

New: fs/yaffs2/yaffs_fs.c

New: fs/yaffs2/yaffs_getblockinfo.h

New: fs/yaffs2/yaffs_guts.c

New: fs/yaffs2/yaffs_guts.h

New: fs/yaffs2/yaffsinterface.h

New: fs/yaffs2/yaffs_mtdif1.c

New: fs/yaffs2/yaffs_mtdif1.h

New: fs/yaffs2/yaffs_mtdif2.c

New: fs/yaffs2/yaffs_mtdif2.h

New: fs/yaffs2/yaffs_mtdif.c

New: fs/yaffs2/yaffs_mtdif.h

New: fs/yaffs2/yaffs_nand.c

New: fs/yaffs2/yaffs_nandemul2k.h

New: fs/yaffs2/yaffs_nand.h

New: fs/yaffs2/yaffs_packedtags1.c

New: fs/yaffs2/yaffs_packedtags1.h

New: fs/yaffs2/yaffs_packedtags2.c

New: fs/yaffs2/yaffs_packedtags2.h

New: fs/yaffs2/yaffs_qsort.c

New: fs/yaffs2/yaffs_qsort.h

New: fs/yaffs2/yaffs_tagscompat.c

New: fs/yaffs2/yaffs_tagscompat.h

New: fs/yaffs2/yaffs_tagsvalidity.c

New: fs/yaffs2/yaffs_tagsvalidity.h

New: fs/yaffs2/yportenv.h

Bluetooth -- Google為Bluetooth打上了patch,fix了壹些Bluetooth的bug

drivers/bluetooth:

Chg: drivers/bluetooth/bfusb.c

Chg: drivers/bluetooth/bt3c_cs.c

Chg: drivers/bluetooth/btusb.c

Chg: drivers/bluetooth/hci_h4.c

Chg: drivers/bluetooth/hci_ll.c

Scheduler -- 對於Scheduler的改變非常小,我對它並沒有去研究。

Chg: kernel/sched.c

New Android Functionality -- 除了fix壹些bug以及其他壹些小的更改,Android增加了壹些新的功能,介紹如下:

IPC Binder -- The IPC Binder is an Inter-Process Communication (IPC) mechanism. It allows processes to provide services to other processes via a set of higher-level APIs than are available in standard Linux. An Internet search indicated that the Binder concept originated at Be, Inc., and then made its way into Palm's software, before Google wrote a new Binder for Android.

New: drivers/staging/android/binder.c

Low Memory Killer -- Android adds a low-memory killer that, each time it's called, scans the list of running Linux processes, and kills one. It was not clear in our cursory examination why Android adds a low-memory killer on top of the already existing one in the standard Linux kernel.

New: drivers/staging/android/lowmemorykiller.c

Ashmem -- Ashmem is an Anonymous SHared MEMory system that adds interfaces so processes can share named blocks of memory. As an example, the system could use Ashmem to store icons, which multiple processes could then access when drawing their UI. The advantage of Ashmem over traditional Linux shared memory is that it provides a means for the kernel to reclaim these shared memory blocks if they are not currently in use. If a process then tries to access a shared memory block the kernel has freed, it will receive an error, and will then need to reallocate the block and reload the data.

New: mm/ashmem.c

RAM Console and Log Device -- To aid in debugging, Android adds the ability to store kernel log messages to a RAM buffer. Additionally, Android adds a separate logging module so that user processes can read and write user log messages.

New: drivers/staging/android/ram_console.c

Android Debug Bridge -- Debugging embedded devices can best be described as challenging. To make debugging easier, Google created the Android Debug Bridge (ADB), which is a protocol that runs over a USB link between a hardware device running Android and a developer writing applications on a desktop PC.

drivers/usb/gadget:

New: drivers/usb/gadget/android.c

Chg: drivers/usb/gadget/composite.c

Chg: drivers/usb/gadget/f_acm.c

New: drivers/usb/gadget/f_acm.h

New: drivers/usb/gadget/f_adb.c

New: drivers/usb/gadget/f_adb.h

New: drivers/usb/gadget/f_mass_storage.c

New: drivers/usb/gadget/f_mass_storage.h

Android also adds a new real-time clock, switch support, and timed GPIO support. We list the impacted files for these new modules at the end of this document.

Power Management -- Power management is one of the most difficult pieces to get right in mobile devices, so we split it out into a group separate from the other pieces. It's interesting to note that Google added a new power management system to Linux, rather than reuse what already existed. We list the impacted files at the end of this document.

kernel/power:

New: kernel/power/consoleearlysuspend.c

New: kernel/power/earlysuspend.c

New: kernel/power/fbearlysuspend.c

Chg: kernel/power/main.c

Chg: kernel/power/power.h

Chg: kernel/power/process.c

New: kernel/power/userwakelock.c

New: kernel/power/wakelock.c

Miscellaneous Changes -- In addition to the above, we found a number of changes that could best be described as, 'Miscellaneous.' Among other things, these changes include additional debugging support, keypad light controls, and management of TCP networking

/c ... id-to-a-new-device/

/smallbigwang/item/95c99ebcb0e9544cba0e1281

  • 上一篇:三坐標測量儀的儀器簡介
  • 下一篇:柏翠面包機怎麽樣
  • copyright 2024編程學習大全網