當前位置:首頁 » 安卓系統 » androidlinuxkernel

androidlinuxkernel

發布時間: 2023-04-28 04:18:51

Ⅰ 怎樣用git獲取指定的Android linux Kernel

進入kernel/common,這里不需要用到repo,直接用Git即可。
git clone git://android.git.kernel.org/kernel/common.git
這可能需要不少的時間,因為它會把整個Linux Kernel的代碼復制下來。
如果需要某個branch的代碼,用git checkout即可。比如我們剛剛拿了kernel/common.git的代碼,那就先進入到common目錄,然後用下面的命令:
git checkout origin/android-goldfish-2.6.27 -b goldfish
這樣我們就在本地建立了一個名為goldfish的android-goldfish-2.6.27分支,代碼則已經與android- goldgish-2.6.27同步。我們可以通過git branch來列出本地的所有分支。

root@localhost mydroid]#git clone git://android.git.kernel.org/kernel/common.git kernel

//把伺服器上的所有kernel都下載到本地kernel目錄,想只下載一個版本的kernel是不可能的因為伺服器上只有一個包含kernel的common.git文件,而沒有單個版本kernel的.git文件

[root@localhost mydroid]#cd kernel

[root@localhost kernel]# ls
arch CREDITS drivers include Kbuild MAINTAINERS net samples sound
block crypto firmware init kernel Makefile README scripts usr
COPYING Documentation fs ipc lib mm REPORTING-BUGS security virt
[root@localhost kernel]# git branch -a
* android-2.6.27
diff
remotes/origin/HEAD -> origin/android-2.6.27
remotes/origin/archive/android-2.6.25
remotes/origin/archive/android-2.6.27
remotes/origin/archive/android-2.6.29
remotes/origin/archive/android-2.6.32

Ⅱ Android操作系統是基於Linux Kernel是什麼意思

kernel(內核):是操作系統最基本的部分,是一個操作系統的核心。是基於硬體的第一層軟體擴充,提供操作系統的最基本的功能,是操作系統工作的基礎,它負責管理系統的進程、內存、內核體系結構、設備驅動程序、文件和網路系統,決定著系統的性能和穩定。
Linux內核:顧名思義即Linux系統的核心,是Linux操作系統最基本的部分,所謂內核通俗的講,就是負責硬體管理,為應用程序招供操作硬體的介面。
Android(安卓):
本質上是一個基於
Linux
內核上面運行的
java
虛擬機,實際上就是一個解釋程序。它相當於一個應用程序,應用程序要運行需要一個平台,這個平台是Linux內核。這就是Android操作系統是基於Linux
Kernel的意思。

Ⅲ Android操作系統是基於Linux Kernel是什麼意思

每一個操作系統都有不同的內核。像Windows每個版本的內核都不同,而Mac OX用的是Unix的內核,Linux用的是Linux內核。而Android操作系統的內核是Linux,但是他不是一種Linux操作系統。

Ⅳ 如何進入安卓手機linux內核

一、需要准備的東西

1
手機必須要Root,沒有的度娘解決。
2
首先安裝 終端模擬器 軟體,稍後有用,度娘一下搞凱廳定了。

3
然後是Busybox,這是一款高度集成的Linux小工具集合,也很容易找到,安裝好就行。

4
安裝Android VNC ,用於連接遠程桌面。

5

手機內核必須支持loop和ext2文件系統,實踐證明ext3,ext4也是可以的。
(1)檢驗是否支持loop設備
打開 終端模擬器,鍵入命令 ls /dev/block看是否有loopN設備,N是數字。
(2)ext支持不好確定,多數安卓都支持,畢竟是Linux系統出身嘛,後續交代。

6

由於sourceforge伺服器在地球的另一面的美國,所以訪問速度自然是不用吐槽的啦,不過還好鏡像伺服器還是不少的,可以網路搜索sorceforge鏡像
選擇你喜歡用的系統下載下來吧。
這里要下載兩個文件
(1)、鏡像文件
有三個版本,完整版(Large)、精簡版(smalll)、核心版(core)
可以在伺服器相應文件夾下找到zip文件,大小約500MB,解壓出來2GB左右。
* 註:完整版和精簡版有桌面程序,核心版只有命令行界面
(2)、腳本文件
在相應Linux發行版文件夾裡面找到,帶script的zip文件就是了,也下載下來。

END
二、後續操作

下載鏡像和腳本文件之後在/sdcard上創建一個文件夾,名字與相應的linux發行版名字相同,將下載到的zip文件解壓到此處,鏡像和腳本都要解壓到這個文件夾。
比如筆者的Ubuntu 10.04就是在/sdcard上創建一個名為ubuntu的文件夾,然後把ubuntu.img和ubuntu.sh解壓到/sdcard/ubuntu/即可。

然後就是最重要的一步修改腳本了,許多人不成功就是這里沒有修改了。
先看一下腳本文件吧!所有的腳本都是差不多的歐!盯塌隱
如圖

找到圖上第三行的位置,
mount -o remount,rw /dev/block/mmcblk0p5 /system
我們看到這是掛載/system為 可寫 狀態,但是這里卻是掛載的固定是'/dev/block/mmcblk0p5',這腫么可以??要知道安卓的硬體是遍地開花、各式各樣都有,/system的所在的設備也各不相同,比如我的是在/dev/block/mmcblk0p19,以前用的是mmcblk0p12,根本不可能統一的

所以我們需要找到/system究竟對應的是那個分區。
方法:給個比較可靠的方法吧,下載一個和你的手機相對應的刷機包,打開\META-INF\com\google\android\updater-script文件,搜索"/dev/block"關鍵字,找到一條與system相關的一行,看到了這樣一行
format("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "0", "/system");
那個帶/dev/block的那個就是你的system分區,用它來替換原來腳本的那一個 /dev/block/mmcblk0p5吧!
我的修改結果是
mount -o remount,rw /dev/block/platform/msm_sdcc.1/by-name/system /system
這里因人而異,不要照搬哦!

然後打開終端模擬器,測試一下
1.輸入 su 並回車,獲取root許可權
2.輸入 cd /sdcard/ubuntu 進入腳本文件所在目錄,這里ubuntu替換你創建的文件夾名字
3.輸入 sh ubuntu.sh ,運行ubuntu系統
到這里理論上是應該成功了
出現圖一這樣的情況時就要輸入解析度了,我的是1280x720,比較常用的還有800x600等
輸入1280x720 ,回車

等待出現 root@localhost:/# 你的Linux已經啟動成功啦
終端模擬器以經連接到ubuntu的終端了
但是沒有桌面讓我們怎樣愉快的玩耍呀?
所以打開AndroidVNC,配置一下 參數
Nickname:隨便寫
Password :你的Linux名稱,我的是ubuntu
Address : 因為是本機運行,所以寫 localhost 或者 127.0.0.1
Port : 默認5900
Username:root
Color Format : 24-color (4bpp)

然後點擊左上角Connect即可
然後就看衫旅見了我們期待已久的Ubuntu界面里

但是還有個問題,不支持中文是一個蛋疼的問題啊
所以在安卓系統上找個中文ttf(直接復制/system/fonts/DroidSansFallback.ttf也是可以的)放到/sdcard
進Linux系統後復制字體到
/usr/share/fonts/truetype/ttf-dejavu
重啟就能再見到親切的中文了!

在Linux界面下
1.音量鍵相當於鍵盤的上下箭頭↑↓
2.雙指可以縮放界面,雙指滑動可以滾屏
3.按下菜單鍵-send 可以 觸發特殊鍵 比如 ctrl + alt + delete 關機重啟
4.菜單鍵- Input Mode 可以選擇 滑鼠操作方式 , 推薦選擇touchPad 把觸屏當觸摸板用

Ⅳ android kernel和標准linux kernel的區別

android kernel和標准linux kernel的區別
總的區別可以歸納如下:
ARCH -- 這是Android修改了arch/arm下面的一些文件:
arch/arm:
Chg: arch/arm/kernel/entry-armv.S
Chg: arch/arm/kernel/mole.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/vfpmole.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/moleconfig.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
Scheler -- 對於Scheler的改變非常小,我對它並沒有去研究。
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 mole 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 moles 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.
(freedom_asic)

Ⅵ android kernel和標准linux kernel的區別

android kernel和標准linux kernel的區別

android kernel和標准linux kernel的區別
總的區別可以歸納如下:
ARCH -- 這是Android修改了arch/arm下面的一些檔案:
arch/arm:
Chg: arch/arm/kernel/entry-armv.S
Chg: arch/arm/kernel/mole.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/vfpmole.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/moleconfig.h
New: fs/yaffs2/yaffs_checkptrw.c
New: fs/yaffs2/yaffs_checkptrw.h
New: fs/yaffs2/yaffs_e.c
New: fs/yaffs2/yaffs_e.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_tagspat.c
New: fs/yaffs2/yaffs_tagspat.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/bfu *** .c
Chg: drivers/bluetooth/bt3c_cs.c
Chg: drivers/bluetooth/btu *** .c
Chg: drivers/bluetooth/hci_h4.c
Chg: drivers/bluetooth/hci_ll.c
Scheler -- 對於Scheler的改變非常小,我對它並沒有去研究。
Chg: kernel/sched.c

New Android Functionality -- 除了fix一些bug以及其他一些小的更改,Android增加了一些新的功能,介紹如下:
IPC Binder -- The IPC Binder is an Inter-Process Communication (IPC) mechani *** . It allows processes to provide services to other processes via a set of higher-level APIs than are available in standard Linux. An Inter search indicated that the Binder concept originated at Be, Inc., and then made its way into Palm's sofare, 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 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 aess 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 aess 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 mole 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 beeen a hardware device running Android and a developer writing applications on a desk PC.
drivers/u *** /gadget:
New: drivers/u *** /gadget/android.c
Chg: drivers/u *** /gadget/posite.c
Chg: drivers/u *** /gadget/f_acm.c
New: drivers/u *** /gadget/f_acm.h
New: drivers/u *** /gadget/f_adb.c
New: drivers/u *** /gadget/f_adb.h
New: drivers/u *** /gadget/f_mass_storage.c
New: drivers/u *** /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 moles 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 neorking.
(freedom_asic)

Android kernel是從linux kernel 修改過來的,大部分的核心沒什麼變化。Android廠商會定製原始碼修改驅動 或者增加新的特性等。

Ⅶ 安卓的 linux kernel是什麼意思

安卓本來就是構建在linux系統下的一個操作系帶正統。
它必須調用Linux內核指鍵才能運行。
linux kernel的意唯行巧思就是linux核心,是安卓系統的最底層。

Ⅷ 安卓系統是基於linux內核開發的,兩者的具體區別是什麼為什麼安卓多用於移動設備而linux不是

安卓基於linux內核,但是針對移動設備做了更多的優化,所以安卓多用於移動設備。兩者區別如下:

一、主體不同

1、安卓系統:是一種基於Linux的自由及開放源代碼的操作系統。

2、linux內核:是一套免費使用和自由傳播的類UNIX操作系統。

二、應用不同

1、安卓系統:主要使用於移動設備,如智能手機和平板電腦,由Google公司和開放手機聯盟領導及開發。

2、linux內核:是一個基於POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的Unix工具軟體、應用程序和網路協議。


三、特點不同

1、安卓系統:會同一系列核心應用程序包一起發布,該應用程序包包括客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯系人管理程序等。所有的應用程序都是使用JAVA語言編寫的。

2、linux內核:繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。

Ⅸ 安卓與Linux有什麼關系

安卓與Linux有什麼關系

按照是Linux核心但是借用了java虛擬機器技術,並組織編制的一個類Java作業系統。。。區別Linux的就是庫和使用者介面都是用的java技術。。。而Linux的桌面和api則是他們自身程式設計形成的。。。

Android是一種基於Linux的自由及開放原始碼的作業系統,主要使用於移動裝置,如智慧手機和平板電腦,由Google公司和開放手機聯盟領導及開發。
Android 是運行於Linux kernel之上,但並不是GNU/Linux。因為在一般GNU/Linux 里支援的功能,Android 大都沒有支援,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。Android 為了達到商業應用,必須移除被GNU GPL授權證所約束的部份,例如Android將驅動程式移到 Userspace,使得Linux driver 與 Linux kernel徹底分開。Bionic/Libc/Kernel/ 並非標準的Kernel header files。Android 的 Kernel header 是利用工具由 Linux Kernel header 所產生的,這樣做是為了保留常數、資料結構與巨集。
Android 的 Linux kernel控制包括安全(Security),儲存器管理(Memory Management),程式管理(Process Management),網路堆疊(Neork Stack),驅動程式模型(Driver Model)等。下載Android原始碼之前,先要安裝其構建工具 Repo來初始化原始碼。Repo 是 Android 用來輔助Git工作的一個工具。

Linux和安卓有什麼關系?

Linux與Androld的關系
雖然Android基於Linux核心,但是它與Linux之間還是有很大的差別,比如Android在Linux核心的基礎上添加了自己所特有的驅動程式。下面我們就來分析一下它們之間究竟有什麼千絲萬縷關系?
1 安卓為什麼會選擇Linux
成熟的作業系統有很多,比如Unix系統。但是Android為什麼選擇採用Linux核心呢?這就與Linux的一些特性有關了,比如:
(1)強大的記憶體管理和程序管理方案
(2)基於許可權的安全模式
(3)支援共享庫
(4)經過認證的驅動模型
(5)Linux本身就是開源專案
更多關於上述特性的資訊可以參考Linux 2.6版核心的官方文件,這便於我們在後面的學習中更好地理解Android所特有的功能特性。接下來分析Android與Linux真正的關系。
2Android不是Linu×
看到這個標題大家可能會有些迷惑,前面不是一直說Android是基於Linux核心的嗎,怎麼現在又不是Linux了?迷惑也是正常的,請先看下面幾個要點,然後我們將對每一個要點進
行分析,看完後你就會覺得Android不是Linux了。
①它沒有本地視窗系統
(1)它沒有glibc的支援
(2)它並不包括一整套標準的Linux使用程式
(3)它增強了Linux以支援其特有的驅動
1、它沒有本地視窗系統
什麼是本地視窗系統呢?本地視窗系統是指GNU/Linux上的X視窗系統,或者Mac OS的Quartz等。不同的作業系統的視窗系統可能不一樣,Android並沒有使用(也不需要使用)Linux的X視窗系統,這是Android不是Linux的一個基本原因。
2、它沒有glibc支援
由於Android最初用於一些便攜的移動裝置上,所以,可能出於效率等方面的考慮,Android並沒有採用glibc作為C庫,而是Google自己開發了一套Bionic Libc來代替glibc。
3、它並不包括一整套標準的Linux使用程式
Android並沒有完全照搬Linux系統的核心,除了修正部分Linux的Bug之外,還增加了不少內容,比如:它基於ARM構架增加的Gold-Fish平台,以及yaffs2 FLASH檔案系統等。
4、Android專有的驅動程式
除了上面這些不同點之外,Android還對Linux裝置驅動進行了增強,主要如下所示。
(1) Android Binder基於OpenBinder框架的一個驅動,用於提供Android平台的程序間通訊( InterProcess Communication,IPC)功能。原始碼位於
drivers/staging/android/binder.c。
(2) Android電源管理(PM) 一個基於標准Linux電源管理系統的輕量級Android電源管理驅動,針對嵌入式裝置做了很多優化。源伐碼位於:
Ⅰ kerneUpower/earlysuspend.c
Ⅱ kernel/power/consoleearlysuspend.c
Ⅲ kernel/power/fbearlysuspend.c
Ⅳ kemel/power/wakelock.c
Ⅴ kernel/power/userwakelock.c
(3)低記憶體管理器(Low Memory Killer) 比Linux的標準的OOM(Out Of Memory)機制更加靈活,它可以根據需要殺死程序以釋放需要的記憶體。原始碼位於
drivers/staging/android/lowmemorykiller.c.
(4)匿名共享記憶體(Ashmem) 為程序間提供大塊共享記憶體,同時為核心提供回收和管理這個記憶體的機制。原始碼位於mm/ashmem.c。
(5) Android PMEM (Physical) PMEM用於向用戶空間提供連續的實體記憶體區域,DSP和某些裝置只能工作在連續的實體記憶體上。原始碼位於drivers/misc/pmem.c。
(6) Android Logger -個輕量級的日誌裝置,用於抓取Android系統的各種日誌。原始碼位於drivers/staging/android/logger.c。
(7) Android Alarm捉供了一個定時器,用於把裝置從睡眠狀態喚醒,同時它還提供了一個即使在裝置睡眠時也會執行的時鍾基準。原始碼位於drivers/rtc/alarm.c。
(8) USB Gadget驅動一個基於標准Linux USB gadget驅動框架的裝置驅動,Android的USB驅動是基於gaeget框架的。原始碼位於drivers/u *** /gadget/。
(9) Android Ram Console為了提供除錯功能,Android允許將除錯日誌資訊寫入一個被稱為RAM Console的裝置里,它是一個基於RAM的Buffer。原始碼位於drivers/staging/android/ramL console.c。
(10) Android timed device提供了對裝置進行定時控制的功能,目前支援vibrator和LED裝置。原始碼位於drivers/staging/android /timed_output.c(timed_gpio.c)。
(11) Yaffs2檔案系統Android採用Yaffs2作為MTD nand flash檔案系統,原始碼位於fs/yaffs2/目錄下。Yaffs2是一個快速穩定的應用於NAND和NOR Flash的跨平台的嵌入式裝置檔案系統,同其他Flash檔案系統相比,Yaffs2能使用更小的記憶體來儲存其執行狀態,因此它佔用記憶體小。Yaffs2的垃圾回收非常簡單而且快速,因此能表現出更好的效能。Yaffs2在大容量的NAND Flash上的效能表現尤為突出,非常適合大容量的Flash儲存。上面這些要點足以說明Android不是Linux。

Linux與Androld的關系
雖然Android基於Linux核心,但是它與Linux之間還是有很大的差別,比如Android在Linux核心的基礎上添加了自己所特有的驅動程式。

Ubuntu與Linux有什麼關系

正如ls所說,linux有許多發行版本,比如redhat,debian,suse等。所以說debian是linux的一個發行版本,而ubuntu是debian的一個衍生版本。

Android System WebView與安卓7.0之間有什麼關系

1.主題面板管理器
在CM等一眾第三方系統中,早已支援便捷地修改桌布、圖示和系統顏色。在商店和論壇中,也能找到不少優質的面板主題。
而當我們提到原生Android,似乎總是長著一張固定的臉。實際上,在Google自家的AOSP(即Android開源專案)中,早已內建了主題管理。
而在Android M 的開發者預覽版中,也加入了主題管理器(可惜被需要Root和特定方式才能啟用)。既然系統內的面板主題框架早已搭建好,那就只等Google在Android系統中放出啦。
2.應用程式抽屜的消失
在2月26日,Google Map的官方Twitter釋出了一條介紹視訊,其中的展示機Nexus 6P的系統介面中,似乎看不到底部的應用抽屜按鈕了。發現問題的同學也開始集體留言質問:『WHERE IS THE APP DRAWER?!?!』
而在之前也確實有傳聞爆料:在新版Android N 中,或許會將應用抽屜的設計去除,選擇採用iOS和MIUI的應用呈現方式,即全部在桌面首頁中展示。
去除二級選單的做法,會帶來更加凌亂的桌面,還是更有效率的操作體驗?似乎很難定論,但作為Android玩家,大可選擇Nova啟動器等優秀的第三方桌面,而不必擔心我卓葯丸。
3.夜間模式會許要來了
在Android M 的開發者預覽版中,Dark Mode夜間模式曾短暫地出現過,而在正式版中又被砍去。
而最新的Android N 泄露圖中,黑色背景的右圖也表示著:夜間模式回歸Android了。
而更加值得期待的是,Google已經放出了夜間模式的開發程式碼,開發者可以輕松地為自己的應用設定『暗色主題』。也許今後只需輕按『夜間模式』的按鈕,從系統到各個應用,都能直接更換成夜間模式。
這一改變,不僅對於越來越多AMOLED螢幕手機而言,是省電的好方法。對於經常深夜玩手機的同學來說,似乎也可以和刺眼的白光說再見了。
4.分屏多工以及平板支援
在LG和三星都推出了『分屏模式』後,Google在Android N 中加入分屏功能也是眾望所歸了。同樣的,在上一個版本Android M 中,分屏模式也被隱藏起來,需要特定方式才能啟用。
不負眾望,來自Google的Pixel C 團隊在接受Reddit AMA論壇訪談時,確認了『split screen is in the works』。
而分屏多工,似乎在Android平板上也更加適用。值得一提的是,該團隊也宣稱Android系統的平板,在Android N 中將會更加好用,而不僅僅是將應用介面拉升就夠了。
但對於Chrome OS的聯動猜想、DPI切換和和介面的調整,似乎只能等Google I/O那
天,才知道答案。
5.支援觸控筆
在三星公布的文件中,我們發現三星在Android N 中,採用了系統自帶的觸控筆介面,而不再使用原先的S PEN專屬介面。
而在Android 5.0 (開始支援節電助手)之前,三星關閉了自家的節電模式介面。在Android 6.0 (開始支援指紋識別)之前,又關閉了自家的指紋識別介面。而在Android 7.0公布之前,三星又再一次關閉了自家的觸控筆介面,這……
6.更好的Doze省電模式
Doze省電模式首次出現在Android M 中,其省電原理是在裝置休眠時,關閉關閉應用後台,以達到省電的效果。
在親身體驗後,Doze模式確實發揮了很好的效果,起碼待機的時候不掉電了。但在目前這一功能,在操作體驗和使用者自定義方面,卻有些過於簡單了。
所以直到今天Android 6.0,我依然選擇綠色守護等第三方應用,去實現控制後台應用耗電的問題。但Root終歸有風險,而Android N 也有理由提供一個更好用的Doze省電模式。
7.重新設計的通知欄
在設計上,似乎能探尋的蛛絲馬跡,則是一張Android N 的通知欄模擬圖,國外媒體Android Police在看到開發樣機圖後,大致模擬出的新版介面截圖。
根據爆料,左圖通知欄目前已開始嘗試承載更多的資訊量,長按後即可檢視通知詳情。而在右圖顯示的快速設定頁面,將快捷按鈕鋪滿並支援分頁,而不像之前只支援固定數量的快捷按鈕。
8.更多玩法的指紋識別
隨著Nexus 5X和Nexus 6P的釋出,Google終於開始為Android提供指紋的支援。在Android 6.0中,關於指紋的介面也正在逐步完善。
在目前看來,似乎指紋最常用也僅限於Play Store和鎖屏應用中。期待在Android N 中,能通過指紋解鎖完成更多的事情,在iOS的Touch ID上,有許多值得借鑒的場景。也許之後Androidi使用者能通過指紋,便捷地檢視Google相簿中的隱私圖片,或者直接解鎖啟動私人應用。
9.為虛擬現實助力
我們知道,Google正嘗試著於打造一款,不需要額外硬體的頭戴式VR裝置。
而反觀目前市面上大部分VR產品,軟體部分的開發似乎都與Android系統多少有些聯絡,也許Google自家的VR裝置也需要Android的支援。
所以我們有理由相信,Google會為新版本的Android系統,在VR方向上提供更多系統層面的支援。
10.Now on Tap
Now on Tap作為Android M 的重磅功能,在去年收獲了業界好評。大致功能則是基於不同情景而直接提供對應資訊,通過識別你正在執行的app中的內容,提供針對性的建議和資料。
比如在網上聊天時,當聊到某部電影時,只需上滑Home鍵,關於電影的所有資訊就能直接呈現。
而在Android N 中,我們期待它能發揮更大用處。畢竟Now on Tap中『上下文感知』和『基於情景』都是是人類智慧的重要能力。
也許之後當我們開啟相機,它就能為你找尋鏡頭中包含的關鍵資訊。而不僅限於設定日歷提醒,或者幫你搜索維基網路那麼簡單。
綜上所述的大部分內容,都是我們作為Android老粉絲的期待和猜想。所有一切都要等到Google I/O 2016才會揭曉。
但不得不說的是,雖然在AppSo年度精選的Android榜中,絕大部分應用都採用了Material Design,但是直到今天,這一設計風格在動效和互動上,依然缺少一個完美的榜樣。
我們不會期待Android N 完全改頭換面,帶來全新的介面,但在圖示、按鈕、互動動畫和介面設計上,我們期待Google能做得更好。

Java和安卓有什麼關系

安卓就是Java寫的

c語言與安卓開發有什麼關系。

安卓的底層使用的是C語言開發的
所以會使用到C語言
另外安卓在嵌入式控制系統中
使用軟體控制嵌入式系統的時候會使用到NDK技術
這裡面也會使用到C語言開發

java和c 和安卓有什麼關系

它們都是計算機語言,c語言稱為底層架構與其他兩個語言沒多大關系,但是學了c後掌握java就很快啦。java是安卓的基礎,安卓是基於java平台來編寫的。

熱點內容
綠盤爆緩存 發布:2025-07-13 08:31:47 瀏覽:278
核顯用存儲 發布:2025-07-13 08:31:45 瀏覽:193
為什麼登號時顯示伺服器維護 發布:2025-07-13 08:21:44 瀏覽:893
電腦區域網連接伺服器卡頓 發布:2025-07-13 08:17:29 瀏覽:13
伺服器快閃記憶體可以用於台式電腦嗎 發布:2025-07-13 08:17:24 瀏覽:981
沃爾瑪的資料庫 發布:2025-07-13 08:07:39 瀏覽:190
c語言的search函數 發布:2025-07-13 08:06:56 瀏覽:698
有線網路伺服器連不上怎麼辦 發布:2025-07-13 08:02:39 瀏覽:244
怎麼上傳icloud 發布:2025-07-13 07:44:26 瀏覽:435
請用JAVA 發布:2025-07-13 07:41:06 瀏覽:927