谷歌的Android和苹果的IOS是主要应用在移动平台的操作系统,如智能手机和平板电脑。Android是开源的,界面和从底层到上层的功能可以被定制。
系统架构
Android
- Linux层 Android平台的基础,直接和硬件打交道。如硬件驱动、进程管理、内存管理、网络管理功能。
- 系统运行库和运行环境层 运行环境:Android 5.0(API 21)之前使用的是Dalvik虚拟机,之后被ART所取代。通过运行环境执行java代码。
- 原生C/C++库 运行环境依赖于C/C++库。开发者可以通过调用Java API Framework来使用原生库的功能,也可以用Android NDK直接调用原生库。
- 应用程序框架层 常用的组件和服务都在这一层,也是每一个安卓开发者必须要熟悉的一层。
- 应用层 系统的app。
IOS
- Core OS层 为上层结构提供最基础的服务如操作系统内核服务、本地认证、安全、加速等。 主要基于C。
- Core Services层 为程序提供基础的系统服务例如网络访问、浏览器引擎、定位、文件访问、数据库访问等。主要基于C。
- Media层 主要提供图像引擎、音频引擎、视频引擎框架。基于C和Objective-C的混合。
- Cocoa Touch层 主要提供用户交互相关的服务如界面控件、事件管理、通知中心、地图。基于Objective-C。
底层操作系统
Android
Android基于Linux。
IOS
IOS基于Unix,不是基于Linux,然而linux又基于Unix。
苹果桌面和笔记本电脑上使用的操作系统Mac OS X和Linux都基于Unix操作系统,该操作系统由Dennis Ritchie和Ken Thompson于1969年在贝尔实验室开发。 Apple的iPhone上使用的操作系统,现在称为ios,源自Mac OS X,因此也是Unix版本。
构建和发布应用程序
Android
Android应用程序使用C,C ++和Java编程。
android平台是一个对外开放的平台,任何人都可以免费下载Android源代码和Android SDK。 任何人都可以免费创建和分发Android应用; 用户可以从官方Google Play商店外部免费下载应用。 但是,对于想要在Google Play官方商店发布应用(无论是免费应用还是付费应用)的开发者,只需支付25美元的注册费。 Google Play上发布的应用需要经过Google审核。
Android SDK适用于所有平台 - Mac,PC和Linux。
IOS
IOS应用程序使用Objective-C编程。 开发人员每年必须支付99美元才能访问IOS SDK,并有权在Apple的应用商店中发布。
IOS SDK仅适用于Mac平台。
Objective-C是C语言的严格超集--任何C语言程序不经修改就可以直接通过Objective-C编译器,在Objective-C中使用C语言代码也是完全合法的。Objective-C被描述为盖在C语言上的薄薄一层,因为Objective-C的原意就是在C语言主体上加入面向对象的特性。Objective-C的面向对象语法源于Smalltalk消息传递风格。所有其他非面向对象的语法,包括变量类型,预处理器(preprocessing),流程控制,函数声明与调用皆与C语言完全一致。但有些C语言语法合法代码在objective-c中表达的意思不一定相同,比如某些布尔表达式,在C语言中返回值为true,但在Objective-C若与yes直接相比较,函数将会出错,因为在Objective-C中yes的值只表示为1。
一些应用程序开发平台(如Titanium Appcelerator和PhoneGap)提供了一次编写多处执行的方式(比如Javascript),平台将编写的代码(Javascript)分别转换为Android和IOS平台的“本机”代码。