为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

z所谓的阿里云os和安卓的关系

2017-10-24 4页 doc 16KB 7阅读

用户头像

is_321575

暂无简介

举报
z所谓的阿里云os和安卓的关系z所谓的阿里云os和安卓的关系 近日,有关谷歌Android和阿里云的争论闹得沸沸扬扬,谷歌高管、Android开发领头人Andy Rubin在其Google+主页中这样写道:阿里云系统采用了谷歌Android系统的运行环境,明显是由Android系统修改得来。 Andy Rubin称,事实是,阿里云系统包含了Android中运行环境,明显是从Android中演变而来,但无法与Android兼容。基于Google对阿里云网站上应用的分析,这个平台尝试与Android兼容,但未能成功。 阿里云OS到底是不是Android以...
z所谓的阿里云os和安卓的关系
z所谓的阿里云os和安卓的关系 近日,有关谷歌Android和阿里云的争论闹得沸沸扬扬,谷歌高管、Android开发领头人Andy Rubin在其Google+主页中这样写道:阿里云系统采用了谷歌Android系统的运行环境,明显是由Android系统修改得来。 Andy Rubin称,事实是,阿里云系统包含了Android中运行环境,明显是从Android中演变而来,但无法与Android兼容。基于Google对阿里云网站上应用的分析,这个平台尝试与Android兼容,但未能成功。 阿里云OS到底是不是Android以外的东西,笔者通过技术手段对其进行一些分析。天语W700是一款使用了“阿里云OS操作系统”的手机,笔者找到一个天语W700手机的阿里云OS的刷机包。打开粗粗看一下,和Android的刷机包没两样。里面的应用全部是apk,这意味着它们都是以Dalvik可执行文件的形式存在的。 [图1] Build.prop里面也指出是,Android2.2 [图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。 [图3] 内核是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库文件目录【安卓破解游戏】www.huluxia.com ,相当于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.【葫芦侠】www.huluxia.com 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就长成现在这样了。
/
本文档为【z所谓的阿里云os和安卓的关系】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索