最近阿里的云溪大会结束了,朵唯发布了唯一的一款云os的手机,各种炫各种吊,不过就宣传来看,似乎,它并非基于Android系统,那么阿里云OS究竟是从何而来?它和Android原生系统有何区别呢?一起来看看。

其实关于阿里云OS和Android之争早在两年前就开始了,Android开发领头人Andy Rubin在其Google+主页中这样写道:“阿里云系统采用了谷歌Android系统的运行环境,明显是由Android系统修改得来。”Andy Rubin还称,事实是,阿里云系统包含了Android中运行环境,明显是从Android中演变而来,但无法与Android兼容。基于Google对阿里云网站上应用的分析,这个平台尝试与Android兼容,但未能成功。

那么,阿里云OS到底是不是Android以外的东西呢,通过一些技术手段可以来验证一下,我们使用某使用阿里云OS的刷机包来验证,首先我们将.zip包打开看看。

解开看大目录的结构:

mp39202314_1446440547421_2.jpeg (26.88 KB, 下载次数: 6)

2015-11-2 13:39 上传

根目录下是一个boot.img,这就是Android系统的bootloader,也就是启动分区。另外有个system目录,这就是Android系统的system分区。进入system目录往下看:

mp39202314_1446440547421_3.jpeg (35.69 KB, 下载次数: 7)

2015-11-2 13:39 上传

这里和Android ROM的目录结构是一模一样的,各位可以自己找个Android ROM对比以下。核心的几个目录:

app:存放ROM预装的app

bin:系统进程的目录

framwork: Android Framework目录,就是Android应用程序运行所需要的库文件的目录

lib: so库文件目录,相当于Windows的system32目录

咱们再进到app目录看一下:

mp39202314_1446440547421_4.jpeg (72.11 KB, 下载次数: 6)

2015-11-2 13:39 上传

好,看出区别来了,Android下所有的app都是以apk结尾的,前一篇帖子用的ROM就是Android的ROM,里面对应这张图里的文件就都是apk的。这里怎么都是lar呢?这就是阿里云OS和Android不同的地方了,因为apk是Dalvik虚拟机管理应用程序的文件格式,阿里云自己搞了个虚拟机,用lar文件来管理。lar文件和apk文件有什么不同?我们知道apk文件其实就是一个zip文件,用WinRAR可以直接打开看,那lar文件呢?用WinRAR果然也可以直接打开:

mp39202314_1446440547421_5.jpeg (36.99 KB, 下载次数: 5)

2015-11-2 13:39 上传

做过Android开发的人一看到这个目录结构就发现,它和apk的目录结构基本上是一模一样的,除了Android应用的classes.dex文件变成了classes.lex。那所谓的lex文件是不是就是把dex文件换了个名字呢?我们用二进制比较一下:

mp39202314_1446440547421_6.jpeg (25.51 KB, 下载次数: 5)

2015-11-2 13:39 上传

左边的是Android应用的dex文件,右边的是阿里云应用的lex文件。可见,文件格式已经完全不一样了。

好,app的不同已经看出来了,我们再来看系统核心进程有什么不同。进入到/system/bin目录:

mp39202314_1446440547421_7.jpeg (65 KB, 下载次数: 5)

2015-11-2 13:39 上传

熟悉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就长成现在这样了。

在电视&盒子上也是有很多yunos系统的设备的,还好这些设备大都能安装当贝市场,从而也避免了机子上资源少的问题了。

QQ截图20150815090957.png (479.94 KB, 下载次数: 5)

2015-11-2 13:40 上传

alios是安卓吗_详解YUNOS系统和安卓系统到底有什么区别相关推荐

  1. python while函数_详解python while 函数及while和for的区别

    1.while循环(只有在条件表达式成立的时候才会进入while循环) while 条件表达式: pass while 条件表达式: pass else: pass 不知道循环次数,但确定循环条件的时 ...

  2. python for和while的用法区别_详解python while 函数及while和for的区别

    1.while循环(只有在条件表达式成立的时候才会进入while循环) while 条件表达式: pass while 条件表达式: pass else: pass 不知道循环次数,但确定循环条件的时 ...

  3. 机械硬盘旋转时间_详解硬盘转速5400转和7200转的区别

    我们对电脑是非常熟悉的,而电脑的重要硬件之一硬盘,我想知道的人并不是很多,而硬盘主要是用于存储计算机程序和文件的地方.大部分人对硬盘的衡量只通过大小,这个判断是不全面的,而对于硬盘判断的指标除了自身的 ...

  4. python 深拷贝_详解python的复制,深拷贝和浅拷贝的区别

    概述 今天主要来看看Python中的浅拷贝和深拷贝内容,这里用一个实例来说明~ 需求: 将一个列表的数据复制到另一个列表中. 思路: 使用列表[:],拿不准可以调用copy模块. 实现方法: #!/u ...

  5. WebSocket安卓客户端实现详解(一)–连接建立与重连

    http://blog.csdn.net/zly921112/article/details/72973054 前言 这里特别说明下因为WebSocket服务端是公司线上项目所以这里url和具体协议我 ...

  6. 大脑构造图与功能解析_大脑的结构和功能分区_详解人脑构造与功能

    大脑的结构和功能分区 _ 详解人脑构造与功能 学习,可以开阔人的大脑 ; 学习,可以使人的大脑拥有更多的知识,人的大脑和肢 体一样,多用则灵,不用则废.那么下面学习啦小编给大家分享一些大脑的结构和功 ...

  7. 安卓通知栏管理详解及分析 NotificationListenerService

    NotificationListenerService 安卓通知栏管理详解及分析 一. 方法概述 在api 18前可以通过辅助功能'AccessibilityEvent.TYPE_NOTIFICATI ...

  8. html js不触发_图文详解鼠标事件CSS:hover和JS:mouseover的区别

    在工作中为了使页面更具有吸引力,前端开发人员经常会在页面中加上鼠标移入和移出的效果.鼠标移入移出的设置,一般有两种方法,一种是单纯用CSS中的hover伪类,另一种可以用JS 中的DOM事件,即onm ...

  9. pe系统如何读取手机_图文详解怎么用pe重做系统

    上期小编讲解了小编教你笔记本电脑开不了机怎么办,本次正特手机网小编给大家讲解一下图文详解怎么用pe重做系统,最近有不少的小伙伴都问小编说,使用pe重做系统简单吗?对于大家提问pe重做电脑系统的问题,其 ...

最新文章

  1. spi协议时序图和四种模式实际应用详解
  2. 牛顿-拉夫逊法进行潮流计算matlab源程序
  3. android git提交整个项目_使用子模块和子树来管理 Git 项目 | Linux 中国
  4. C语言 串口通知消息,编程模式·观察者模式、事件通知、消息队列三者区别
  5. HDU5875 - Function
  6. CentOS7下解决yum install mysql-server没有可用包的问题
  7. android studio 2.0 导入工程
  8. 怎么用Excel来批量生成SQL语句
  9. 8款功能强大的最新HTML5特效实例
  10. 如何在没有电脑的情#况下用安卓手机制作windows pe启动盘
  11. 大一c语言常见编程题,大一c语言考试复习题
  12. 一周学习总结:vue学前准备知识
  13. android reboot 消息,android reboot 流程
  14. 各类分布以及检验方法
  15. RT-Thread学习笔记——互斥量
  16. oracle安装后,电脑变得很卡,解决办法(安装的是oracle11g)
  17. 凭借这份JVM高并发面试题,我拿下了阿里P7offer,现在分享给大家
  18. DNS服务(域名系统、过程、bind、配置文件、查看本设备dns)
  19. javaSE探赜索隐六(常用类API)
  20. html设置右缩进,word左右缩进怎么设置

热门文章

  1. 6个座位办公室最佳位置_6人办公室排座位怎么坐好
  2. macOS安装sublime的subl命令报错
  3. ansible,playbook知识点复习
  4. GitHub Actions入门教程
  5. WAP与WEB的区别
  6. radiogroup多选_单选按钮和多选按钮
  7. php 转换 oracle 时间格式,Oracle 关于日期格式转换与使用
  8. 智慧校园对教学的影响是什么?
  9. 超声波脉冲电路线路板设计
  10. Android WebView播放视频(包括全屏播放)