CN102929593B - 一种Android系统兼容内置应用的方法 - Google Patents

一种Android系统兼容内置应用的方法 Download PDF

Info

Publication number
CN102929593B
CN102929593B CN201110231254.0A CN201110231254A CN102929593B CN 102929593 B CN102929593 B CN 102929593B CN 201110231254 A CN201110231254 A CN 201110231254A CN 102929593 B CN102929593 B CN 102929593B
Authority
CN
China
Prior art keywords
application
built
android
adaptation
android system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110231254.0A
Other languages
English (en)
Other versions
CN102929593A (zh
Inventor
张辉
林军
孙鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Xinrand Network Technology Co ltd
Original Assignee
Institute of Acoustics CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Acoustics CAS filed Critical Institute of Acoustics CAS
Priority to CN201110231254.0A priority Critical patent/CN102929593B/zh
Publication of CN102929593A publication Critical patent/CN102929593A/zh
Application granted granted Critical
Publication of CN102929593B publication Critical patent/CN102929593B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种Android系统兼容内置应用的方法,该方法用于实现内置应用与Android操作系统的兼容,所述方法在Android操作系统和内置应用之间增加内置应用适配层,同时采用内置应用封装适配框架将内置应用封装为Android应用;其中,所述内置应用为采用C/C++的内置应用。所述内置应用封装适配框架采用Android操作系统的NDK机制将内置应用封装为Android应用;其中,所述Android?NDK机制即Android本地开发机制。所述内置应用适配层进一步包含:内置应用封装适配框架模块,用于说明内置应用封装框架的模块划分和各模块功能;内置应用图形接口适配模块,用于负责内置应用图形显示在Android系统上可管可控;和内置应用事件接收适配模块,用于完成内置应用接收Android系统输入事件并且及时响应该事件。

Description

一种Android系统兼容内置应用的方法
技术领域
本发明涉及嵌入式技术领域,尤其涉及一种Android系统兼容内置应用的方法。
背景技术
多年来,电视终端技术已经有了长足的发展,性能逐渐提升,但异构环境非常复杂。据统计,目前国内有机顶盒厂商200多家,芯片解决方案也有数十家。传统的终端开发方式多针对特定运营商的特定业务进行定制开发,新业务的部署需要面向终端硬件进行一对一的移植开发。增值业务的开展依赖于终端生产厂商的全程参与,新增值业务的开发需要整个终端软件的二次开发,成本高、周期长,不利于增值业务的整体布局,严重制约了增值业务的开展。终端软件技术成为屏蔽其差异性的关键所在。目前的终端软件技术主要在向两个方向发展:中间件技术和专用操作系统技术。
智能电视刚刚起步,其操作系统并没有统一的标准,主要由智能手机操作系统演变和发展而来,常见的操作系统大多基于Linux或Android操作系统。如索尼公司推出的GoogleTV和TCL推出的智能电视均采用Android操作系统,康佳公司则基于Linux系统开发了自己的OMI智能电视操作系统。Android是Google公司于2007年11月5日推出的开放式手机操作系统,后续由以Google为首的开放手机联盟(OpenHandsetAlliance)开发,并随着消费类电子产品的发展,应用范围逐渐从手机领域扩展到平板电脑、智能电视等设备。Android是一个真正意义上的开放式运行平台,以Java语言作为应用程序开发语言,并提供了完善的开发环境和测试工具集,提高了应用开发的效率,吸引了大量开发者投入Android应用程序的开发中来,并且通过Ashmem匿名共享内存和低内存管理等机制,保障了系统内存的高效使用,优化了系统性能。
由于历史原因,终端厂商和运营商一般都会采用C/C++开发内置应用,而Android市场提供的丰富的第三方应用又具有非常大的诱惑力,支持Android应用是对智能电视领域“应用商店”的巨大补充。因而终端厂商自主开发电视操作系统一般会要求支持内置应用和Android应用。目前常见的兼容模式,是修改开源Android系统来定制各厂商自己的电视操作系统。这个模式要求在Android架构各个层面上对源码进行修改,扩展电视应用相关API。内置应用也必须遵循Android系统的标准进行重新开发。这种模式一方面不能复用以前的内置应用,浪费大量人力物力。另外一方面Android仍然存在着一些不足之处,其开发模式受限于Google公司,其他研发公司无权进入被牢牢控制的系统底层,Google频繁的升级Android版本并持续修改API,造成了严重的兼容性问题。尤其厂商定制的电视操作系统在Android系统各个层面上做了大量修改,一旦更新版本定制功能大部分必须重新开发。
发明内容
本发明的目的在于,为克服以上现有技术的的不足,本发明提出了一种Android系统兼容内置应用的方法。
本发明的内置应用和Android应用统一管理的方案。即通过增加内置应用适配层来达到内置应用与Android系统兼容的目的,并使用Android的NDK机制将内置应用封装成普通Android应用使其受管于Android系统。
为实现上述目的,本发明提供一种Android系统兼容内置应用的方法,该方法用于实现内置应用与Android操作系统的兼容,所述方法在Android操作系统和内置应用之间增加内置应用适配层,同时采用内置应用封装适配框架将内置应用封装为Android应用;其中,所述内置应用为采用C/C++的内置应用。
可选的,所述内置应用封装适配框架采用Android操作系统的NDK机制将内置应用封装为Android应用;其中,所述AndroidNDK机制即Android本地开发机制。
上述技术方案中,所述内置应用适配层进一步包含:
内置应用封装适配框架模块,用于说明内置应用封装框架的模块划分和各模块功能;内置应用图形接口适配模块,用于负责内置应用图形显示在Android系统上可管可控;和内置应用事件接收适配模块,用于完成内置应用接收Android系统输入事件并且及时响应该事件。
优化的,所述内置应用适配层还包含:内置应用生命周期同步模块,用于负责Android系统对封装后的内置应用的生命周期进行管控。
上述技术方案中,所述内置应用封装适配框架模块进一步包含如下子模块:
JAVA子模块,用于作为内置应用适配层代码的一部分,为Android应用提供基本要素;本地适配动态库子模块,用于提供内置应用适配层功能,并通过JAVA本地调用机制与JAVA子模块进行交互;和内置应用及相关组件库子模块,用于保证内置应用及其组件库以动态库形式提供。
上述技术方案中,所述内置应用图形接口适配模块工作方法包含如下步骤:确定Android操作系统可提供的图形资源,该图形资源受控于Android窗口管理服务;且该图形资源是Android相关图形控件;将可提供的图形资源传递给内置应用,主要通过JAVA本地调用机制将JAVA子模块中生成的图形资源传递给本地适配动态库模块;本地适配动态库子模块实现内置应用的图形移植层接口,该接口实现使用步骤(2)中收到的可提供的图形资源。
上述技术方案中,所述内置应用事件接收适配模块工作方法包含如下步骤:1)拦截Android系统事件或输入事件的步骤;2)过滤步骤1)中获取的事件的步骤;3)传递步骤2)过滤后的事件给内置应用,通过JAVA本地调用机制将步骤2)中过滤剩下的事件传递给本地适配动态库子模块;4)采用本地适配动态库子模块实现内置应用的事件接收移植层接口,该接口实现使用步骤3)中收到过滤后的事件。
优化的,所述内置应用生命周期同步模块工作方法包含如下步骤:
1)确定内置应用提供生命周期同步的相关API的步骤;2)采用本地适配动态库模块实现相关生命周期同步适配函数,相关函数实现细节使用步骤1)中提供的内置应用API;3)采用JAVA模块实现Android应用的生命周期管理相关函数,相关函数实现细节通过JAVA本地调用机制调用步骤2)中本地适配动态库实现的本地函数。
本发明的优点在于:首先,本发明提供的Android系统兼容内置应用的方法,满足系统对内置应用与增值应用进行统一管控的需求,最大化的减少内置应用的源码修改,采用高效的适配层机制在Android系统上兼容内置应用。其次,本发明提供的Android系统兼容内置应用的方法,不需要修改和定制任何的Android系统源代码,不会存在Android系统升级导致管理方法失效等问题。
总之,本发明提供的Android系统兼容内置应用的方法,有效的利用了Android的图形资源,并且提供了灵活高效的事件转发接收机制,保证了内置应用在Android系统管控下的高效同步。本发明的一种Android系统兼容内置应用的方法,无需改动Android系统,可以很好的跟进Android版本。同时采取适配层机制保证以前开发的内置应用只需要重新实现其移植层代码就可以轻松复用,不需要重新开发。
附图说明
图1为本发明中内置应用与Android系统整体结合框图;
图2为本发明中内置应用封装适配框图;
图3为本发明中典型内置应用图形适配方法流程图;
图4为本发明中内置应用事件接收机制流程图。
具体实施方式
下面结合附图和具体实施例,对本发明的Android系统兼容内置应用的方法作进一步阐述。
本发明通过提出一种内置应用在Android系统上的适配层机制和内置应用封装适配框架,利用Android系统对内置应用和Android应用进行统一管理。本发明Android兼容形态由内置应用、相关组件库、Android适配层和Android操作系统构成。其中Android适配层即本方法提出的内置应用在Android系统上的适配层机制的具体载体,Android操作系统即不做任何定制的原生Android操作系统。本发明的优点在于既能保证内置应用和Android应用统一管控,同时最大化复用内置应用源码,兼容不同版本Android系统。
本发明提出了一种Android系统兼容内置应用的方法,该方法提出了一种内置应用在Android系统上的适配层机制和内置应用封装适配框架,从而通过Android系统对内置应用和Android应用进行统一管理。所述适配层包含如下四个部分:
1)内置应用封装适配框架,说明内置应用封装框架的模块划分和各模块功能。
2)内置应用图形接口适配方法,负责内置应用图形显示在Android系统上可管可控。
3)内置应用事件接收适配方法,完成内置应用接收系统输入事件并且及时响应。
4)内置应用生命周期同步机制,负责Android系统对封装后的内置应用进行生命周期管控。
如图1所示,该图为内置应用与Android系统整体结合框图。本发明Android兼容形态由内置应用、相关组件库、Android适配层和Android操作系统构成。其中Android适配层即本方法提出的内置应用在Android系统上的适配机制的具体载体。Android操作系统即不做任何的修改的原生Android操作系统,保证本发明可以很好的更进Android版本。
如图2所示,该图是内置应用的封装适配框图,为了将内置应用纳入Android管理框架,本发明通过AndroidNDK机制进行内置应用动态库及相关JAVA源码编译,将内置应用封装成Android应用。该框架包含如下部分:
1)JAVA子模块。本发明Android应用的基本要素如Activity(活动)由该模块代码实现,该模块还生成图形资源,拦截过滤系统事件或输入事件,响应相关系统事件,它作为内置应用适配层的一部分存在。
2)本地适配动态库子模块,该模块也提供适配层功能,并通过JAVA本地调用机制(JNI)与JAVA模块进行交互。JAVA子模块和本模块共同完成内置应用适配功能。
3)内置应用及相关组件库子模块,保证内置应用及组件库以动态库的形式提供,移植接口代码在本地适配动态库子模块中实现。
如图3所示,该图是一个内置应用在Android系统上的图形接口适配方法具体实施例。包含如下步骤:
1)JAVA子模块使用Android系统提供的图形控件SurfaceView,该控件可管控,服从Android窗口管理器管理,并且能通过相关函数响应系统输入事件。
2)在步骤(1)中SurfaceView上创建Bitmap图形资源,该资源能在SurfaceView上直接绘制。
3)本地适配动态库子模块通过JAVA本地调用机制(JNI)获取步骤(2)中的图形资源,转成SkBitmap本地图形资源。
4)本地适配动态库子模块使用步骤(3)中的SkBitmap本地图形资源实现内置应用的移植层接口。
上述步骤是具体实施例,其中Android系统提供的图形资源可以是步骤(1)(2)中提到的图形资源,但不限于此,其他任何满足条件的图形资源都适用于本发明。
如图4所示,该图是一种内置应用在Android系统上的事件接收方法流程图,具体包含如下步骤:
1)内置应用封装成Android应用,JAVA模块提供Activity(活动),SurfaceView(图形控件)等能响应输入事件的JAVA类。其他满足条件的JAVA类都适用于本发明。
2)实现步骤(1)中JAVA类提供的相关事件响应函数拦截Android系统事件或输入事件。如keyUp/keyDown函数拦截系统键盘输入事件,mouseDown/mouseUp/mouseMove函数拦截系统鼠标输入事件。其他相关事件响应函数都适用于本发明。
3)JAVA模块过滤掉步骤(2)中不需要传递给内置应用的无效事件。
4)本地适配动态库模块通过JAVA本地调用机制(JNI),获取步骤(3)中过滤后的事件。
5)本地适配动态库模块使用步骤(4)中收到的事件实现内置应用的事件移植层接口。
本发明还提出了一种内置应用生命周期同步的方法,该方法包含如下步骤:
1)确定内置应用提供生命周期同步的相关API。如内置应用的开始运行函数startApp。
2)本地适配动态库模块使用步骤(1)中提供的内置应用API实现相关生命周期同步适配函数。
如使用步骤(1)中startApp函数实现本模块中StartNativeApp函数。
3)JAVA模块通过JAVA本地调用机制(JNI)调用步骤(2)中的相关适配函数来实现Android应用的生命周期管理相关函数。JAVA模块提供包括Activity(活动)在内受控于Android生命活动周期管理的关键类。这些关键类的相关函数,如onCreate函数创建应用系统资源,即要同步内置应用的初始化。又如OnStart函数开始运行程序,即要同步运行内置应用,可以调用步骤(2)中的StartNativeApp函数实现。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (6)

1.一种Android系统兼容内置应用的方法,该方法用于实现内置应用与Android系统的兼容,所述方法在Android系统和内置应用之间增加内置应用适配层,同时采用内置应用封装适配框架将内置应用封装为Android应用;
其中,所述内置应用为采用C/C++的内置应用;
所述内置应用适配层进一步包含:
内置应用封装适配框架模块,用于说明内置应用封装适配框架的模块划分和各模块功能;
内置应用图形接口适配模块,用于负责内置应用图形显示在Android系统上可管可控;
内置应用事件接收适配模块,用于完成内置应用接收Android系统输入事件并且及时响应该事件;
所述内置应用封装适配框架模块进一步包含如下子模块:
JAVA子模块,用于作为内置应用适配层代码的一部分,为Android应用提供基本要素;
本地适配动态库子模块,用于提供内置应用适配层功能,并通过JAVA本地调用机制与JAVA子模块进行交互;
内置应用及相关组件库子模块,用于保证内置应用及其组件库以动态库形式提供。
2.根据权利要求1所述的Android系统兼容内置应用的方法,其特征在于,所述内置应用封装适配框架采用Android系统的NDK机制将内置应用封装为Android应用;
其中,所述Android系统的NDK机制即Android本地开发机制。
3.根据权利要求1所述的Android系统兼容内置应用的方法,其特征在于,所述内置应用适配层还包含:
内置应用生命周期同步模块,用于负责Android系统对封装后的内置应用的生命周期进行管控。
4.根据权利要求1所述的Android系统兼容内置应用的方法,其特征在于,所述内置应用图形接口适配模块工作方法包含如下步骤:
确定Android系统可提供的图形资源,该图形资源受控于Android窗口管理服务;且该图形资源是Android相关图形控件;
将可提供的图形资源传递给内置应用,主要通过JAVA本地调用机制将JAVA子模块中生成的图形资源传递给本地适配动态库子模块;
本地适配动态库子模块实现内置应用的图形移植层接口,该接口实现使用上步中收到的可提供的图形资源。
5.根据权利要求1所述的Android系统兼容内置应用的方法,其特征在于,所述内置应用事件接收适配模块工作方法包含如下步骤:
1)拦截Android系统事件或输入事件的步骤;
2)过滤步骤1)中获取的事件的步骤;
3)传递步骤2)过滤后的事件给内置应用,通过JAVA本地调用机制将步骤2)
中过滤剩下的事件传递给本地适配动态库子模块;
4)采用本地适配动态库子模块实现内置应用的事件接收移植层接口,该接口实
现使用步骤3)中收到过滤后的事件。
6.根据权利要求3所述的Android系统兼容内置应用的方法,其特征在于,所述内置应用生命周期同步模块工作方法包含如下步骤:
1)确定内置应用提供生命周期同步的相关API的步骤;
2)采用本地适配动态库子模块实现相关生命周期同步适配函数,相关生命周期
同步适配函数实现细节使用步骤1)中提供的内置应用相关API;
3)采用JAVA子模块实现Android应用的生命周期管理相关函数,相关函数实现细节通过JAVA本地调用机制调用步骤2)中本地适配动态库子模块实现的相关生命周期同步适配函数。
CN201110231254.0A 2011-08-12 2011-08-12 一种Android系统兼容内置应用的方法 Active CN102929593B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110231254.0A CN102929593B (zh) 2011-08-12 2011-08-12 一种Android系统兼容内置应用的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110231254.0A CN102929593B (zh) 2011-08-12 2011-08-12 一种Android系统兼容内置应用的方法

Publications (2)

Publication Number Publication Date
CN102929593A CN102929593A (zh) 2013-02-13
CN102929593B true CN102929593B (zh) 2016-01-06

Family

ID=47644406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110231254.0A Active CN102929593B (zh) 2011-08-12 2011-08-12 一种Android系统兼容内置应用的方法

Country Status (1)

Country Link
CN (1) CN102929593B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103279382B (zh) * 2013-04-27 2016-12-28 北京微云即趣科技有限公司 原生方式访问资源的方法、Java端、原生端及系统
CN105991697A (zh) * 2015-02-06 2016-10-05 深圳富泰宏精密工业有限公司 点对点通信实现方法及系统
CN105573764B (zh) * 2015-12-24 2019-03-22 北京大学 一种面向智能手表的Android应用重构方法
CN105701406B (zh) * 2015-12-31 2018-09-07 深圳市证通电子股份有限公司 安卓平台运行传统支付应用的方法
CN107179916B (zh) * 2016-03-09 2019-04-23 腾讯科技(深圳)有限公司 一种应用程序开发方法、装置、设备以及开发架构系统
CN106681736A (zh) * 2016-12-30 2017-05-17 深圳Tcl数字技术有限公司 Linux系统业务在Android系统实现的方法及装置
CN109840133A (zh) * 2017-11-29 2019-06-04 北京高德云图科技有限公司 应用功能的运行方法及装置
CN110992607A (zh) * 2019-11-22 2020-04-10 福建新大陆支付技术有限公司 一种通过接口协议方式接入终端的方法
CN113282365B (zh) * 2021-07-23 2021-11-09 深圳掌酷软件有限公司 锁屏界面的显示方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1926026A2 (en) * 2006-11-24 2008-05-28 Accenture Global Services GmbH Application management tool
CN101193260A (zh) * 2007-03-23 2008-06-04 深圳市同洲电子股份有限公司 Ip机顶盒通用软件平台系统及基于此系统的ip机顶盒
CN101630251A (zh) * 2009-08-05 2010-01-20 中国船舶重工集团公司第七○九研究所 跨桌面和嵌入式系统的图形界面开发方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1926026A2 (en) * 2006-11-24 2008-05-28 Accenture Global Services GmbH Application management tool
CN101193260A (zh) * 2007-03-23 2008-06-04 深圳市同洲电子股份有限公司 Ip机顶盒通用软件平台系统及基于此系统的ip机顶盒
CN101630251A (zh) * 2009-08-05 2010-01-20 中国船舶重工集团公司第七○九研究所 跨桌面和嵌入式系统的图形界面开发方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Android NDK开发环境实现与应用;赵宏伟;《电脑知识与技术》;20101231;第6卷(第35期);第10055-10057、10060页 *

Also Published As

Publication number Publication date
CN102929593A (zh) 2013-02-13

Similar Documents

Publication Publication Date Title
CN102929593B (zh) 一种Android系统兼容内置应用的方法
CN101833465B (zh) 一种支持应用程序动态加载运行的嵌入式系统
CN104236579B (zh) 一种基于Android内核层实现高精度卫星导航定位方法
CN110134378A (zh) 应用程序创建方法及装置、计算机设备及存储介质
CN101876906B (zh) 一种利用Linux应用在Android系统中运行的方法及装置
CN102819452B (zh) 一种从android系统获取数据的方法
CN105447643A (zh) 一种面向云计算平台的科学工作流系统及方法
CN106371838A (zh) 一种维护软件包依赖关系的方法及系统
CN104657149A (zh) 一种存储系统的管理模块的软件框架实现方法
CN107977369B (zh) 便于移植的嵌入式数据库管理系统
CN102622263B (zh) 机顶盒上基于嵌入式系统虚拟机的实现方法
CN105630534A (zh) 基于TrustZone架构的应用程序执行方法、装置和终端
CN101158894B (zh) 一种构件化软件系统中动态自动适配的编程系统及方法
CN102364434A (zh) 一种整合Wine与Android鼠标输入的方法
CN101266543A (zh) 一种图形界面处理装置和方法
CN101431569B (zh) 可自定制和面向网络服务的手机桌面环境的实现方法
CN112114789A (zh) 一种业务开发方法及设备
CN103870280B (zh) 基于flex与jsp的网页无缝结合处理方法
CN101110031A (zh) 用于灵活在线/离线部署n层软件应用程序的错接接口
CN101236510B (zh) 一种ejb集群的失败恢复处理方法及系统
CN101819524B (zh) Rfid阅读器的访问方法及其接口驱动设备
CN114579091B (zh) 跨操作系统的机器人流程自动化系统及方法
CN102185970A (zh) 手机视频播放器组件模型对象接口规范的建立方法
CN105528024A (zh) 用于网际协议通信的电子装置
CN101478837B (zh) 移动终端的java应用平台及其扩展方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210804

Address after: Room 1601, 16th floor, East Tower, Ximei building, No. 6, Changchun Road, high tech Industrial Development Zone, Zhengzhou, Henan 450001

Patentee after: Zhengzhou xinrand Network Technology Co.,Ltd.

Address before: 100190, No. 21 West Fourth Ring Road, Beijing, Haidian District

Patentee before: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES

TR01 Transfer of patent right