iOS和Android开发异同点(一)
来源:互联网 发布:linux控制面板 编辑:程序博客网 时间:2024/06/05 13:17
说到移动开发,目前主流平台有谷歌的android os 系统,苹果iOS系统,和微软主打的windows Phone OS 系统,至于目前为啥移动开发中,安卓和iOS比较受欢迎,者要看三家产品的历史由来了,况且为何出现wp不怎么普及,估计微软比我们更头疼更关心这个问题,今天我们就不关注这个话题。
开发语言;
iOS,采用C,OC和swift语言开发,安卓采用java,c来开发,wp采用C#开发,OC和JAVA ,C#,都是面向对象语言。
入门难度:
其实三种平台的开发,没有哪个平台个入门难不难的问题,至于java入门易懂,C学起来头痛,但是我们评价这两种技术(安卓和iOS)不能单纯的只用开发语言来衡量,要从开发成本,简易度,维护,适配,兼容等各方面去很亮,通过比较对要下手学习移动开发的同学给个好的建议,决定去学习哪个方向。
开发成本:
安卓:windows ,mac的pc即可,再准备一个真机就可以。
iOS:需要OS操作系统的电脑(或者苹果盒子),真机测试也需要一台苹果手机。如果你的电脑配置够I高,你也可以把windows电脑装上mac虚拟器,但是不建议这么做。
对比一下:iOS 成本相对较高。
环境搭建:
安卓:需要配置JDK, Android SDK ,Eclipse/Stusdio,
如果想开发兼容C代码,还需安装NDK工具包。
IOS: 只需安装Xcode即可,兼容C,OC。
对比一下: iOS方便很多,苹果官方帮我已经继成了开发工具包。
开发语言:
安卓:JAVA, C。
如果只是做入门级别,JAVA基础就可以支撑你开发安卓程序了。C前期可以放弃。JAVA入门容易,易懂灵活。
想要往高级走,那么学习c,和Linux是必不可少,所以还是要回到C层面上,开发安卓应用,要想成为高级级别的,需要会很多,学习路比较苦逼。
iOS: C, OC,Swift
如果入门级别,略懂C,熟悉OC即可,但是语法没JAVA易懂和灵活,对于没基础的小白来说,入门还是比较吃力和枯燥的,至于进阶高级的话,需要熟悉C语言,因为很多库是支支持C的,况且不支持ARC机制,需要开发者自己管理。
除了熟悉更多的API和编程设计模式,其实安卓也要学习设计模式和编程思想,设计思想可以在工作中慢慢提高和收获。
市场行情:
目前两者的需求量安卓高于iOS,因为同个项目,人力需求来说安卓比iOS要多,但是学习者 安卓也比iOS多,所以总体来说android竞争比较激烈,iOS求职相对压力较小。
工资福利;
目前市场,同等经验的iOS薪酬高于Android,并且很多应用会以iOS为主,项目组预算可能iOS比Android高,总之市场决定价值,至少目前五年内是这样的。
开发难度;
目前很多公司的APP以iOS为原型,UI界面和交互一般模仿苹果系统,这样加大了安卓开发者的开发难度,需要自定义控件实现界面需求。至于机型目前安卓市场机型众多,rom也多,对安卓开发者屏幕适配和系统兼容是比较头疼的事情,而iOS来说,并不用过多去关心这个问题,相对来说安卓开发难度大于iOS。
后期维护;
安卓需要关系过多的机型和厂商更改权限的问题,对于开发者要求也加大的不少,需要兼顾老版本和新版本,可能你的最新版本也要考虑的安卓2.3系统,但是iOS一般强制用户的系统必须在某个版本以上,因此iOS的后期维护比较简单,Android比较大。
拓展延伸
安卓:只要采用JAVA语言,大家知道JAVA 语言是比较博大精深的,可以写桌面应用,服务器,web,还有安卓应用,这样对于入门安卓的同学,以后如果转服务器开发,那么就容易的多了。目前很多的项目都是采用java写的后台,
iOS:采用OC为主,如果熟悉C的同学可以做游戏,或者也可以去做嵌入式开发,已经写安卓系统的内核,但是想转服务器那么就有点困难了,就必须从学习新的语言,
总之安卓开发者,可以灵活从后台转客户端,其实也可以做前端工程师,而iOS 就没这么容易了。
个人发展:
个人路线而言, 如果以后担任更高的技术职位,那么优先入门安卓,从开始的安卓开发,在慢慢学习iOS,因为学会了一门语言再转另一门语言是很容易的,通过会了两门开发语言,那么可以担任移动开发经理(兼顾安卓和iOS),再慢慢衍射到服务器,担任架构师或者技术总监(管理客户端,服务器,前端等)。
以上就是大致对这两种领域的总结,以后我会着重说一下oc和java异同点,和开发iOS,Android的区别,从代码层面对比下这两种技术的移动点,谢谢阅读。
- iOS和Android开发异同点(一)
- android ios 异同点1
- iOS和windows异同点
- Android与IOS异同点对比(1)------ 显示
- JavaScript程序开发(一)—JavaScript和ECMAScript异同
- 24点小游戏ios开发(一)
- Android与IOS异同点对比 ( 2 ) ------ 数据存储(SharedPreferences VS NSUserDefaults)
- 微信小程序开发语言和“前端三件套”的异同点
- Android中的DVM和Java中的JVM的异同点?
- HashMap和Hashtable异同点
- static和extern异同点
- LR和SVM异同点
- LinkedList和ArrayList异同点
- ios-day25-01(iPad和iPhone开发的异同)
- Linux和Windows的异同点(自己拙见)
- Jquery 对象和Dom对象(js) 的异同点
- [Android开发常见问题-10]PagerTabStrip和PagerTitleStrip异同
- android开发过程中的坑点(一)
- intent没有指定category时,应该注意的问题
- cookie登录写入与查询
- [回忆向]关于有向和无向图连通性问题的yy证法
- js过滤空格
- linux命令学习之cut
- iOS和Android开发异同点(一)
- SOLR配置dataimport
- Django安装失败:from setuptools import setup, find_packages ImportError: No module named setuptools
- jvm 几个参数及最大内存
- java中传输对象时候的问题
- 23个MySQL常用查询语句
- SQL
- POJ 1655 Balancing Act 树的重心
- sysfs与procfs