IOS编程之阿里云OS和Android的干系仓酷云
不管是学习Objective-C语言,还是学习ios,我都只是跟着书上的例子,在苹果机上,在Xcode和InterfaceBuilder开发环境中,按部就班的“抄”些应用程序。 克日,有关谷歌Android和阿里云的争辩闹得沸沸扬扬,谷歌高管、Android开辟领头人AndyRubin在其Google+主页中如许写道:阿里云体系接纳了谷歌Android体系的运转情况,分明是由Android体系修正得来。AndyRubin称,现实是,阿里云体系包括了Android中运转情况,分明是从Android中演化而来,但没法与Android兼容。基于Google对阿里云网站上使用的剖析,这个平台实验与Android兼容,但未能乐成。
阿里云OS究竟是不是Android之外的工具,笔者经由过程手艺手腕对其举行一些剖析。天语W700是一款利用了“阿里云OS操纵体系”的手机,笔者找到一个天语W700手机的阿里云OS的刷机包。翻开粗粗看一下,和Android的刷机包没两样。内里的使用全体是apk,这意味着它们都是以Dalvik可实行文件的情势存在的。
<br>
[]
Build.prop内里也指出是,Android2.2
<br>
[]
接下往来找个中的clibrary,由于我们晓得,Android是在Linux内核之上运转了一套Google本人构造起来的架构。和一般意义上的GNULinux一样,这个架构里最基本的工具之一就是C运转库。
GNULinux的C运转库是Glibc,而Android用的是Bionic。经由过程利用本人构造,编写的代码,Android能够从这一层以上避开GPL协定不同意公布者具有保密源代码权力的限定。
找到个中的lib/libc.so,也就是C运转库,用readelf检察它的标记表(这么做不触及反向工程),能够在找到”bionic”。申明它的C运转库极可能是bionic。
<br>
[]
内核是linuxkernel,基本的C运转库是Bionic,有Dalvik,下层的使用全体是Dex格局,这些工具申明W700上的“阿里云OS操纵体系”不太多是Android之外的工具。
固然以上的内容没法用于推想,这么做是不是与Android的受权协定发生了冲突。可是有一件事变对照明白,假如供应这个手机的厂商没有供应个中linuxkernel的源代码,那极可能长短法的。
更新:上篇用的ROM是错的,是Android的刷机包,不是官方原生的云OS的ROM,以是论据是错的。这里用官方原生云OS的ROM剖析一下,究竟阿里云OS和Android之间是甚么干系。
解开看年夜目次的布局:
<br>
根目次下是一个boot.img,这就是Android体系的bootloader,也就是启动分区。别的有个system目次,这就是Android体系的system分区。进进system目次往下看:
<br>
这里和AndroidROM的目次布局是千篇一律的,列位能够本人找个AndroidROM对照以下。中心的几个目次:
app:寄存ROM预装的app
bin:体系历程的目次
framwork:AndroidFramework目次,就是Android使用程序运转所必要的库文件的目次
lib:so库文件目次,相称于Windows的system32目次
我们再进到app目次看一下:
<br>
好,看出区分来了,Android下一切的app都是以apk开头的,前一篇帖子用的ROM就是Android的ROM,内里对应这张图里的文件就都是apk的。这里怎样都是lar呢?这就是阿里云OS和Android分歧的中央了,由于apk是Dalvik假造机办理使用程序的文件格局,阿里云本人弄了个假造机,用lar文件来办理。lar文件和apk文件有甚么分歧?我们晓得apk文件实在就是一个zip文件,用WinRAR能够间接翻开看,那lar文件呢?用WinRAR公然也能够间接翻开:
<br>
做过Android开辟的人一看到这个目次布局就发明,它和apk的目次布局基础上是千篇一律的,除Android使用的classes.dex文件酿成了classes.lex。那所谓的lex文件是否是就是把dex文件换了个名字呢?我们用二进制对照一下:
<br>
右边的是Android使用的dex文件,右侧的是阿里云使用的lex文件。可见,文件格局已完整纷歧样了。
好,app的分歧已看出来了,我们再来看体系中心历程有甚么分歧。进进到/system/bin目次:
<br>
熟习Android体系的人一眼就可以看出来,am,app_process之类的名字都是Android中心历程的名字。多出来了几个:cloudserver,chpasswd.cgi之类,看来这就是阿里云所谓的“云服务”的中心历程了。
好,文件的对照就到这里,那如今基础上能够下结论了,一个完全的Android体系,包含以下几个部分:
1.bootloader:用来启动操纵体系
2.kernel:体系内核
3.中心历程,就是/system/bin上面那堆工具
4.so库:体系运转基本,就是/system/lib上面那堆工具
5.Android假造机,一切的下层使用都是靠假造机来运转的
6.AndroidFramework:一切的下层使用都是经由过程挪用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就长成如今如许了。
willproven投稿。
如果你现在开始学到编出像样的APPiOS5可能已经普及了可以直接用ARC(另之前对ARC的了解很粗浅现在开发程序完全可以直接ARCiOS4不支持的weak是有办法替代的用unsafe_unretained 这个办法就是在WindowsXP或Win7的电脑上,使用vmware虚拟机来搭建一个真实的Mac OS X环境。 学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。 首先是基础,在汉昌的课程非常全面。从object—c到最后的毕业项目,基本上方方面面都涉及到了,我是一名非计算机专业的学生,起初学习还有点吃力,因为基础知识薄弱。经常像听天书 学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。 培训的时候很痛苦,每天要待12个小时,上午讲课,下午和晚自习解决作业,看文档,学习的时候感觉就是资料太少,而且看着资料也不明所以,非常痛苦, 学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。 最后在做项目的时候一定要认真对待,毕竟这个直接和你的就业挂钩,这也是锻炼你实际操作的能力。 边吃零食边看Stanford的视频教程 要学会通过各种方法将面前的事情变成自己感兴趣的,那专研起来就不会是无聊和折磨了。 在百度搜索你想要了解的类名(苹果的cocoa和cocoatouch框架的类名很有特点很容易搜到,前缀都是NS or UI),看别人写的博客详解 才在自己的Windows电脑上安装配置成功了一个完美的Mac OS X Lion(10.7.4)系统,而且下载了Xcode4.5的最新版本。虽然不能实机调试,但是作为iOS开发学习已经非常完美了。 首先是基础,在汉昌的课程非常全面。从object—c到最后的毕业项目,基本上方方面面都涉及到了,我是一名非计算机专业的学生,起初学习还有点吃力,因为基础知识薄弱。经常像听天书 特别是在校的学生,都存在一个小小的尴尬——虽然学习iOS开发的热情高涨,但由于没有多余的银子购买昂贵的Mac电脑而踟蹰不前。其实,针对初学者,如果想进入iOS开发的天地 在百度搜索你想要了解的类名(苹果的cocoa和cocoatouch框架的类名很有特点很容易搜到,前缀都是NS or UI),看别人写的博客详解 要学会通过各种方法将面前的事情变成自己感兴趣的,那专研起来就不会是无聊和折磨了。 培训时可以选择安卓,iOS,Java,因为实习的时候我选了安卓,当时实习时间只有三周,学的晕头转向,而java我也没学过,iOS的基础是C语言,这个大学里还是学过的,于是选择了iOS。 培训的时候很痛苦,每天要待12个小时,上午讲课,下午和晚自习解决作业,看文档,学习的时候感觉就是资料太少,而且看着资料也不明所以,非常痛苦, 才在自己的Windows电脑上安装配置成功了一个完美的Mac OS X Lion(10.7.4)系统,而且下载了Xcode4.5的最新版本。虽然不能实机调试,但是作为iOS开发学习已经非常完美了。
页:
[1]