移动平台操作系统与开发调研报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
移动平台操作系统与开发调研报告
1、iOS
a)开发环境:MacOS + Xcode + Objective-C
b)相关
iOS的系统结构分为四个层次:核心操作系统(the Core OS layer),核心
服务层(the Core Services layer),媒体层(the Media layer),Cocoa
触摸框架层(the Cocoa Touch layer)。
Xcode是苹果公司的IDE(集成开发环境)。Xcode提供了各种实用工具,
用于创建和调试源代码,编译应用程序以及调优应用程序性能。
免费的SDK还包含一个仿真器,它支持在Mac上运行大多数iPhone程序。
cocoa touch由苹果公司提供的软件开发api, 用于开发
iphone\ipod\ipad上的软件。也是苹果公司针对iPhone应用程序快速开发
提供的一个类库。此库以一系列框架库的形式存在,支持开发人员使用用
户界面元素构建图像化的事件驱动的应用程序。Cocoa Touch不支持垃圾收
集。
Cocoa是 Mac OS X 的开发环境,Cocoa Touch是 iPhone OS的开发环境。
二者都包含Objective-C运行时和两个核心框架:
Cocoa包含Foundation和AppKit框架,可用于开发Mac OS X系统的应用
程序。
Cocoa Touch包含Foundation和UIKit框架,可用于开发iPhone OS系统
的应用程序。
除了操作系统之外,任何时候iPhone上都只能运行一个应用程序。随着
iPhone内存的增大、处理器的增强,这一点在未来可能会发生变化。但是
在目前,在执行代码时,你的应用程序将是唯一正在运行的程序。若你的
应用程序不是用户正在交互中的,那么它不会起作用。
受限访问,计算机上的程序可以访问启动它们的用户能够访问的任何内容,
而iPhone则严格限制了应用程序的权限。你只能在iPhone为应用程序创建
的文件系统中读写文件。此区域称为应用程序的沙盒,应用程序在其中存
储文档、首选项等需要存储的数据。
2、Android
a)Android SDK + Java;Android NDK + C/C++
b)相关
Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。
在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可
以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使
用其他各种脚本语言进行编程(如:python、lua、tcl、php等等),还有
其他诸如:Qt(qt for android)、Mono(mono for android)等一些著名
编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使
用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针
对初学者的Android Simple语言,该语言类似Basic语言。而在网页编程
语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap
等等都已经支持Android开发。
而在Android系统底层方面,Android使用C/C++作为开发语言。
Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时
拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;
同时与Windows Mobile、Symbian等厂商不同,Android操作系统免费向开
发人员提供,这样可节省近三成成本。
Android支持使用Java作为编程语言来开发应用程序,而Android的Java
开发方面从接口到功能,都有层出不穷的变化。考虑到Java虚拟机的效率
和资源占用,谷歌重新设计了Android的Java,以便能提高效率和减少资
源Android结构占用,因而与J2ME等不同。
早期的Android开发只支持Java作为编程语言开发应用程序,因而使得其
他语言开发者只能望而却步。2010年4月,谷歌正式对开发者发布了
Android NDK,NDK允许开发者使用C/C++作为编程语言来为Android开发应用程序,初版的NDK使得开发者看到了C/C++在Android开发中的希望。但是,当前版本的NDK在功能上还有很多局限性:NDK并没有提供对应用程序生命周期的维护;NDK也不提供对Android系统中大量系统事件的支持;对于作为应用程序交互接口的UI API,当前版本的NDK中也没有提供。但是相对于初版的NDK,现在的NDK已经进行了许多重大的功能改进。
由此可见,NDK仍然需要完善和发展,相信未来随着NDK的发展,NDK可以做得更多更好。
Android 中,Activity 是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。在Android的程序当中,Activity 一般代表手机屏幕的一屏。一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间可以进行相互跳转,例如,按下一个Button 按钮后,可能会跳转到其他的Activity。Activity 之间的跳转有可能返回值。当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。
Service 是android 系统中的一种组件,它跟Activity 的级别差不多,但是他只能后台运行,并且可以和其他组件进行交互。Service 是没有界面的长生命周期的代码。Service 是一种程序,它可以运行很长时间,但是它没有用户界面。
在Android 中,Broadcast 是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver 是对发送出来的Broadcast进行过滤接受并响应的一类组件。可以使用BroadcastReceiver 来让应用对一个外部的事件做出响应。
Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成android 各个组件之间的通讯。Intent 负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android 则根据此Intent 的描述,负责找到对应的组件,将Intent 传递给调用的组件,并完成组件的调用。Intent 主要是用来启动其他的activity 或者service,所以可以将intent 理解成activity 之间的粘合剂。
操作系统与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚拟机(Virtual Machine)。
Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、