上一篇从框架的角度介绍了iOS开发,本来这一节是要讲autolayout的,但是由于刚开始,可能很多移动端开发的同学,有的学android的,有的是从事iOS的,根据公司业务的调整,可能会存在互相的转型,因此,这篇文章就带领大家一起看看安卓和iOS的区别。

      本人在刚开始接触移动开发是在android平台上的。很多人选择安卓和苹果两个平台可能是基于日后的薪资问题,其实就我个人而言,根据自己的爱好选择其一即可,app开发整个的流程都是一样的,掌握了其中一个,只要在语言上下下功夫,上手是没有太大问题的。

      接下来,我会从多个维度向大家介绍app开发在两个平台的不同。

1.前期准备

(1)安卓自然需要一台windows电脑(以windows为例),安装配置好eclipse环境,或者android studio(目前主推),然后就可以开发了,真机和模拟器都可以运行。

(2)iOS开发的成本相对高一点,一台mac本,一部苹果手机,当然模拟器也可以,还需要注册苹果开发者账号,然后安装好xcode就可以开发应用了。

2.编程语言

(1)安卓主要使用java编程,当然通过jni等一些方式可以直接调用c的代码。

(2)iOS使用objective-c或swift做开发,也支持c的调用。

(3)二者都是面向对象的编程,对变量、函数权限的控制基本一致,安卓采用自动垃圾回收机制,iOS也支持ARC自动释放。

3.框架

(1)安卓的框架如下:


android和ios开发区别是什么 安卓开发与ios开发_Core

android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。


蓝色的代表java程序,黄色的代码为运行JAVA程序而实现的虚拟机,绿色部分为C/C++语言编写的程序库,红色的代码内核(linux内核+driver)。在Application Framework之下,由C/C++的程序库组成,通过JNI完成从JAVA到C的调用。app的开发主要在application framework层,调用系统api实现各种功能。


(2)iOS的框架如下:


android和ios开发区别是什么 安卓开发与ios开发_应用程序_02

iOS应用程序基于Foundation和UIKit框架
在你开发程序时,主要使用框架就是Foundation和UIKit,因为它们包含了你需要的大部分东西。Foundation框架为所有的应用程序提供基本系统服务你的应用程序,UIKit和其它的框架都是建立在Foundation框架上面的。Foundation框架是用Object-C对Core Foundation框架里许多特性的封装。Core Data框架管着理应用程序数据模型,Core Graphics框架帮助你创建图形,Core Animation允许你创建高级的动画和虚拟效果,OpenGL ES 框架提供2D和3D绘图工具。

4.开发流程

(1)项目的创建大家可以在网上自己找找,比较简单,重点说细节。

首先安卓的源文件都是放到src对应的目录下,可以新建包名,类名。视图的布局、屏幕的适配以及图片资源、字符串都放在res目录下。整个工程的activity、service、权限配置等都放在AndroidManifest文件里。如果需要包含第三方库,则新建到libs目录,配置即可。

(2)iOS的源文件可以自己定义文件夹,根据需要命名不同的类型。视图的布局可以直接写在代码内,也可以定义在xib或storyboard中,图片资源的适配区分不同屏幕使用2x,3x命名即可。iOS的配置主要放在plist文件里,包括权限,bundid等等。