Android 操作系统移植及关键技术研究
2021-03-23安占磊
安占磊
(江苏东大集成电路系统工程技术有限公司,江苏 南京211500)
移动智能终端大范围普及背景下,通讯技术迅猛发展,4G时代移动智能终端用户数量爆发式增长,而在5G 时代下,我国的5G 技术更是走到了时代前沿,关于手机操作系统的研究受到了相关技术人士的高度重视。Android 操作系统由于自身开放性特点,可以结合产品开发需求不断创新,更好的满足用户多元化需求,推动移动终端技术创新发展。但是,硬件厂商尚未公开Android 操作系统的移植过程,相关研究深度不足。而Android 系统架构复杂,移植需要大量理论知识和技术支持,因此分析研究Android 操作系统的移植技术很有必要,便于积累经验、推动技术创新,为后续工作开展提供参考。
1 Android 操作系统的构成和特点
1.1 Android 操作系统组成特点
1.1.1 Android 操作系统是针对移动通讯设备设计的软件综合平台,可以在多数智能手机上运行,移动智能终端的各项功能正常使用,均需要基于Android 平台展开,呈现鲜明的可植入性特点。
1.1.2 Android 操作系统各程序平台缺少关联性,不同软件呈现独立性特点,彼此之间独立存在,互不影响干扰,这一特性决定了Android 操作系统中各软件运行中可以同时为用户服务[1]。
1.1.3 Android 操作系统开放性特点,经过系统测试的软件均可以在Android 操作系统中运行,经过长期的发展创新,Android 操作系统已经成为应用最广泛的操作系统。就Android操作系统内部构成来看,其中包括中间件、操作系统和关键应用程序,基于Java 语言基础上支持Android 系统运行。
1.2 Android 操作系统应用构成
Android 操作系统具有较强的兼容性特点,因此关于Android 的操作系统构成组合较为多样,有着更加多元化的功能。一般情况下,Android 基本构成包含Intent Receiver、Activity、Content Provider 以及Service,但是这几个部分并非是系统必备的,特殊情况下只需要上述几种程序任意几种组合即可。作为Android 操作系统的基础应用程序,Activity 实际应用中需要每个类别对应相应用户接口,以此来保证用户事件快速响应。本质上来看,Activity 更像是一种屏幕窗口,用户结合自身操作需要来打开多个窗口,而这些窗口可以单独工作也可以同时工作。Intent Receiver 属于另一种程序类别,可以实现不同屏幕之间的变换,确保通讯设备对活动及时响应,如,来电铃声是通讯设备不可或缺的一种功能[2]。Service 程序,生命周期较长,致力于提供优质服务,在Android 操作系统中依据个性化用户需求来控制程序启停。Content Provider 程序具有存储功能,结合用户操作行为智能化记录和分析,以此来满足某一时段用户的操作需求,而这些数据的存储通常是有存储周期的,超过这一周期则会自动删除,具体的时限由于系统不同设置也不尽相同[3]。
从中可以看出,上述四个程序构成了Android 操作系统,直接决定了系统正常运行。
1.3 Android 操作系统运行过程
Android 操作系统的开启和操作,需要多程序配合发挥作用,这就需要设备首先初始化,唤醒设备的各项应用程序,并且保证程序启动后可以正常使用,所有程序响应服务器需求,这样才可以满足用户操作需求。Android 操作系统通过反馈用户个性化需求,借助专门的程序来针对性处理,进而快速反馈用户需求,在良性循环过程中来控制Android 操作系统运行。
图1 Android 操作系统架构
2 Android 操作系统的移植
2.1 Android 操作系统移植平台构建
Android 操作系统的移植,本质上是为了创造一个有助于Android 操作系统良性运行的环境,提升系统的运行效率,更好的满足用户多元化服务需求[4]。构建Android 操作系统目标平台,关键点在于获取Android 的源代码,在保障系统正常运行的同时,可以杜绝恶意入侵和病毒攻击。源代码获取途径多样,主要有以下几点:
2.1.1 安装Repo 程序获取源代码,需要从特定区域获得。2.1.2 为Repo 系统增加可执行权限,相较于其他方式,此种获取源代码形式更加可靠、安全、稳定。
图2 Android 操作系统移植
图3 JNI 技术和Android 应用
2.1.3 基于初始化形式来获取源代码,为Android 操作系统移植目标平台构建提供支持,此种形式应用较为普遍。
2.2 Android 操作系统移植
移植Android 操作系统,应紧紧围绕保障系统安全稳定运行,杜绝外部攻击目标,具体过程有构建Android 操作系统平台,获取源代码,Linux 内核移植和文件系统创建[5]。各个环节联系密切,任何一个环节展开均需要深入分析和考量,尤其是Linux 内核移植和文件系统创建最为重要,前者是依据系统平台运行要求来设置内核参数,内核源机器设备码同uboot 数据参数相契合。如果参数相悖,会导致数据连接出错,影响到通讯设备安全稳定运行。创建Android 操作系统的文件系统,主要是保障通讯设备相关数据分类存储。此类基础程序的应用是为了确保Android 操作系统可以正常运行,也是移植Android 操作系统不可或缺的组成部分[6]。
2.3 Android 操作系统移植技术要点
Android 操作系统移植过程较为复杂,专业性较强,对于工程师而言专业能力和实践操作经验要求较高,具体操作技术要点如下:
2.3.1 Linux 内核移植期间。一个关键点是保障驱动类型和配置文件精准无误,否则会对后期Android 操作系统运行带来不同程度的影响。需要注意的是,内核移植过程重要按照标准将驱动文件置入到内核源码树中,实现Android 操作系统正常驱动和使用。
2.3.2 Android 操作系统配备文件实效性需要得到保障。尽可能减少所占据空间,满足多功能需求。多数情况下,Android 操作系统配置工具包括界面、命令解释器等,此类配置工具较为常见[7]。
2.3.3 设置系统基本参数。作为Android 操作系统移植过程的重中之重,参数设置是否合理直接决定了Android 操作系统是否可以正常运行,如果移植期间有部分区域数据充值,则需要优先考虑到系统参数合理性,只有这样才能最大程度上提升Android 操作系统移植成功率。
3 Android 操作系统移植的关键技术
3.1 Linux 驱动技术
Android 操作系统移植中,需要运用诸多复杂的技术,其中Linux 驱动技术是核心技术之一,但并不等同于Linux 内核,Linux 驱动技术本质上是保障Android 操作系统正常运行的基础前提。Linux 技术应用,可以帮助设备初始化,提升设备运行效率;满足通讯设备内核、硬件之间数据传输,各项传输指令可以得到快速传输以及响应;Linux 技术涵盖内容多样、广泛,结合国内Linux 驱动技术来看,主要架构涵盖了用户空间驱动、应用程序、Linux 内核以及标准C 库等。应用程序作为操作系统运行的基本进程,也是各项工作展开的基础前提。用户空间驱动本质上是一个涵盖了诸多数据资料的库,标准C 库即libc。Linux 内核属于系统驱动环节,需要在前三个环节协调配合基础上方可实现,从中也可以看出Linux 技术是Android 操作系统的核心技术之一。
3.2 HAL 技术
HAL 技术即硬件抽象层技术,为库的层面通过设备驱动源码在其中封存后,保障库整体数据资料安全,以此来支持通讯设备正常使用。HAL 技术属于Android 操作系统移植过程的关键技术之一,从实际来看,通过对通讯设备Linux 内核与应用架构分离处理,保障操作系统可以基于Linux 内核正常工作,但却又不是完全依赖Linux 内核工作。HAL 仅仅是将部分Linux 内核工作分走,二者结合在一起并非是重叠。但是,结合现今的研究成果来看,关于HAL 和Linux 内核工作职能以及占比研究还有所不足,界限较为模糊。
3.3 JNI 技术
此项技术属于一种特殊的系统语言,Java 编程语言作为应用较为普遍的编程方式,多数计算机或是通讯设备编程中均有所应用。也正是这一特性,JNI 成为了Android 操作系统中的核心内容,具体应用中通过对系统程序或语言设定调整,形成专门的Java 数据库,在收到工作指令后数据库智能化判断指令要求第一时间响应。需要注意的是,在这个过程中Dalvik 虚拟机的使用尤为重要,程序受到调用本地库指令时将信息录入到本地库中,依据标准智能化筛选,进而提升系统的整体运行效率,为用户提供优质、多元的服务[8]。
4 结论
Android 操作系统的移植过程较为复杂,其中涉及到诸多专业性较强的技术,相较于国外,我国的研究还略有不足,有待进一步提升对其研究力度,增加行业投入,便于持续提升Android操作系统移植效果,为现代化社会发展做出更大的贡献。