標籤:

為什麼阿里雲 OS 兼容 Android Apps 令人不齒?

見這裡的答案:

http://www.zhihu.com/question/20477477


最近好像阿里雲又被翻出來了曬,原因估計就是阿里雲OS的3.0吧,還有就是和魅族先互掐再合作的奇葩合作方式(利益為先),阿里想的挺美好,但是用戶雲的稀少是很難改變的,即便是通過魅族,說句老實話,魅族應該沒有小米賣的好。

那麼問題來了:

  1. 為什麼阿里雲OS就是不肯(不敢)和Android對比源代碼,總是在關鍵問題上閃爍其詞?光從這一點,就和某些政府做事一個德行,轉移話題,主次顛倒,迴避主要問題,不免讓人生疑。
  2. 如果魅族用了阿里雲OS,還會有人買嗎?
  3. 我們是不是忽略了政府強制執行使用YunOs的這種可能性(比如類似政府員工不能用iPhone之類的規定……)

題外貼張圖:

直逼iphone6……不知道雲OS是不是也是直逼Android呢……真的好複雜的心情啊,想支持你,但是你所謂的追求極致,就是TM的直逼iPhone6?你TM的直逼iPhonePlus我也忍了啊!!---------------------------------------------以前的回答繼續的分割線------------------------------------------------

我來說說我的看法,我朋友有買過阿里雲的手機,那個時候天語的一款數碼W開頭的,應該是W700什麼的,我用來把玩了一段時間,沒多久就還掉了,因為這根本就是一個全是阿里服務的手機(聊天工具,瀏覽器,電話薄,網盤……無一不是阿里的產品,當時我的第一反應就是,打著雲服務和自主研發的噱頭騙錢而已——有點偏激)

具體的手機底層代碼方面我不是很懂,但是看他們的一些消息應該可以看出點什麼。

  1. 阿里手機與卓普、夏新、基伍、康佳、小辣椒等5家國內手機廠商合作,推出6款手機。(請問在坐的各位有幾個人是用這些品牌手機的?小辣椒?基伍?卓普?在這條新聞之前,我居然沒聽說過這三個品牌……我是孤陋寡聞么?)為什麼不是其他更響亮的品牌呢?

  2. 他們在官網賣手機的描述:什麼視頻王,遊戲王,娛樂王者……頁面充斥著令人犯惡的廣告宣傳語,山寨氣息濃厚,不經令我想到了998的候總……
  3. 再來看看這篇文章(我直接搬運過來了):阿里雲OS和Android的關係
    1. 近日,有關谷歌Android和阿里雲的爭論鬧得沸沸揚揚,谷歌高管、Android開發領頭人Andy Rubin在其Google+主頁中這樣寫道:阿里雲系統採用了谷歌Android系統的運行環境,明顯是由Android系統修改得來。

        Andy Rubin稱,事實是,阿里雲系統包含了Android中運行環境,明顯是從Android中演變而來,但無法與Android兼容。基於Google對阿里雲網站上應用的分析,這個平台嘗試與Android兼容,但未能成功。

        阿里雲OS到底是不是Android以外的東西,筆者通過技術手段對其進行一些分析。天語W700是一款使用了「阿里雲OS操作系統」的手機,筆者找到一個天語W700手機的阿里雲OS的刷機包。打開粗粗看一下,和Android的刷機包沒兩樣。裡面的應用全部是apk,這意味著它們都是以Dalvik可執行文件的形式存在的。

      Build.prop裡面也指出是,Android2.2

      接下去來找其中的c library,因為我們知道,Android是在Linux內核之上運行了一套Google自己組織起來的架構。和通常意義上的GNU Linux一樣,這個架構里最基礎的東西之一就是C運行庫。

        GNU Linux的C運行庫是Glibc,而Android用的是Bionic。通過使用自己組織,編寫的代碼,Android可以從這一層以上避開GPL協議不允許發布者擁有保密源代碼權利的限制。

        找到其中的lib/libc.so,也就是C運行庫,用readelf查看它的符號表(這麼做不涉及反向工程),可以在找到」bionic」。說明它的C運行庫很可能是bionic。

      內核是linux kernel,基礎的C運行庫是Bionic,有Dalvik,上層的應用全部是Dex格式,這些東西說明W700上的「阿里雲OS操作系統」不太可能是Android以外的東西。

        當然以上的內容無法用於推測,這麼做是否與Android的授權協議產生了矛盾。但是有一件事情比較明確,如果提供這個手機的廠商沒有提供其中linux kernel的源代碼,那很可能是非法的。

        更新:上篇用的ROM是錯的,是Android的刷機包,不是官方原生的雲OS的ROM,所以論據是錯的。這裡用官方原生雲OS的ROM分析一下,到底阿里雲OS和Android之間是什麼關係。

        解開看大目錄的結構:

      根目錄下是一個boot.img,這就是Android系統的bootloader,也就是啟動分區。另外有個system目錄,這就是Android系統的system分區。進入system目錄往下看:

      這裡和Android ROM的目錄結構是一模一樣的,各位可以自己找個Android ROM對比以下。核心的幾個目錄:

        app: 存放ROM預裝的app

        bin: 系統進程的目錄

        framwork: Android Framework目錄,就是Android應用程序運行所需要的庫文件的目錄

        lib: so庫文件目錄,相當於Windows的system32目錄

        咱們再進到app目錄看一下:

       好,看出區別來了,Android下所有的app都是以apk結尾的,前一篇帖子用的ROM就是Android的ROM,裡面對應這張圖裡的文件就都是apk的。這裡怎麼都是lar呢?這就是阿里雲OS和Android不同的地方了,因為apk是Dalvik虛擬機管理應用程序的文件格式,阿里雲自己搞了個虛擬機,用lar文件來管理。lar文件和apk文件有什麼不同?我們知道apk文件其實就是一個zip文件,用WinRAR可以直接打開看,那lar文件呢?用WinRAR果然也可以直接打開:

      做過Android開發的人一看到這個目錄結構就發現,它和apk的目錄結構基本上是一模一樣的,除了Android應用的classes.dex文件變成了classes.lex。那所謂的lex文件是不是就是把dex文件換了個名字呢?我們用二進位比較一下:

      左邊的是Android應用的dex文件,右邊的是阿里雲應用的lex文件。可見,文件格式已經完全不一樣了。

        好,app的不同已經看出來了,我們再來看系統核心進程有什麼不同。進入到/system/bin目錄:

      熟悉Android系統的人一眼就能看出來,am, app_process之類的名字都是Android核心進程的名字。多出來了幾個:cloudserver, chpasswd.cgi之類,看來這就是阿里雲所謂的「雲服務」的核心進程了。

        好,文件的比較就到這裡,那現在基本上可以下結論了,一個完整的Android系統,包括以下幾個部分:

        1. bootloader:用來啟動操作系統

        2. kernel: 系統內核

        3. 核心進程,就是 /system/bin 下面那堆東西

        4. so庫: 系統運行基礎,就是 /system/lib 下面那堆東西

        5. Android虛擬機,所有的上層應用都是靠虛擬機來運行的

        6. Android Framework: 所有的上層應用都是通過調用Framework來實現功能的,就是 /system/framework下面那堆東西

        7. 上層應用,比如說桌面Launcher, 撥號,簡訊,通訊錄之類,就是/system/app下面那堆東西

        那麼,阿里雲OS,在上面7個部分中,虛擬機用的是自己的,上層應用是自己定製的,另外額外加了一個「雲服務」,其餘部分都是用的Android的。它和Android是什麼關係已經很清楚了。

        那順便八卦一下,為什麼阿里雲要搞成這個樣子呢?說來就話長了,話說當年阿里雲剛成立的時候,還是很有追求滴,當時收購了一家國內做Java虛擬機的公司(叫「猛獁科技」),同時還找了一幫MOTO做Linux內核的人,想搞個自己的操作系統出來。阿里雲的CEO叫王堅,和李開復一樣都是從微軟研究院出身,但是頗看不起李開復搞的「點心OS」,認為「拿個Android來改一改,多土啊!我們要搞自己的操作系統!」於是呢,阿里雲的一幫人就吭哧吭哧搞「自己的操作系統」了。結果呢,大家腳趾頭都能想到,從頭搞一個操作系統哪有那麼容易,做了半年沒做出來,咋給馬雲交差呢?於是也顧不上土不土了,拿Android改吧。虛擬機是現成的,那就換掉Android的虛擬機吧,好歹能算是自己的工作成果。但光換個虛擬機意義也不大啊,HTML5和WebOS的概念比較新潮,那就再加個「雲服務」的概念吧,也算是國內HTML5的倡導者了。HTML5通過瀏覽器引擎跑,性能肯定比不上原生應用,那怎麼保證操作流暢呢(特別是桌面Launcher,天天用,要是太卡,用戶就瘋了),那還是用原生應用來實現吧……於是,最後阿里雲OS就長成現在這樣了。

  4. 最後,我相信Google的不作惡信條,不會無緣無故去咬別人。

總結:其實,你像小米那樣,承認Android的基礎,畢竟人家是開源的,做個MIUI肯定沒有人怪你,但是你不能拿了別人的東西改一改,然後謊稱是自主研發的,這就有點讓人接受不了……畢竟人家是開源的,但是也不是說開源的就是可以隨便拿來說是自己的……如果Android不開源,我覺得就沒有阿里雲OS了……


別人不開源,我們就罵他們搞技術封鎖;別人一開源,我們就自主知識產權了。


先說明,轉發別人的評論,出處,http://Cnbeta.com。

1.別人開發了一台設備,你把設備買回來,拆散了研究,並在此樣板基礎上,做了些借鑒和修改,並宣稱是自己開發,而且功能更好,能兼容他人,大家信嗎

2.亞馬遜把android改得面目全非也沒見google說什麼啊,阿里不要為自己貼金了

3.是不是撒謊很容易證明,開源就行了

-----------------------------------

繼續補充下,有個新聞,題目為,『阿里雲「電子商務雲」獲億元政府補貼』。有興趣大家可以搜索下。


個人認為阿里OS自己的VM實現對Dalvik的二進位兼容沒有什麼值得詬病的。

技術方面,重新造輪子本來就是技術界的習慣,一個技術規範多套實現對完善技術規範本身是有益的,遠如Wine、ReactOS,近的兼容Dalvik的VM也不止一個。

道德方面,重新實現一個兼容Dalvik位元組碼的VM理論上從已經開源的代碼和規範就可以做到,阿里巴巴在做這件事情的過程中沒必要用任何道德上值得質疑的手段,目前也尚沒有聽說這樣的事

法律方面,如果阿里OS自己的VM是跟Dalvik完全不同的自有VM實現,那存在一定的專利風險,因為Google肯定有Dalvik相關的專利,這時Ali VS Google就跟Google VS Oracle非常相似,區別是Google的位置完全反過來了,不過鑒於此前GvO案件的輿論和審判結果,Google以此開戰的可能性幾乎為零;如果真是^C ^P,那其實倒是沒有問題,因為Dalvik的代碼是Apache License。

至於為什麼很多不齒阿里雲OS的言論,個人猜測是對技術不了解的情況下對「抄襲」、「山寨」這些標籤的群體反應。


很想說點啥,但又不能說,唉。有時候事情不在於本身的對或錯,輿論導向很重要。假設,阿里雲OS真全是自己一行行代碼敲出來的,google就是封你了,怎麼辦?


掛羊頭賣狗肉之嫌,阿里雲捆綁了太多自己的東西而弱化消費者的自由選擇權,不太看好阿里雲OS


有本事不兼容APK,讓質疑阿里雲的無話可說,如何 ?


題主明顯預設立場了。

兼容Android app並不是令人不齒的,RIM的黑莓QNX系統也是兼容Android app的,谷歌並未提出異議。

那麼,在谷歌給出明確的原因和證據之前,我們只能認為這次打壓是純粹的商業行為。


在windows上跑.exe叫兼容么?


如果拋開技術層面是是非非,問句為什麼阿里要這麼做?我們的三四級市場一般都是農民,並不關心我的手機是何系統,只要能用就行,只要價格便宜。這個市場很大,不論從經濟還是其他都很重要,所以我臆測這個yunos做了大量的安全方面的補丁。如果將來說要把yunos送給某我想沒有啥奇怪的。這種經濟,壟斷就是特徵。


因為阿里雲系統未經授權,破解 Android虛擬機,提供了一套與之兼容虛擬機的運行平台到自家系統上。


http://www.zhihu.com/question/19713497這個帖子里說,android是完全開源的,包括Dalvik虛擬機...那在你基礎之上,做出包含你功能的,有何不可?

難道是這傢伙一直自稱"自主研發",這個做法噁心到google了?http://www.zhihu.com/question/20477433


推薦閱讀:

yunos的現在體驗如何?特別是魅藍上的yunos。?
如何評價YunOS 5 ATOM?
最新的宏碁與阿里雲 OS 手機發布會為什麼會被勒令停止發布?
YunOS 和 Windows Phone 都能兼容安卓,有什麼區別嗎?
關於雲計算和雲應用,如何入門學習?

TAG:Android | YunOS |