關閉→
當前位置:知科普>綜合知識>android與linux的關係

android與linux的關係

知科普 人氣:2.54W

android與linux的關係

安卓是基於linux內核的自由及開發源代碼的操作系統,但是並不能將安卓直接理解為linux系統;Linux發行版中的軟件通常只收錄經過開源社區審核過的開源軟件,或者經過商業機構審核的閉源軟件,而安卓上面的軟件基本都是閉源的,而且針對這些軟件基本沒有審核機制。

小編還為您整理了以下內容,可能對您也有幫助:

Linux和安卓具體是存在什麼關係

Android一種基於Linux的自由及開放源代碼的操作系統。Linux操作系統的內核,安卓則是基於Linux內核開發的操作系統,安卓在Linux的基礎上提供了驅動以及用户編程接口。

操作系統管理計算機硬件與軟件資源的計算機程序,同時也是計算機系統的內核與基石。操作系統需要處理如管理與配置內存、決定系統資源供需的優先次序、控制輸入設備與輸出設備、操作網絡與管理文件系統等基本事務。操作系統也提供一個讓用户與系統交互的操作界面。

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 所產生的,這樣做是為了保留常數、數據結構與宏。

擴展資料

APK安卓應用的後綴,是AndroidPackage的縮寫,即Android安裝包(apk)。APK是類似Symbian Sis或Sisx的文件格式。通過將APK文件直接傳到Android模擬器或Android手機中執行即可安裝。

apk文件和sis一樣,把android sdk編譯的工程打包成一個安裝程序文件,格式為apk。 APK文件其實是zip格式,但後綴名被修改為apk,通過UnZip解壓後,可以看到Dex文件,Dex是Dalvik VM executes的全稱,即Android Dalvik執行程序,並非Java ME的字節碼而是Dalvik字節碼。

Android在運行一個程序時首先需要UnZip,然後類似Symbian那樣直接執行安裝,和Windows Mobile中的PE文件有區別;

這樣做對於程序的保密性和可靠性不是很高,通過dexmp命令可以反編譯,但這樣做符合發展規律,微軟的 Windows Gadgets或者説WPF也採用了這種構架方式。

在Android平台中dalvik vm的執行文件被打包為apk格式,最終運行時加載器會解壓然後獲取編譯後androidmanifest.xml文件中的permission分支相關的安全訪問,但仍然存在很多安全,如果你將apk文件傳到/system/app文件夾下會發現執行是不受的。

最終平時安裝的文件可能不是這個文件夾,而在android rom中系統的apk文件默認會放入這個文件夾,它們擁有着root權限。

參考資料:百度百科-Android(Google公司開發的操作系統)

參考資料:百度百科-操作系統

android系統是基於Linux對嗎

Android是一種基於Linux的自由及開放源代碼的操作系統。

主要使用於移動設備,如智能手機和平板電腦,由Google公司和開放手機聯盟領導及開發。尚未有統一中文名稱,中國地區較多人使用“安卓”。Android操作系統最初由Andy Rubin開發,主要支持手機。

擴展資料:

平台優勢:

在優勢方面,Android平台首先就是其開放性,開發的平台允許任何移動終端廠商加入到Android聯盟中來。顯著的開放性可以使其擁有更多的開發者,隨着用户和應用的日益豐富,一個嶄新的平台也將很快走向成熟。

開放性對於Android的發展而言,有利於積累人氣,這裏的人氣包括消費者和廠商,而對於消費者來講,最大的受益正是豐富的軟件資源。開放的平台也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。

參考資料來源:百度百科——android系統

安卓與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平台來編寫的。

TAG標籤:#linux #android #