iOS开发和Android开发哪个更有前途应该怎么选择
发布时间:2025-05-11 23:12:37 发布人:远客网络
一、iOS开发和Android开发哪个更有前途应该怎么选择
就索性进行了一番调研,于是有了本文(本次不讨论越狱的iOS)首先从情感上,你喜欢哪个就好,就像百事可乐和可口可乐,当然这个比喻不是很恰当,因为可乐喝起来几乎一样,但是Android和iOS还是有很大差别的。 iOS来源于Apple的OSX,是UNIX系统,OSX已经有差不多10年的历史,从内核底层到软件架构都是逐步发展过来的。iOS使用ObjectivC这个古老的语言来做开发。而Android是Google基于Linux搞来的,严格意义上讲Android并不是一个Linux系统,它没有Linux的xwin,没有glibc,缺乏一整套标准的Linux程序。Android应用绝大部分都是使用JAVA开发,跑在Dalvik虚拟机上(一小部分使用NDK)。 Google在底层也修改了很多东西。Android算是一个全新的操作系统。所以: Android使用JAVA,上手容易很多,如果有很好的JAVA Lib加持,开发效率会高些 iOS没有虚拟机,也没有GC,性能要好一些,当然这个差别会随着Google的改进越来越小 iOS的开发框架很成熟,而且和MAC上通用,同样的知识体系,也可以开发MAC应用,Android相比是全新的框架,还会继续进化。 iOS和设备紧密集成。软硬件一家公司通吃。但是Android无法做到,通常的情况是:Google放出源代码。芯片厂商需要1-3个月来做自己的芯片方案,手机厂商从芯片厂商处买到方案和代码,进行自己的集成,定制工作,有时候还需要针对运营商进行定制。所以: iOS的设备集成度和驱动优化都是最好的。电源管理一块就可见一斑,而Android厂商就鱼龙混杂。可能排头的厂商的旗舰机器会好些,但是由于Android工期一般都比iOS设备短(请看HTC和三星出机器的速度),所以整体上和iOS比是有差距的。由于有多家厂商自己做定制,Android还存在设备的分裂问题(fragmentation),作为过来人,我告诉你这个是很头痛的事情,且不论调试时间和人力,光买一大堆设备的成本就不小。最关键的是它会伤美工/UE的心。 iOS是被Apple严格控制的系统。在大部分情况下,第三方应用是无法拿到所有API的。这意味系统级别的很多功能只有Apple能做(比如打电话,拦截短信)。此外一些涉及用户隐私的API还会导致系统弹出对话框询问用户。同样第三方runtime做应用开发也是基本不可行的(Flash当初也是被这个条款拒过)。反过来Android完全不一样,首先Android是开源的,在设计上Android就允许自由替换系统组件, Android也没有强制限制API的情况,(hidden API也可以call,没有人会找你麻烦)。系统级别的权限是下放到厂商手中,如果厂商愿意给,那第三方开发者就可以做任何事情。普通应用的权限认证也是在安装的时候就一次性授权完成。之后不会骚扰用户。所以: Android平台可以做的事情远远比iOS多,你可以做电话管理,地址簿,短信管理,可以自己跑后台service。替换掉系统的组件非常容易 Android平台也可以跑其他系统的Runtime,比如Flash,有了NDK,你要自己接入一个虚拟机也是可能的。Google不会管你任何人可以拿Android自己改个独立的系统出来,也许这样做的意义和前景有问题,但是同样,没有人限制你 iOS上唯一的下载应用途径就是Appstore,开发者做应用上线还要通过Apple审核,就算通过了,如果挂羊头卖狗肉乱来或者调用了不该用的API, Apple一样随时可以下架。管理非常严格。反过来Android上非常松懈:厂商可以内置应用。经常会扔一些莫名其妙的软件预装在手机上,笔者在厂商的时候深刻体会到乱选软件是很好玩的事情。而且我们不会让你删除掉的。 Google的官方菜市场不做应用审核,开发者上传软件很随意,这是个自由市场。国内还存在大量第三方软件菜市场。以及豌豆夹类似的PC端管理软件。如果用户选择允许未知来源,那么通过web下载或者安装卡上的软件也是可以的。似乎国内用户都是允许的。所以: iOS上的精品软件多,竞争激烈但管理有序,开发者也容易挣钱。 Android上虽然也有精品软件,但是垃圾软件更多,甚至有恶意软件。因为无门槛,基本上软件都是免费,卖不起钱,大部分都靠广告。 Android还有一堆杀毒软件,这是典型的没有困难,制造困难也要上的精神。 Android上还有一堆安慰剂软件,比如能帮你省电的或者是帮你杀后台进程的来提升性能的,笔者作为做过底层开发的人,笑而不语。如果你是普通用户,请关贴,本文不是用来给普通用户选机的。如果你是一个个人软件开发者, iOS适合你,市场规范,做应用省心。如果你是一个软件和服务的创业公司, iOS也是适合你做demo的和第一个产品的,产品靠谱了,用户在用了,有人给钱了,再往Android走也是可行的。除非你做的应用要涉及硬件或者需要非常高的系统权限,如果是那样你也只有选择Android。因为国内的厂商肯定要比苹果要容易谈下来。如果你是一个要做硬件和系统定制的公司,那么基本上你只有Android可以选。Android的解决方案的成本也在不断下降。如果你是一个有中国特色的公司,想搞点移动业务玩玩,还要瞒着用户做很多事情。那么Android也是更好的,就算你不作恶,控制权在自己手中也会方便运作一点。所经如何选择,不用我多讲,这两个都是当今移动互联网开发的方向,但是一个开源学习起来更容易,做东西更快,有绝对的控制权。一个不开源,只能做上层应用,但也可活的很好,就是这样。
二、android和ios的区别,越详细越好。
OS来源于Apple的OSX,是UNIX系统,OSX已经有差不多10年的历史,从内核底层到软件架构都是逐步发展过来的。iOS使用ObjectivC这个古老的语言来做开发。而Android是Google基于Linux搞来的,严格意义上讲Android并不是一个Linux系统,它没有Linux的xwin,没有glibc,缺乏一整套标准的Linux程序。Android应用绝大部分都是使用JAVA开发,跑在Dalvik虚拟机上(一小部分使用NDK)。 Google在底层也修改了很多东西。Android算是一个全新的操作系统.所以:
Android使用JAVA,上手容易很多,如果有很好的JAVA Lib加持,开发效率会高些
iOS没有虚拟机,性能要好一些,当然这个差别会随着Google的改进越来越小
iOS的开发框架基本上和MAC上通用,同样的知识,可以开发手机,也可以开发MAC应用,Android没有这样的优点
iOS的设备集成度和驱动优化都是最好的。电源管理一块就可见一斑,而Android厂商就鱼龙混杂。可能排头的厂商的旗舰机器会好些,但是由于Android工期一般都比iOS设备短(请看HTC和三星出机器的速度),所以整体上和iOS比是有差距的。
Android天然存在升级周期延迟的问题,而且厂商做升级是也是有成本的。卖手机的厂商无法顾及整个生态链,目前这个无解,除非Google做点什么。
由于有多家厂商自己做定制,Android还存在设备的分裂问题(fragmentation),且不论调试时间和人力,光买一大堆设备的成本就不小。最关键的是它会伤美工/UE的心。
Android平台可以做的事情远远比iOS多,可以做电话管理,地址簿,短信管理,可以自己跑后台service。替换掉系统的组件非常容易
Android平台也可以跑其他系统的Runtime,比如Flash,有了NDK,要接入一个虚拟机也是可能的。Google不会管任何人可以拿Android自己改个独立的系统出来,也许这样做的意义和前景有问题,但是同样,没有人限制。
iOS上的精品软件多,竞争激烈但管理有序,开发者也容易挣钱。
Android上虽然也有精品软件,但是垃圾软件更多,甚至有恶意软件。因为无门槛,基本上软件都是免费,卖不起钱,大部分都靠广告。
Android还有一堆杀毒软件,能省电的或者是杀后台进程的来提升性能的软件
三、能同时用于 Android 和 iOS的APP UI设计怎么做
遵循这些步骤,你的 App就能同时在 iOS和 Android保持完美!
从 iOS7以后,Apple就一直在采用扁平化的设计模式,去除了所有不必要的纹理和阴影等效果——和早些年间的版本完全不同。Google的新 MD设计规范有了一些更加细节的规定,通过一种叫“纸片”的方法来创造更多的层级关系。
Android有一个返回按钮,点击它可以返回上一个屏幕。
iPhone上则没有这样一个按钮,所以需要有一种方式能够让用户回到先前的屏幕。通常的解决方案是在屏幕的左上角放置一个返回键。
两种平台之间的确存在着一些通用的元素,比如说状态栏和标题栏,它们会出现在每一屏的顶部。你不应当改变导航栏的高度,如果你想让 App看起来更加原生的话。所以,我推荐你在设计的第一页就定义好标题栏的样式,然后在其他的屏幕上使用一个占位的方框来替代,这样能省下不少时间,但是你应当向程序员说明标题栏在不同的屏幕上都是一样的样式。
不同平台上的导航栏有一定的差别。在 Android上文本是左对齐的,然而 iOS上是居中对齐的。在 iOS上,很多企业都用它们的 logo来替换首页标题栏中的文字,但是在 Android设备上这不是一个好的主意。状态栏(显示你的网络、电量和时间信息)是系统组件,你不需要考虑设计它,只要确保它们不会对他人造成误解就好了。
或许iOS和 Android平台之间最大的区别就在于他们的导航样式了。Android上最主要的导航方式是抽屉菜单,Android用户们通常在这个菜单内进行跳转。而且在整个 App中,这种体验是一贯的。Apple的导航样式更倾向于 tab bar,它位于屏幕的底部,并且以一种很简单的方式实现上部内容的切换。当你设计 App的结构的时候,你可以为不同的平台设计不同的导航样式。
在 UI设计中,卡片正逐渐成为一种主要的 UI设计样式,它们可以应付多种情况,而且给用户提供了一种能够呈现有效内容的便捷方式。视觉上,卡片非常适应于 Android的 Material Design(它事实上源自于纸张的灵感)。使用阴影和卡片之间的合理间距能够创建一种自然的外观。
在 iOS上,使用卡片设计需要更加的小心谨慎,尽管一些大型的 App,诸如 Facebook和 pinterest的确使用了一种略微偏离 iOS视觉规范的设计风格。Instagram使用了一种完全扁平化的设计风格,尽管从结构的观点上看,用户的每一条推送都能被视为是一张卡片,instagram的设计很值得你去花时间揣摩,它是如何遵循 iOS视觉规范的。如果你要在 iOS平台上应用阴影,你最好小心谨慎,尽量使得这些阴影不是那么的明显。
iOS系统上的默认字体是 Helvetica Neue,在 Android上则是 Roboto。尽管这两种字体在外观上有显著的差异,但是这两个字体的尺寸却是近乎相同的。如果你想要在设计的时候节省时间,那么用一款字体就可以,但是要和开发人员沟通在不同的平台上使用对应的字体。而在设计重要的布局结构和使用大号字体时,我建议你还是同时用这两种字体测试效果。
如果你想要精益求精,那么你就要对不同平台上的设计规范更加注意。比如如下几条:
Android的 MD设计需要用到更多的空格来进行布局
在 MD中字体大小的变化会更加多样
在 iOS上,字体没那么多大小差异,但是在字体重量上(Font weight)有更多的变化,同样允许你创建主次结构
两个平台都使用比较细的字体来现实正文内容,然而,在下面的例子中,Android使用了轻(Lighr)和常规(Regular)字体,而 iOS使用了粗体(Bold)和常规字体
这是一个非常简单的例子,向你展示了排版方面的一些细微的不同可以导致印象上的巨大差异——你能很快分辨你是在用 Android手机还是在用 iPhone!
iOS(@1x下 44px)和 Android(1:1比率下 48p)都有对可触摸元件的设计规范。MD规范同样建议对所有元素使用 8dp网格对齐。
在最近的项目上,我发现遵守 Android的这些设计规范会更加安全,因为大一些的 48px的按钮在两个平台上都表现良好,而且 MD的规范更加全面,还经常更新。不管怎么说,你都应该在设计中使用网格,但是我们发现定义更加明确的 Android网格会更好用一些。