最近阿里的云溪大會結(jié)束了,朵唯發(fā)布了唯一的一款云os的手機,各種炫各種吊,不過就宣傳來看,似乎,它并非基于Android系統(tǒng),那么阿里云OS究竟是從何而來?它和Android原生系統(tǒng)有何區(qū)別呢?一起來看看。 其實關(guān)于阿里云OS和Android之爭早在兩年前就開始了,Android開發(fā)領(lǐng)頭人Andy Rubin在其Google+主頁中這樣寫道:“阿里云系統(tǒng)采用了谷歌Android系統(tǒng)的運行環(huán)境,明顯是由Android系統(tǒng)修改得來。”Andy Rubin還稱,事實是,阿里云系統(tǒng)包含了Android中運行環(huán)境,明顯是從Android中演變而來,但無法與Android兼容。基于Google對阿里云網(wǎng)站上應(yīng)用的分析,這個平臺嘗試與Android兼容,但未能成功。 那么,阿里云OS到底是不是Android以外的東西呢,通過一些技術(shù)手段可以來驗證一下,我們使用某使用阿里云OS的刷機包來驗證,首先我們將.zip包打開看看。 解開看大目錄的結(jié)構(gòu):
mp39202314_1446440547421_2.jpeg (26.88 KB, 下載次數(shù): 7)
下載附件
保存到相冊
2015-11-2 13:39 上傳
根目錄下是一個boot.img,這就是Android系統(tǒng)的bootloader,也就是啟動分區(qū)。另外有個system目錄,這就是Android系統(tǒng)的system分區(qū)。進入system目錄往下看:
mp39202314_1446440547421_3.jpeg (35.69 KB, 下載次數(shù): 8)
下載附件
保存到相冊
2015-11-2 13:39 上傳
這里和Android ROM的目錄結(jié)構(gòu)是一模一樣的,各位可以自己找個Android ROM對比以下。核心的幾個目錄: app:存放ROM預(yù)裝的app bin:系統(tǒng)進程的目錄 framwork: Android Framework目錄,就是Android應(yīng)用程序運行所需要的庫文件的目錄 lib: so庫文件目錄,相當(dāng)于Windows的system32目錄 咱們再進到app目錄看一下:
mp39202314_1446440547421_4.jpeg (72.11 KB, 下載次數(shù): 7)
下載附件
保存到相冊
2015-11-2 13:39 上傳
好,看出區(qū)別來了,Android下所有的app都是以apk結(jié)尾的,前一篇帖子用的ROM就是Android的ROM,里面對應(yīng)這張圖里的文件就都是apk的。這里怎么都是lar呢?這就是阿里云OS和Android不同的地方了,因為apk是Dalvik虛擬機管理應(yīng)用程序的文件格式,阿里云自己搞了個虛擬機,用lar文件來管理。lar文件和apk文件有什么不同?我們知道apk文件其實就是一個zip文件,用WinRAR可以直接打開看,那lar文件呢?用WinRAR果然也可以直接打開:
mp39202314_1446440547421_5.jpeg (36.99 KB, 下載次數(shù): 6)
下載附件
保存到相冊
2015-11-2 13:39 上傳
做過Android開發(fā)的人一看到這個目錄結(jié)構(gòu)就發(fā)現(xiàn),它和apk的目錄結(jié)構(gòu)基本上是一模一樣的,除了Android應(yīng)用的classes.dex文件變成了classes.lex。那所謂的lex文件是不是就是把dex文件換了個名字呢?我們用二進制比較一下:
mp39202314_1446440547421_6.jpeg (25.51 KB, 下載次數(shù): 7)
下載附件
保存到相冊
2015-11-2 13:39 上傳
左邊的是Android應(yīng)用的dex文件,右邊的是阿里云應(yīng)用的lex文件??梢姡募袷揭呀?jīng)完全不一樣了。 好,app的不同已經(jīng)看出來了,我們再來看系統(tǒng)核心進程有什么不同。進入到/system/bin目錄:
mp39202314_1446440547421_7.jpeg (65 KB, 下載次數(shù): 6)
下載附件
保存到相冊
2015-11-2 13:39 上傳
熟悉Android系統(tǒng)的人一眼就能看出來,am, app_process之類的名字都是Android核心進程的名字。多出來了幾個:cloudserver, chpasswd.cgi之類,看來這就是阿里云所謂的“云服務(wù)”的核心進程了。 好,文件的比較就到這里,那現(xiàn)在基本上可以下結(jié)論了,一個完整的Android系統(tǒng),包括以下幾個部分: 1. bootloader:用來啟動操作系統(tǒng) 2. kernel:系統(tǒng)內(nèi)核 3.核心進程,就是/system/bin下面那堆東西 4. so庫:系統(tǒng)運行基礎(chǔ),就是/system/lib下面那堆東西 5. Android虛擬機,所有的上層應(yīng)用都是靠虛擬機來運行的 6. Android Framework:所有的上層應(yīng)用都是通過調(diào)用Framework來實現(xiàn)功能的,就是/system/framework下面那堆東西 7.上層應(yīng)用,比如說桌面Launcher,撥號,短信,通訊錄之類,就是/system/app下面那堆東西 那么,阿里云OS,在上面7個部分中,虛擬機用的是自己的,上層應(yīng)用是自己定制的,另外額外加了一個“云服務(wù)”,其余部分都是用的Android的。它和Android是什么關(guān)系已經(jīng)很清楚了。 那順便八卦一下,為什么阿里云要搞成這個樣子呢?說來就話長了,話說當(dāng)年阿里云剛成立的時候,還是很有追求滴,當(dāng)時收購了一家國內(nèi)做Java虛擬機的公司(叫“猛犸科技”),同時還找了一幫MOTO做Linux內(nèi)核的人,想搞個自己的操作系統(tǒng)出來。阿里云的CEO叫王堅,和李開復(fù)一樣都是從微軟研究院出身,但是頗看不起李開復(fù)搞的“點心OS”,認(rèn)為“拿個Android來改一改,多土??!我們要搞自己的操作系統(tǒng)!”于是呢,阿里云的一幫人就吭哧吭哧搞“自己的操作系統(tǒng)”了。結(jié)果呢,大家腳趾頭都能想到,從頭搞一個操作系統(tǒng)哪有那么容易,做了半年沒做出來,咋給馬云交差呢?于是也顧不上土不土了,拿Android改吧。虛擬機是現(xiàn)成的,那就換掉Android的虛擬機吧,好歹能算是自己的工作成果。但光換個虛擬機意義也不大啊,HTML5和WebOS的概念比較新潮,那就再加個“云服務(wù)”的概念吧,也算是國內(nèi)HTML5的倡導(dǎo)者了。HTML5通過瀏覽器引擎跑,性能肯定比不上原生應(yīng)用,那怎么保證操作流暢呢(特別是桌面Launcher,天天用,要是太卡,用戶就瘋了),那還是用原生應(yīng)用來實現(xiàn)吧……于是,最后阿里云OS就長成現(xiàn)在這樣了。
在電視&盒子上也是有很多yunos系統(tǒng)的設(shè)備的,還好這些設(shè)備大都能安裝當(dāng)貝市場,從而也避免了機子上資源少的問題了。
QQ截圖20150815090957.png (479.94 KB, 下載次數(shù): 6)
下載附件
保存到相冊
2015-11-2 13:40 上傳
|