这是一个概念性问题。如果有人能够澄清背后的故事,那将是很棒的。
我理解模拟器和模拟器之间的区别。
模拟器:模仿设备环境(硬件,网络功能等)。与设备相比,我们更有可能获得非常接近的结果。
模拟器:使用正在运行的计算机的功能。由于模拟器使用计算机的硬件性能,因此不太可能获得与设备接近的结果。
Android平台自2009年AFIK开放给开发人员。为什么这些年后仿真器与iOS模拟器相比仍然(实际上)无法使用?即使是小型测试,开发人员也必须使用Genymotion或真实设备。即使启用了HAXM或快照,Android模拟器和iOS模拟器甚至还不能比较。
另一个密切相关的问题是,与iOS故事板相比,为什么Android的布局编辑器太慢而且根本不流畅。
我相信您会同意ADT(基于Eclipse)布局编辑器根本无法使用。 Android Studio的表现要好得多,但在任何方面都达不到标准。当我使用预览窗口并排编辑XML时,常常会卡在我的MacBook Pro 2012模型上。
据我所知,Android工作室刚刚在几个月前正式发布,但我们只讨论Android特有的功能。它不是一个新的IDE从头开始,它具有成功的产品IntelliJIDEA的所有功能的优势。
如果没有手动编辑XML,Android开发者就无法逃脱,而iOS开发者可以和iOS生态系统的运作方式相媲美。现在iOS平台也必须处理多种尺寸的屏幕。因此,我认为它不像Android平台正在做一些截然不同的事情。
请原谅我糟糕的英语技能和初级知识。只是想知道合理的理由/澄清,从来没有意味着听起来严厉或恶化Android生态系统。
(P.S:我主要是Android应用开发者,最近开始学习iOS。)
提前致谢。
答案 0 :(得分:0)
iOS 8 Simulator是iOS 8的大部分内容,专为运行OS X内核的intel而构建。还有一小部分涉及的其他系统守护进程(fseventsd,coreaudiod,configd和powerd),我们使用主机libsyscall,libpthreads和libplatfom库与xnu(带有一个小的插入层)进行通信,但是大多数情况下,您正在本机运行整个操作系统。启动设备需要一些时间(包括启动launchd并让它像在OS X或iOS设备上一样启动系统),之后,你基本上得到了iOS运行的精简副本原生在你的系统上。没有涉及仿真器,没有指令翻译,没有字节码解释器,没有额外的抽象或翻译。从系统的角度来看,模拟器进程就像任何其他OS X进程一样,只是它们链接到一组不同的库并具有不同的引导服务器。
答案 1 :(得分:0)
Android Studio布局编辑器也很慢,我认为它的设计问题,以及很多检查编辑器正在做的,还有一些不修复的错误可能与OSX有关。甚至OSX上的应用程序代码也很快与android工作室相比核心中的同一个编辑器...同时构建系统gradle非常慢,这也是设计问题...他们选择慢速技术groovy我认为,为了构建所以现在他们将寻找生命休息的优化......好吧,当有人想通过盲目创建其他人来解决一个问题...而模拟器这是另一个基于Android基本优势和弱点的故事,我的意思是android是基于java的开源库,也必须在多个平台上可用,并且也不关心这个问题在启动时...有可能解决一些这个问题,模拟器可以以某种方式制作像java应用程序如果有意愿开发它,但我强烈认为没有人会这样做,Genymotion在速度上已经不错,但IOS模拟器无法比拟,x86图像运行得更快但是应用程序的部署仍然需要很长时间才基于我测试的Ø Android工作室中的SX ...我使用Genymotion和Android Studio,所有性能调谐器都可用,但是性能有问题,如果你试图启用multidex支持:)你可能会像我这样结束我必须删除一些库和复制代码从他们能够建立没有multidex ...
答案 2 :(得分:-1)
iOS:内置iOS SDK和模拟器的X代码。它是带有x代码的内置函数。所以它的工作速度很快。
Android:在Eclipse中,我们正在安装单独的ADT,SDK和Emulator以及所有Android安装。它在系统中需要单独的内存。
Android 5.0.1 SDK在您的系统中需要12GB的安装内存。因此,如果您正在进行布局,则需要从SDK加载布局。每次Eclipse都会加载以从SDK获取Android工作工具。
因此只有Android需要加载太多,iOS工作速度非常快。