外设应用程序的移植方法及其系统的制作方法

文档序号:10654282阅读:380来源:国知局
外设应用程序的移植方法及其系统的制作方法
【专利摘要】本发明提供一种外设应用程序的移植方法及其系统,所述方法通过预设的具有编译基于Android系统的编译脚本和基于Ubuntu系统的编译脚本的功能Eclipse平台,编译得到基于Android系统的第一文件配置编译脚本、以及基于Ubuntu系统的第二文件配置编译脚本,执行所述第一文件配置编译脚本以及第二文件配置编译脚本,得到相应的功能指令封装包以及接口封装包,在外设的应用程序中调用相应的功能指令封装包或接口封装包,编译所述应用程序,将编译后的应用程序移植到所述外设对应的Android系统终端设备或Ubuntu系统终端设备的系统中,实现实用程序移植两个平台,从而提高外设应用程序的通用性。
【专利说明】
外设应用程序的移植方法及其系统
技术领域
[0001]本发明涉及软件开发领域,特别是一种外设应用程序的移植方法及其系统。【背景技术】
[0002]随着嵌入式通信技术的不断发展,基于Android操作系统和嵌入式Ubuntu操作系统的嵌入式系统应用也越来越广泛,但是,智能硬件产品操作系统、核心板和外设的多样性,使得应用层需要做大量的移植工作。例如,基于RK2918、RK3128、RK3188等芯片的产品, 它们可能接上不同的嵌入式打印机芯,对于应用层来说,需要做的适配工作量较大,不利于同一款应用在不同产品上的移植。
[0003]目前,针对嵌入式打印机、1C卡、磁条卡、非接卡、PSAM卡以及钱箱等外设,有专门的SDK(Software Development Kit,软件开发工具包)把对外设的适配和操作指令进行封装、编译。但是,应用程序的适配只能针对某一种应用平台,对于不同平台的应用程序,需要开发相应的应用程序与之适配,因此应用程序的通用性不高。
【发明内容】

[0004]针对上述现有技术中存在的问题,本发明提供一种外设应用程序的移植方法及其系统,能够提高外设应用程序的通用性。
[0005]本发明的外设应用程序的移植方法,技术方案如下:
[0006]通过预设的Eclipse平台编译得到基于Android系统的第一文件配置编译脚本、以及基于Ubuntu系统的第二文件配置编译脚本;所述Eel ipse平台具有编译基于Android系统的编译脚本和基于Ubuntu系统的编译脚本的功能;所述第一文件配置编译脚本用于将基于 Android系统的预设功能指令以及接口进行封装,所述第二文件配置编译脚本用于将基于 Ubuntu系统的预设功能指令以及接口进行封装;
[0007]执行所述第一文件配置编译脚本以及第二文件配置编译脚本,得到相应的功能指令封装包以及接口封装包;
[0008]在外设的应用程序中调用相应的功能指令封装包或接口封装包,编译所述应用程序;
[0009]将编译后的应用程序移植到所述外设对应的Android系统终端设备或Ubuntu系统终端设备的系统中。
[0010]本发明的外设应用程序的移植系统,包括:[〇〇11]编译模块,用于通过预设的Eclipse平台编译得到基于Android系统的第一文件配置编译脚本、以及基于Ubuntu系统的第二文件配置编译脚本;所述Eclipse平台具有编译基于Android系统的编译脚本和基于Ubuntu系统的编译脚本的功能;所述第一文件配置编译脚本用于将基于Android系统的预设功能指令以及接口进行封装,所述第二文件配置编译脚本用于将基于Ubuntu系统的预设功能指令以及接口进行封装;
[0012]封装模块,用于执行所述第一文件配置编译脚本以及第二文件配置编译脚本,得到相应的功能指令封装包以及接口封装包;
[0013]调用模块,用于在外设的应用程序中调用相应的功能指令封装包或接口封装包, 编译所述应用程序;
[0014]运行模块,用于将编译后的应用程序移植到所述外设对应的Android系统终端设备或Ubuntu系统终纟而设备的系统中。[〇〇15]本发明的外设应用程序的移植方法及其系统,通过预设的具有编译基于Android 系统的编译脚本和基于Ubuntu系统的编译脚本的功能Eel ipse平台,编译得到基于Android 系统的第一文件配置编译脚本、以及基于Ubuntu系统的第二文件配置编译脚本,执行所述第一文件配置编译脚本以及第二文件配置编译脚本,得到相应的功能指令封装包以及接口封装包,在外设的应用程序中调用相应的功能指令封装包或接口封装包,编译所述应用程序,将编译后的应用程序移植到所述外设对应的Android系统终端设备或Ubuntu系统终端设备的系统中,实现实用程序移植两个平台,从而提高外设应用程序的通用性。【附图说明】
[0016]图1为一个实施例的外设应用程序的移植方法的流程示意图;
[0017]图2为一个实施例的外设应用程序的移植系统的结构示意图。【具体实施方式】
[0018]为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
[0019]请参阅图1中一个实施例的外设应用程序的移植方法的流程示意图,包括步骤 S101至步骤S104:[0〇2〇]S101,通过预设的Eclipse平台编译得到基于Android系统的第一文件配置编译脚本、以及基于Ubuntu系统的第二文件配置编译脚本。[〇〇21]其中,所述Eclipse(集成开发环境)平台是一个开放源代码的、基于Java的可扩展开发平台,通过预先设置,使Eclipse平台具有编译基于Android系统的编译脚本和基于 Ubuntu系统的编译脚本的功能。所述第一文件配置编译脚本用于将基于Android系统的预设功能指令以及接口进行封装,所述第二文件配置编译脚本用于将基于Ubuntu系统的预设功能指令以及接口进行封装。
[0022]进一步地,在所述通过预设的Eel ipse平台编译得到基于Android系统的第一文件配置编译脚本、以及基于Ubuntu系统的第二文件配置编译脚本之前,在Eclipse平台中设置 AndroidSDK(Android Software Development Kit,Android软件开发工具包)、NDK(Native Development Kit,原生开发工具包)以及 GCC(GNU Compiler Collect1n,GNU编译器套件)。所述通过预设的Eclipse平台编译得到基于Android系统的第一文件配置编译脚本、以及基于Ubuntu系统的第二文件配置编译脚本,包括通过所述AndroidSDK、NDK编译得到第一文件配置编译脚本,以及通过所述GCC编译得到第二文件配置编译脚本。[〇〇23]其中,GCC包括(:、0++、01^_6(^“6-(:、?〇竹抑11、拓¥3^(^和6〇语言的前端,也包括了这些语言的库(如libstdc++、libgcj等等);Android NDK是一系列基于Android系统的开发工具,允许程序开发人员在Android应用程序中嵌入C/C++语言编写的代码,NDK把C、C++语言编写的代码编译成Android系统的so包程序。
[0024]S102,执行所述第一文件配置编译脚本以及第二文件配置编译脚本,得到相应的功能指令封装包以及接口封装包。[〇〇25]本步骤通过执行所述第一文件配置编译脚本,得到基于Android系统的预设的功能指令封装包、以及基于Android系统的预设的接口封装包;通过执行所述第二文件配置编译脚本,得到基于Ubuntu系统的预设的功能指令封装包、以及基于Ubuntu系统的预设的接口封装包,从而得到相应的功能指令封装包以及接口封装包。
[0026]进一步地,所述执行所述第一文件配置编译脚本以及第二文件配置编译脚本,得到相应的功能指令封装包以及接口封装包,包括执行所述第一文件配置编译脚本,分别将基于Android系统的预设功能指令以及预设接口进行封装,得到相应的基于Android系统的 so包以及jar包;执行所述第二文件配置编译脚本,分别将基于Ubuntu系统的预设功能指令以及预设接口进行封装,得到相应的基于Ubuntu系统的so包以及jar包。[〇〇27]进一步地,若所述外设的应用程序基于Android系统,则在所述应用程序中调用基于Android系统的so包以及jar包;若所述外设的应用程序基于Ubuntu系统,则在所述应用程序中调用基于Ubuntu系统的s 〇包以及j ar包。
[0028]S103,在外设的应用程序中调用相应的功能指令封装包或接口封装包,编译所述应用程序。所述外设包括嵌入式打印机、1C卡、磁条卡、非接卡、PSAM卡以及钱箱等需要应用程序与终端设备系统应用层移植的外接设备。
[0029]进一步地,在所述在外设的应用程序中调用相应的功能指令封装包或接口封装包之前,编译所述功能指令封装包以及接口封装包,得到SDK库程序;所述在外设的应用程序中调用相应的功能指令封装包或接口封装包,包括:在外设的应用程序中调用所述SDK库程序中相应的功能指令封装包或者接口封装包。该步骤可通过SDK库程序的形式将所述功能指令封装包以及接口封装包进行外包,使得相应的封装包可以直接调用,提高效率。
[0030]进一步地,在所述编译所述应用程序之后,调试编译后的应用程序,从而保证应用程序的准确性。
[0031]进一步地,为了进一步保证应用程序的准确性,可通过以下方式调试编译后的应用程序:若所述应用程序基于Android系统,通过所述Eel ipse平台的Run或Debug功能将所述应用程序写到Android终端设备上进行调试;若所述应用程序基于Ubuntu系统,通过网络文件系统NFS从所述应用程序中导出基于Ubuntu系统的jar包到Ubuntu终端设备上进行调试。[〇〇32]S104将编译后的应用程序移植到所述外设对应的Android系统终端设备或Ubuntu系统终端设备的系统中。软件工程中,程序被视为有生命的机体,将源代码从一种环境下放到另一种环境下运行,称为移植。[〇〇33]从本实施例的外设应用程序的移植方法可知,通过预设的具有编译基于Android 系统的编译脚本和基于Ubuntu系统的编译脚本的功能Eel ipse平台,编译得到基于Android 系统的第一文件配置编译脚本、以及基于Ubuntu系统的第二文件配置编译脚本,执行所述第一文件配置编译脚本以及第二文件配置编译脚本,得到相应的功能指令封装包以及接口封装包,在外设的应用程序中调用相应的功能指令封装包或接口封装包,编译所述应用程序,将编译后的应用程序移植到所述外设对应的Android系统终端设备或Ubuntu系统终端设备的系统中,实现实用程序移植两个平台,从而提高外设应用程序的通用性。
[0034]以下提供一个本发明的外设应用程序的移植方法的较佳实现方式,具体包括四个步骤:[〇〇35] 第一步:配置跨硬件平台的SDK编译工具。在Eclipse平台预先配置AndroidSDK、 NDK和GCC工具,设置两套编译配置,一套配置使用AndroidSDK以及NDK进行编译,编写 Android.mk文件配置编译项(亦即第一文件配置编译脚本),用于编译出可以在android环境上运行的SDK;另一套配置使用GCC编译,编写makefile文件配置编译脚本(亦即第二文件配置编译脚本),用于编译出可以在ubuntu上运行的SDK,这样可以实现用同一套源码,分别编译出两个环境使用的SDK。[OO36] 第二步:编译出包括基于Android系统的so包和jar包,以及包括基于ubuntu系统的so包和jar包的SDK库程序。对于一些核心的外设移植功能,采用C语言开发,把不同的外设的复杂指令封装起来,对外提供一个简单的调用方法,并通过JNI技术封装为so包,提供给Java接口层库调用;对于java接口库层,由于某些接口需要依赖java标准api,部分接口也封装为jar包,提供给使用java技术开发的应用调用。[〇〇37] 第三步:在外设的应用程序中调用SDK库。对于Android应用,可把编译后的 Android so包和jar包导入到基于Eclipse开发的Android工程中由应用调用;对于Ubuntu 上运行的Java应用,把编译后的JNI so包和jar包导入基于Eclipse开发的Java工程项目中调用。[〇〇38] 第四步:编译、调试以及运行外设的应用程序。对于Android应用,使用Eclipse的 Run或Debug功能把程序烧写到Android终端设备上运行与调试程序;对于在Ubuntu终端设备中运行的Java应用,在PC端编译完毕后,通过NFS导出可运行jar包应用到设备上运行与远程调试。[〇〇39]本实现方式的SDK编译工具通过具有跨平台特性的Java、JNI以及C语言技术实现, 可以一次编写代码,编译出可在不同平台运行的SDK,使用这套SDK编译工具,可以把SDK代码分别编译出两套分别支持Android系统和Ubuntu系统的so包和jar包的SDK库程序。
[0040]在实际的应用中,用户无需了解太多的打印机的工作原理,为节省配置时间,可以直接在本方式中的SDK Demo的工程上开发外设应用,也可以重新建立一个新工程,把SDK核心的so包和jar包导入到工程中调用。用户根据实际的需求,调用打印机或磁条卡SDK提供的接口方法实现相关应用,并编译应用程序到智能终端设备上运行。
[0041]本发明还提供一种外设应用程序的移植系统,如图2所示,包括编译模块201、封装模块202、调用模块203和运行模块204。[〇〇42] 所述编译模块201用于通过预设的Eclipse平台编译得到基于Android系统的第一文件配置编译脚本、以及基于Ubuntu系统的第二文件配置编译脚本;所述Eclipse平台具有编译基于Android系统的编译脚本和基于Ubuntu系统的编译脚本的功能;所述第一文件配置编译脚本用于将基于Android系统的预设功能指令以及接口进行封装,所述第二文件配置编译脚本用于将基于Ubuntu系统的预设功能指令以及接口进行封装;所述封装模块202 用于执行所述第一文件配置编译脚本以及第二文件配置编译脚本,得到相应的功能指令封装包以及接口封装包;以及所述调用模块203用于在外设的应用程序中调用相应的功能指令封装包或接口封装包,编译所述应用程序;所述运行模块204用于将编译后的应用程序移植到所述外设对应的Android系统终端设备或Ubuntu系统终端设备的系统中。[〇〇43]从本实施例的外设应用程序的移植系统可知,通过预设的具有编译基于Android 系统的编译脚本和基于Ubuntu系统的编译脚本的功能Eel ipse平台,编译得到基于Android 系统的第一文件配置编译脚本、以及基于Ubuntu系统的第二文件配置编译脚本,执行所述第一文件配置编译脚本以及第二文件配置编译脚本,得到相应的功能指令封装包以及接口封装包,在外设的应用程序中调用相应的功能指令封装包或接口封装包,编译所述应用程序,将编译后的应用程序移植到所述外设对应的Android系统终端设备或Ubuntu系统终端设备的系统中,实现实用程序移植两个平台,从而提高外设应用程序的通用性。[〇〇44]在其中一个实施例中,所述编译模块201包括设置子模块,用于在Eclipse平台中设置AndroidSDK、原生开发工具包NDK以及GNU编译器套件GCC;以及第一编译子模块,用于通过所述AndroidSDK、NDK编译得到第一文件配置编译脚本,以及通过所述GCC编译得到第二文件配置编译脚本。
[0045]在其中一个实施例中,所述封装模块202包括第一封装子模块,用于执行所述第一文件配置编译脚本,分别将基于Android系统的预设功能指令以及预设接口进行封装,得到相应的基于Android系统的so包以及jar包;以及第二封装子模块,用于执行所述第二文件配置编译脚本,分别将基于Ubuntu系统的预设功能指令以及预设接口进行封装,得到相应的基于Ubuntu系统的s 〇包以及j ar包。
[0046]在其中一个实施例中,所述调用模块203包括第一调用子模块,用于若所述外设的应用程序基于Android系统,贝lj在所述应用程序中调用基于Android系统的so包以及jar包; 以及第二调用子模块,用于若所述外设的应用程序基于Ubuntu系统,则在所述应用程序中调用基于Ubuntu系统的s 〇包以及j ar包。[〇〇47]在其中一个实施例中,所述调用模块203还包括第二编译子模块,用于在外设的应用程序中调用相应的功能指令封装包或接口封装包之前,编译所述功能指令封装包以及接口封装包,得到SDK库程序;以及第三调用子模块,用于在外设的应用程序中调用所述SDK库程序中相应的功能指令封装包或者接口封装包。该实施例可通过SDK库程序的形式将所述功能指令封装包以及接口封装包进行外包,使得相应的封装包可以直接调用,提高效率。
[0048]在其中一个实施例中,所述外设应用程序的移植系统还包括调试模块,用于在所述编译所述应用程序之后,调试编译后的应用程序。
[0049]在其中一个实施例中,所述调试模块包括第一调试模块,用于若所述应用程序基于Android系统,通过所述Eel ipse平台的Run或Debug功能将所述应用程序写到Android终端设备上进行调试;以及第二调试模块,用于若所述应用程序基于Ubuntu系统,通过网络文件系统NFS从所述应用程序中导出基于Ubuntu系统的jar包到Ubuntu终端设备上进行调试。
[0050]以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0051]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【主权项】
1.一种外设应用程序的移植方法,其特征在于,包括:通过预设的Eclipse平台编译得到基于Android系统的第一文件配置编译脚本、以及基 于Ubuntu系统的第二文件配置编译脚本;所述Eel ipse平台具有编译基于Android系统的编 译脚本和基于Ubuntu系统的编译脚本的功能;所述第一文件配置编译脚本用于将基于 Android系统的预设功能指令以及接口进行封装,所述第二文件配置编译脚本用于将基于 Ubuntu系统的预设功能指令以及接口进行封装;执行所述第一文件配置编译脚本以及第二文件配置编译脚本,得到相应的功能指令封 装包以及接口封装包;在外设的应用程序中调用相应的功能指令封装包或接口封装包,编译所述应用程序;将编译后的应用程序移植到所述外设对应的Android系统终端设备或Ubuntu系统终端 设备的系统中。2.根据权利要求1所述的外设应用程序的移植方法,其特征在于,所述通过预设的 Eclipse平台编译得到基于Android系统的第一文件配置编译脚本、以及基于Ubuntu系统的 第二文件配置编译脚本之前,包括:在Eclipse平台中设置AndroidSDK、原生开发工具包NDK以及GNU编译器套件GCC;所述通过预设的Eclipse平台编译得到基于Android系统的第一文件配置编译脚本、以 及基于Ubuntu系统的第二文件配置编译脚本,包括:通过所述AndroidSDK、NDK编译得到第一文件配置编译脚本,以及通过所述GCC编译得 到第二文件配置编译脚本。3.根据权利要求1所述的外设应用程序的移植方法,其特征在于,所述执行所述第一文 件配置编译脚本以及第二文件配置编译脚本,得到相应的功能指令封装包以及接口封装 包,包括:执行所述第一文件配置编译脚本,分别将基于Android系统的预设功能指令以及预设 接口进行封装,得到相应的基于Andro i d系统的so包以及jar包;执行所述第二文件配置编译脚本,分别将基于Ubuntu系统的预设功能指令以及预设接 口进行封装,得到相应的基于Ubuntu系统的so包以及jar包;所述在外设的应用程序中调用相应的功能指令封装包或接口封装包,包括:若所述外设的应用程序基于Android系统,则在所述应用程序中调用基于Android系统 的so包以及jar包;若所述外设的应用程序基于Ubuntu系统,则在所述应用程序中调用基于Ubuntu系统的 so包以及jar包。4.根据权利要求1至3任意一项所述的外设应用程序的移植方法,其特征在于,所述在 外设的应用程序中调用相应的功能指令封装包或接口封装包之前,包括:编译所述功能指令封装包以及接口封装包,得到SDK库程序;所述在外设的应用程序中调用相应的功能指令封装包或接口封装包,包括:在外设的应用程序中调用所述SDK库程序中相应的功能指令封装包或者接口封装包。5.根据权利要求1所述的外设应用程序的移植方法,其特征在于,所述编译所述应用程 序之后,包括:调试编译后的应用程序。6.根据权利要求5所述的外设应用程序的移植方法,其特征在于,所述调试编译后的应 用程序,包括:若所述应用程序基于Android系统,通过所述Eel ipse平台的Run或Debug功能将所述应 用程序写到Android终端设备上进行调试;若所述应用程序基于Ubuntu系统,通过网络文件系统NFS从所述应用程序中导出基于 Ubuntu系统的jar包到Ubuntu终端设备上进行调试。7.—种外设应用程序的移植系统,其特征在于,包括:编译模块,用于通过预设的Eclipse平台编译得到基于Android系统的第一文件配置编 译脚本、以及基于Ubuntu系统的第二文件配置编译脚本;所述Eclipse平台具有编译基于 Android系统的编译脚本和基于Ubuntu系统的编译脚本的功能;所述第一文件配置编译脚 本用于将基于Android系统的预设功能指令以及接口进行封装,所述第二文件配置编译脚 本用于将基于Ubuntu系统的预设功能指令以及接口进行封装;封装模块,用于执行所述第一文件配置编译脚本以及第二文件配置编译脚本,得到相 应的功能指令封装包以及接口封装包;调用模块,用于在外设的应用程序中调用相应的功能指令封装包或接口封装包,编译 所述应用程序;运行模块,用于将编译后的应用程序移植到所述外设对应的Android系统终端设备或 Ubuntu系统终纟而设备的系统中。8.根据权利要求7所述的外设应用程序的移植系统,其特征在于,所述编译模块包括: 设置子模块,用于在Eclipse平台中设置AndroidSDK、原生开发工具包NDK以及GNU编译器套件GCC;第一编译子模块,用于通过所述AndroidSDK、NDK编译得到第一文件配置编译脚本,以 及通过所述GCC编译得到第二文件配置编译脚本。9.根据权利要求7所述的外设应用程序的移植系统,其特征在于,所述封装模块包括:第一封装子模块,用于执行所述第一文件配置编译脚本,分别将基于Android系统的预设功能指令以及预设接口进行封装,得到相应的基于Android系统的so包以及jar包;第二封装子模块,用于执行所述第二文件配置编译脚本,分别将基于Ubuntu系统的预 设功能指令以及预设接口进行封装,得到相应的基于Ubuntu系统的so包以及jar包;所述调用模块包括:第一调用子模块,用于若所述外设的应用程序基于Android系统,则在所述应用程序中 调用基于Android系统的so包以及jar包;第二调用子模块,用于若所述外设的应用程序基于Ubuntu系统,则在所述应用程序中 调用基于Ubuntu系统的s 〇包以及j ar包。10.根据权利要求7至9任意一项所述的外设应用程序的移植系统,其特征在于,所述调 用模块还包括:第二编译子模块,用于在外设的应用程序中调用相应的功能指令封装包或接口封装包 之前,编译所述功能指令封装包以及接口封装包,得到SDK库程序;第三调用子模块,用于在外设的应用程序中调用所述SDK库程序中相应的功能指令封 装包或者接口封装包。
【文档编号】G06F9/45GK106020921SQ201610327212
【公开日】2016年10月12日
【申请日】2016年5月16日
【发明人】卢毅强, 叶庆伟, 伍硕群
【申请人】广东天波信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1