由于原生开发模式属于基础开发方式,技术成熟,目前仍占据主流,所以本书重点关注原生开发模式,在此基础上后续会讲解移动GIS应用的开发。
智能设备,特别是智能手机出现后,立即受到人们的追捧,发展异常迅速,功能越来越强大,囊括了人们大部分的社会活动,如出行、购物、支付、社交、娱乐等,已经成为人们生活中必不可少的元素。这些功能的实现基于移动操作系统的众多丰富、酷炫的移动软件。由于感知到移动市场的火爆,很多商家都想在其中占据一席之地,很多移动操作系统、移动软件由此产生。
比较常见的移动操作系统有Android、iOS、Windows Phone、Black Berry(黑莓)、HarmonyOS,还有一些比较小众的操作系统,如Palm、Ubuntu、Linux、MeeGo、Bada、Firefox OS等。下面主要介绍Android、iOS、HarmonyOS三种操作系统及对应的移动开发工具。
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备中,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
Android操作系统最初是由Andy Rubin开发的,2005年被Google公司收购,2008年9月,Android 1.0版本发行,经过多年的发展,Android版本不断更新,已经发行了很多版本,不断完善,Android 11版本的系统已经问世。2020年,运行Android操作系统的智能手机在全球智能手机市场份额中的占比高达87%,可见Android系统的火热程度。
Android最大的优势就是其开放性,Android操作系统是开源的,所以任何开发商都可以在此基础上创建自己的操作系统,应用于各种品牌的移动设备上。当然,Android对移动应用开发者也是开放的,用户可以开发各种应用。另外,由于Android为Google旗下产品,所以可以无缝对接各种Google优质服务,如搜索、地图等,为用户提供更好的服务。
由于Android的开源性,市面上产生了很多基于Android开发的操作系统,具体如下。
● EMUI(Emotion UI),是华为基于Android开发的情感化操作系统。
● MIUI,是小米公司旗下基于Android系统深度优化、定制、开发的手机操作系统。
● flyme,是魅族基于Android操作系统为智能手机量身打造的操作系统。
● ColorOS,是OPPO基于Android深度定制的操作系统。
● OriginOS,是vivo基于Android底层发布的新一代操作系统。
Android采用分层的体系架构,共四层,分别为应用程序层(Application)、应用程序框架层(Application Framework)、系统运行库层(Libraries、Android Runtime)、Linux内核层(Linux Kernel),具体内容会在第3章详细讲解,此处不再赘述。
Android原生开发的开发环境由Java环境、Android SDK、开发工具三部分组成。可以在不同操作系统的计算机上进行Android开发,如Windows、Linux、Mac,在不同的操作系统中所需要的开发环境都由这三部分组成,但是需要配置对应的开发环境。
(1)Java环境。Android开发基于Java语言,需要Java环境的支持,因此需要下载JDK(Java Development Kit)的安装包,安装配置Java环境,即安装JDK(包含JRE)。
(2)Android SDK。Android SDK(SDK:Software Development Kit,软件开发工具)为开发者提供了开发Android应用的开发组件,支持Windows/Linux/Mac平台,其包含了在Android平台上开发移动应用的各种工具集,如模拟器。
(3)开发工具。目前常用的主流开发工具包括Android Studio和Eclipse+ADT(Android Development Tool,Android开发工具),也可以使用IntelliJ IDEA。但是Google已经停止了对ADT的更新,正大力主推Android Studio,对比IntelliJ IDEA,Android Studio更加专业。Google官方推荐使用Android Studio。
iOS是由苹果公司开发的移动操作系统。它以Darwin(苹果计算机的一个开放源代码操作系统)为基础,属于类Unix的商业操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布了这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad及Apple TV等产品上。
由于iOS系统封闭,管理严格,同时具有独特的沙盒机制,其数据、信息因此得到保护,所以具有非常高的稳定性、安全性。iOS产品界面时尚、美观,操作流畅,给人良好的应用体验。另外,iOS系统与硬件的整合度高,开发时不用过多考虑适应不同的分辨率的设备的问题,减轻了开发人员的工作量,在这一点上和Android形成了极大的反差。
iOS系统平台架构分为如下四层。
● 可触摸层(Cocoa Touch layer):提供了各种与用户界面有关的框架。
● 媒体层(Media layer):通过它我们可以在应用程序中使用各种媒体文件。
● 核心服务层(Core Services layer):可以通过它来访问iOS的一些服务,如网络访问、定位、文件访问等。
● 核心操作系统层(Core OS layer):它包括内存管理、文件系统、电源管理及一些其他的操作系统任务。作为App开发者不需要与这一层打交道。
iOS程序开发采用Objective-C或Swift语言,开发环境包括硬件环境和软件环境两部分。首先需要拥有一台可以运行Mac OS的计算机,可以购买iMac、MacBook、MacBook Pro、MacBook Air、Mac Mini。有了能够运行Mac OS的计算机,还需要软件环境Xcode。Xcode是苹果提供的开发工具集,包括项目管理、创建执行程序、代码编辑、代码调试、代码库管理和性能调节等功能。Xcode本身提供效果非常好的模拟器,如果需要真机调试,就需要注册苹果账号。完成应用开发后,如果要将应用发布上架到App Store中,还需要申请、购买开发者账号。
HarmonyOS(鸿蒙系统)是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。华为于2019年8月9日在东莞华为开发者大会上正式发布该系统,它的诞生拉开永久性改变操作系统全球格局的序幕。
HarmonyOS旨在创造一个超级虚拟终端互联的世界,将人、设备、场景有机地联系在一起,即在传统的单设备系统能力的基础上,基于同一套系统的能力,适配多种终端形态,将消费者在全场景生活中接触的多种智能终端实现极速发现、极速连接、硬件互助、资源共享。2021年7月29日晚,华为举办新品发布会时表示,从6月2日开启升级后,到目前为止,HarmonyOS的升级用户已突破4000万。
HarmonyOS是华为公司开发的一款基于微内核、面向5G物联网、面向全场景的分布式操作系统,支持基于Android生态开发的应用平稳迁移。HarmonyOS的设计初衷是满足全场景智慧体验的高标准的连接要求,为此华为提出了HarmonyOS的四大特性。
(1)分布式架构。HarmonyOS首次将分布式架构用于终端OS,将分布式应用的底层技术实现难度对应用开发者屏蔽,使开发者能够聚焦自身业务逻辑,像开发同一终端一样开发跨终端分布式应用,也让最终消费者享受到了强大的跨终端业务协同能力为各使用场景带来的无缝体验。
(2)天生流畅。HarmonyOS通过使用确定时延引擎和高性能IPC两大技术解决现有系统性能不足的问题。确定时延引擎可在任务执行前分配系统中的任务执行优先级及时限,进行调度处理,优先保障优先级高的任务资源的调度,应用响应时延降低了25.7%。鸿蒙微内核结构小巧的特性使IPC(进程间通信)的性能大大提高,进程通信效率较现有系统提升了5倍。
(3)内核安全。HarmonyOS采用全新的微内核设计,微内核只提供最基础的服务,如多进程调度和多进程通信等。首次将形式化方法用于终端TEE,通过形式化方法可以显著提升安全等级。同时,由于微内核的代码量只有Linux宏内核的千分之一,其受攻击的概率也大幅降低。
(4)生态共享。HarmonyOS凭借多终端开发IDE,采用多语言统一编译,分布式架构Kit提供屏幕布局控件及交互的自动适配,支持控件拖拽,面向预览的可视化编程,从而使开发者可以基于同一工程高效构建多端自动运行App,实现真正的一次开发、多端部署,在跨设备之间实现生态共享。
HarmonyOS整体遵从分层设计,从下向上依次为内核层、系统服务层、应用框架层和应用层。HarmonyOS平台架构如图2-1所示。
图2-1 HarmonyOS平台架构
(1)内核层:内核子系统采用多内核设计,支持针对不同资源受限设备选用适合的OS内核。HarmonyOS驱动框架(HDF)是HarmonyOS硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。
(2)系统服务层:该层是HarmonyOS的核心能力集合。系统基本能力子系统集为分布式应用在HarmonyOS多设备上的运行、调度、迁移等操作提供基础能力,由分布式软总线、分布式数据管理、分布式任务调度、方舟多语言运行时子系统、公共基础库子系统、多模输入子系统、图形子系统、安全子系统、AI子系统等组成。基础软件服务子系统集提供公共的、通用的软件服务,由事件通知子系统、电话子系统、多媒体子系统、DFX子系统、MSDP&DV子系统等组成。增强软件服务子系统集提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务子系统、穿戴专有业务子系统、IOT专有业务子系统等组成。硬件服务子系统集提供硬件服务,由位置服务子系统、生物特征识别子系统、穿戴专有硬件服务子系统、IOT专有硬件服务子系统等组成。根据不同设备形态的部署环境,基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集内部可以按子系统粒度裁剪,每个子系统内部又可以按功能粒度裁剪。
(3)应用框架层:为HarmonyOS的应用程序提供了Java/C/C++/JS等多语言的用户程序框架和Ability框架,以及各种软硬件服务对外开放的多语言框架API;同时为采用HarmonyOS的设备提供了C/C++/JS等多语言的框架API,不同设备支持的API与系统的组件化裁剪程度相关。
(4)应用层:包括系统应用和扩展应用/三方应用。HarmonyOS的应用由一个或多个FA(Feature Ability)或PA(Particle Ability)组成。其中,FA有UI界面,提供与用户交互的能力;而PA无UI界面,提供在后台运行任务的能力及统一的数据访问抽象能力。基于FA/PA开发的应用能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。
HUAWEI DevEco Studio(以下简称DevEco Studio)是华为官方推荐的一款开发工具。DevEco Studio基于IntelliJ IDEA Community开源版本打造,是面向华为终端全场景多设备的一站式集成开发环境(IDE),为开发者提供工程模板创建、开发、编译、调试、发布等E2E的HarmonyOS应用开发服务。通过使用DevEco Studio,开发者可以更高效地开发具备HarmonyOS分布式能力的应用,进而提升创新效率。开发者可以登录HarmonyOS应用开发者门户下载DevEco Studio安装包。