[发明专利]兼容Android本机程序的方法及系统无效
| 申请号: | 201110436913.4 | 申请日: | 2011-12-22 |
| 公开(公告)号: | CN103176838A | 公开(公告)日: | 2013-06-26 |
| 发明(设计)人: | 陈士凯 | 申请(专利权)人: | 盛乐信息技术(上海)有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48 |
| 代理公司: | 上海思微知识产权代理事务所(普通合伙) 31237 | 代理人: | 菅秀君 |
| 地址: | 201203 上海市浦东新区*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 兼容 android 程序 方法 系统 | ||
技术领域
本发明涉及一种兼容Android本机程序的方法,特别是一种在标准POSIX系统中兼容Android本机程序(Native Application)的方法。
背景技术
Google的Android系统基于Linux Kernel开发,运行在Android系统的一部分系统核心应用、需要与硬件通讯的组件或是对性能要求较高组件往往采用Android系统本机代码编写,通常将这些应用或者组件称为Android本机程序(Native Application),这些本机程序通常依赖于各种Android系统提供的Android本机函数库以及使用Java编写的Android Java函数库。
因为Android系统基于Linux Kernel开发,所以在相同硬件构架下,将Android本机程序移植运行于其它基于POSIX系统成为了可能,现有的实现方式包括如下三种:
1)在自主开发基于Linux Kernel的操作系统的前期,使用Android上成熟的本机应用/函数库作为原型验证系统功能;。
2)在自主开发的操作系统发布的早期,使用从Android移植来的程序的来丰富自身平台的应用;。
3)为达到运行Android本机程序的手段,使用虚拟化/模拟器方式,在目标操作系统中运行完整的系统虚拟机/模拟器,模拟整个Android操作系统。
上述第1)和2)种实现方式主要是将Android本机程序运行所需的环境(包括JVM虚拟机)完整的移植至目标系统,但这样的实现途径往往工程量较大,且需要对目标系统做出较大改动,因此降低的实用性。
上述第3)种实现方式虽然不作任何移植工作,但这种实现方式的缺点是非常消耗系统的资源。
发明内容
本发明的目的在于提供一种兼容Android本机程序的方法及系统,无需在目标系统上完整移植整个Android运行环境,也无需搭建JVM虚拟机,同时能够以充分发挥目标系统性能的方式去模拟Android本机程序所需的依赖项,从而可以实现目标系统更高的移植运行性能。
为解决上述问题,本发明提供一种兼容Android本机程序的方法,包括:
采用目标POSIX系统的本机代码来模拟Android本机程序所依赖的Bionic C运行库;
采用目标POSIX系统的本机代码来模拟Android本机程序所依赖的第一Android本机函数库;
采用目标POSIX系统的本机代码来模拟Android本机程序所依赖的Android Java函数库;
将Android本机程序所依赖的第二Android本机函数库直接移植到目标POSIX系统中。
进一步的,在上述方法中,所述第一Android本机函数库为复杂的Android本机函数库,所述第二Android本机函数库为独立或简单的Android本机函数库。
进一步的,在上述方法中,所述复杂的Android本机函数库包括SurfaceFlinger库、StageFright库或Binder库。
进一步的,在上述方法中,独立或简单的Android本机函数库包括libcutils库或libutils库。
进一步的,在上述方法中,采用目标POSIX系统的本机代码来模拟Android本机程序所依赖的Bionic C运行库步骤中包括消除Bionic C运行库与目标POSIX系统的Gnu C运行库在ABI与API上的差异。
进一步的,在上述方法中,采用函数挂钩的模式消除Bionic C运行库与目标POSIX系统的Gnu C运行库在ABI上的差异。
进一步的,在上述方法中,采用目标POSIX系统的本机代码来模拟Bionic C运行库中的API。
进一步的,在上述方法中,采用目标POSIX系统的本机代码来模拟Android本机程序所依赖的第一Android本机函数库步骤中,包括提供与所述复杂的Android本机函数库的API功能完全一致的模拟实现。
进一步的,在上述方法中,采用目标POSIX系统的本机代码来模拟Android本机程序所依赖的第一Android本机函数库步骤中,包括仅模拟出所述复杂的Android本机函数库的API具体调用参数下的行为。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于盛乐信息技术(上海)有限公司,未经盛乐信息技术(上海)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110436913.4/2.html,转载请声明来源钻瓜专利网。





