龙芯平台安卓ARM动态库兼容系统的设计与实现

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:naicha125
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
安卓操作系统是基于Linux内核的移动操作系统,具有源码开放、兼容硬件丰富和易于开发等特点。龙芯中科作为自主创新的国产处理器研发机构,在移动互联网全面兴起的时代,有肩负起研发国产移动芯片的责任,安卓也成为龙芯平台上移动操作系统的最佳选择。由于早期移动市场被ARM长期独占,导致使用安卓NDK技术的安卓应用安装包都只携带了ARM版本的动态库,这种结构的安卓应用在龙芯平台上不兼容,不能正确运行。解决安卓ARM应用在龙芯平台上的兼容性问题对于龙芯进军移动市场具有重要意义。  本文通过分析安卓虚拟机运行机制及安卓JNI(Java Native Interface)调用原理,深入剖析安卓ARM应用程序在MIPS平台上不兼容的原因,并提出了一个第三方动态库跨平台兼容性问题的通用解决方案——“动态库跨平台二进制兼容模型”,基于该模型,设计并实现了龙芯平台安卓ARM动态库兼容系统。该系统利用自定义的动态链接器实现ARM动态库在龙芯平台上的加载,再采用二进制翻译技术,将ARM动态库中的二进制指令翻译成为MIPS指令,从而解决了龙芯平台上安卓ARM应用程序的兼容性问题。本文作出的贡献有:  1.提出“动态库跨平台二进制兼容模型”。通过分析安卓JNI调用原理,找出安卓ARM应用程序在第三方平台上不兼容的根本原因,在此基础上提出了一个针对第三方动态库跨平台兼容性问题的通用解决方案——“动态库跨平台二进制兼容模型”,并对模型中包含的动态连接器、二进制翻译器、控制核心三个模块的实现进行了技术分析。  2.设计并实现了龙芯平台上安卓ARM动态库兼容系统,解决了安卓ARM应用程序在龙芯平台上的兼容性问题。基于“动态库跨平台二进制兼容模型”,结合ARM指令集特点,实现了安卓ARM动态库在MIPS平台上的加载、链接及二进制翻译执行,并按照安卓ART虚拟机NativeBridge接口要求对系统进行封装,实现了与安卓虚拟机的整合。
其他文献
入侵检测技术是当前网络安全的研究热点之一。入侵检测系统对所有流经网络的流量进行深度分析、检测与响应。生物免疫系统与计算机入侵检测系统在功能上有很大的相似性,入侵免
随着计算机网络、视频压缩等关键技术的飞速发展,流媒体应用日益广泛,视频传输的研究也越来越受到重视,但当前的IP网络只提供尽力而为的服务,不提供任何服务质量(QoS)保证。
随着计算机的普及和网络技术的不断进步,人们对信息共享的需求增加,P2P技术得到越来越多的应用。随着接入网络的计算机数量大量增加,IP地址资源就愈加显得捉襟见肘。为了解决IP
机器人学是近年来迅速发展的一个高技术领域。随着机器人学的发展,机器人的应用领域不断拓宽,机器人作业的任务和环境的复杂性也不断增加。仿人机械手作为机器人的重要组成部分
据统计,人类社会生产和生活中所接触到的各类信息80%以上与地理位置和空间分布有关。地理信息已成为国家重要的基础性、战略性信息资源,是国家信息化建设的重要内容,也是整合各类
网络社区,是目前广受人们尤其是大学生欢迎的重要网络应用。现有的网络社区已经能提供交友、购物、教育、娱乐等等服务,也是社会热点与焦点问题的重要发散地。进入web2.0时代之
现实世界中的优化问题通常是多属性的,一般是对多个目标的同时优化。如一个国家的最优良性发展,涉及到经济的快速增长、社会秩序的稳定、环境的保护和改善等多个方面。在这里,经
随着信息化的深入发展,FTP服务器作为一种必不可少的文件共享方式在人们的生活中扮演着越来越重要的角色。由于传统的FTP服务器完全依靠少数的管理员来管理所有用户和文件资源
面向服务架构(SOA)用开放的标准把企业的业务功能包装成标准的服务。这种服务通过明确的、与实现无关的接口来定义,服务被松散绑定,并且可以通过强调位置透明性和互操作性的通
人脸识别是模式识别和计算机视觉中的一个研究热点。在实际应用中,由于人脸图像是较为复杂的,因此需要对它进行数据降维,以避免维数灾难问题,这一过程也称为特征提取。在众多特征