一种基于Android系统的BOA编译方法和系统的制作方法

文档序号:6525748阅读:664来源:国知局
一种基于Android系统的BOA编译方法和系统的制作方法
【专利摘要】本发明公开了一种基于Android系统的BOA编译方法和系统,用于创建基于BOA服务的工程项目并开发配套CGI网关程序,通过利用预先编写的批处理脚本程序,去调用预先编写的用于编译BOA源码与CGI脚本的编译脚本程序,对BOA源码与CGI脚本进行编译以生成可执行程序;利用预先编写的Java程序以发送Linux命令行的方式赋予所述可执行程序对应的可执行权限,使得BOA可在Android系统上运行,并允许BOA调用CGI脚本;使得在非Android系统上写的CGI脚本与BOA服务可以移植到现有的Android系统上直接运行。
【专利说明】—种基于Android系统的BOA编译方法和系统
【技术领域】
[0001]本发明涉及移动终端领域,尤其涉及的是一种基于Android系统的BOA编译方法和系统。
【背景技术】
[0002]自Google发布Android操作系统以来,各种智能终端设备得到飞速发展,随之产生上千万的智能终端应用程序。而在此之前各种其他非Android系统上的嵌入式移动终端设备上曾安装部署的嵌入式web服务器与其配套的CGI网关程序已经无法使用,各大计算机公司软件开发人员需要重新开发部署基于Android系统上的web服务与CGI网关程序,但重新开发这些程序会给企业带来极大成本,大大浪费时间。
[0003]普通Android终端产品设备(手机、PAD、智能电视、车载导航灯)上是没有开通rootsystem用户权限的,为保证系统安全稳定起见,系统禁止其他账户运行任何第三方其他脚本程序,并禁止拷贝任何脚本与程序进入系统级目录(如dev、data、var等),如果通过APK程序去调用SD卡上的脚本程序也是不允许的,或者通过JNI ( 一种直接启动C程序的方式)程序去启动SD卡上的程序与脚本也是禁止的,导致以前写的CGI脚本程序与BOA服务(WEB服务的一种)无法移植到现有的Android系统上直接运行。因此开发人员只能选择安装其他WEB服务,并重新开发服务器脚本程序,对于公司和个人来说这都会产生巨大的开支,浪费开发时间,带来了不便。
[0004]因此,现有技术还有待于改进和发展。

【发明内容】

[0005]本发明要解决的技术问题在于,提供一种基于Andrο i d系统的BOA编译方法和系统,用于创建基于BOA服务的工程项目并开发配套CGI网关程序,旨在解决现有的非Android系统的CGI脚本程序与BOA服务无法移植到Android系统上直接运行的问题。
[0006]本发明解决技术问题所采用的技术方案如下:
一种基于Android系统的BOA编译方法,用于创建基于BOA服务的工程项目并开发配套CGI网关程序,其中,包括以下步骤:
A、利用预先编写的批处理脚本程序,去调用预先编写的用于编译BOA源码与CGI脚本的编译脚本程序,以及预先安装准备好的GNUStep编译工具跟Android NDK平台的交叉编译环境,对BOA源码与CGI脚本进行编译以生成可执行程序;
B、利用预先编写的Java程序以发送Linux命令行的方式赋予所述可执行程序对应的可执行权限,使得BOA可在Android系统上运行,并允许BOA调用CGI脚本。
[0007]所述的基于Android系统的BOA编译方法,其中,在所述步骤A之前还包括:
Al、设计开发插件模块,将所述BOA源码、CGI脚本、GNUSt印编译工具、Android NDK平台以及所述预先编写的批处理脚本程序、编译脚本程序和Java程序整理到所述插件模块的框架模块中,以便进行内部调用,进而便于将所述插件模块作为整体进行编译。[0008]所述的基于Android系统的BOA编译方法,其中,所述步骤B具体包括:
B1、通过预先编写的Java程序借用JNI来调用所述由BOA源码与CGI脚本生成的可执行程序,将BOA源码和CGI脚本安装到应用程序的安装目录下,当应用程序安装成功后,将对应的可执行程序重名为Β0Α,并赋予其可执行权限。
[0009]所述的基于Android系统的BOA编译方法,其中,在所述步骤Al中还将Android,jar包整理到所述插件模块的框架模块中,用于生成基于Android系统的BOA服务工程;所述步骤B之后还包括:
C、对插件模块进行编译生成插件文件;
D、将所述插件文件装在Eclipse开发工具上,基于Android,jar包,在Eclipse开发工具上创建基于Android系统的BOA服务工程;
E、在Eclipse开发工具上编译运行所述BOA服务工程,由插件模块调用交叉编译环境、批处理脚本程序以及编译脚本程序,对BOA源码、CGI脚本进行编译,生成可安装在Android系统上直接启动BOA服务的应用程序。
[0010]所述的基于Android系统的BOA编译方法,其中,所述步骤B还包括:
B2、通过预先编写Java程序执行Linux执行命令,完成BOA服务的启动、关闭及重启动作。
[0011]一种基于Android系统的BOA编译系统,用于创建基于BOA服务的工程项目并开发配套CGI网关程序,其中,包括:
可执行程序生成模块,用于利用预先编写的批处理脚本程序,去调用预先编写的用于编译BOA源码与CGI脚本的编译脚本程序,以及预先安装准备好的GNUStep编译工具跟Android NDK平台的交叉编译环境,对BOA源码与CGI脚本进行编译以生成可执行程序;赋权模块,用于利用预先编写的Java程序以发送Linux命令行的方式赋予所述可执行程序对应的可执行权限,使得BOA可在Android系统上运行,并允许BOA调用CGI脚本。
[0012]所述的基于Android系统的BOA编译系统,其中,还包括:
设计模块,用于设计开发插件模块,将所述BOA源码、CGI脚本、GNUStep编译工具、Android NDK平台以及所述预先编写的批处理脚本程序、编译脚本程序和Java程序整理到所述插件模块的框架模块中,以便进行内部调用,进而便于将所述插件模块作为整体进行编译。
[0013]所述的基于Android系统的BOA编译系统,其中,所述赋权模块,用于通过预先编写的Java程序借用JNI来调用所述由BOA源码与CGI脚本生成的可执行程序,将BOA源码和CGI脚本安装到应用程序的安装目录下,当应用程序安装成功后,将对应的可执行程序重名为Β0Α,并赋予其可执行权限。
[0014]所述的基于Andro i d系统的BOA编译系统,其中,所述设计模块还用于将Andro i d.jar包整理到所述插件模块的框架模块中,用于生成基于Android系统的BOA服务工程;
所述基于Android系统的BOA编译系统,还包括:
编译模块,用于对插件模块进行编译生成插件文件;
创建模块,用于将所述插件文件装在Eclipse开发工具上,基于Android, jar包,在Eclipse开发工具上创建基于Android系统的BOA服务工程;
应用程序生成模块,用于在Eclipse开发工具上编译运行所述BOA服务工程,由插件模块调用交叉编译环境、批处理脚本程序以及编译脚本程序,对BOA源码、CGI脚本进行编译,生成可安装在Android系统上直接启动BOA服务的应用程序。
[0015]所述的基于Android系统的BOA编译系统,其中,还包括:动作生成模块,用于通过预先编写Java程序执行Linux执行命令,完成BOA服务的启动、关闭及重启动作。
[0016]本发明所提供的一种基于Android系统的BOA编译方法和系统,有效地解决了现有的在非Android系统上写的CGI脚本程序与BOA服务无法移植到现有的Android系统上直接运行的问题,通过利用预先编写的批处理脚本程序,去调用预先编写的用于编译BOA源码与CGI脚本的编译脚本程序,以及预先安装准备好的GNUStep编译工具跟Android NDK平台的交叉编译环境,对BOA源码与CGI脚本进行编译以生成可执行程序;利用预先编写的Java程序以发送Linux命令行的方式赋予所述可执行程序对应的可执行权限,使得BOA可在Android系统上运行,并允许BOA调用CGI脚本;使得在非Android系统上写的CGI脚本程序与BOA服务可以移植到现有的Android系统上直接运行,使得曾经在其他操作系统上使用BOA服务部署CGI网关程序的开发人员和公司,可以方便快捷的将该服务应用快速方便的部署到Android系统之上,大大方便开发人员开发程序,节省了大量开发时间与成本,带来了大大的方便。
【专利附图】

【附图说明】
[0017]图1为本发明提供的基于Android系统的BOA编译方法较佳实施例的流程图。
[0018]图2为本发明提供的基于Android系统的BOA编译系统较佳实施例的结构框图。
【具体实施方式】
[0019]本发明提供一种基于Android系统的BOA编译方法和系统,为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0020]请参阅图1,图1为本发明提供的基于Android系统的BOA编译方法较佳实施例的流程图,如图所示,所述方法包括以下步骤:
S100、利用预先编写的批处理脚本程序,去调用预先编写的用于编译BOA源码与CGI脚本的编译脚本程序,以及预先安装准备好的GNUStep编译工具跟Android NDK平台的交叉编译环境,对BOA源码与CGI脚本进行编译以生成可执行程序;
S200、利用预先编写的Java程序以发送Linux命令行的方式赋予所述可执行程序对应的可执行权限,使得BOA可在Android系统上运行,并允许BOA调用CGI脚本。
[0021]下面结合具体的实施例对上述步骤进行详细的描述。
[0022]由于涉及的英文缩写较多,为了方便理解,先对文中出现的英文缩写进行集中说明如下。Eclipse为业界最流行的集成开发环境,是著名的跨平台的自由集成开发环境(IDE), Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。BOA是一款主流第三方嵌入式WEB服务,使用率位居所有嵌入式服务器榜首。GNUstep是一款,安装于windows系统上用于编译Linux下运行C语言程序的模拟编译工具。JNI是Java Native Interface 的缩写,中文为 JAVA 本地调用。Java Native Interface (JNI)标准成为Java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI —开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以。BAT为批处理文件,在MS-DOS中,bat文件是可执行文件,由一系列命令构成,其中可以包含对其他程序的调用。Android ndk:NDK提供了一系列的工具,帮助开发者快速开发C (或C++)的动态库,并能自动将so和Java应用一起打包成APK。SDK: (software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合,Android SDK指的是Android专属的软件开发工具包。CGI网关程序(CGI, Common Gateway Interface,通用网关界面),是运行在Web服务器上的一个程序,并由来自于浏览者的输人触发。CGI是在HTTP服务器下运行外部程序(或网关)的一个接口,它能让网络用户访问远程系统上的使用类型程序,就好像他们在实际使用那些远程计算机一样。
[0023]本发明的原理如下:根据Android系统的权利管理进行分析,提供一种新的办法既可以避开系统的安全策略,又不违法系统运行安全准则的方式去移植BOA服务与CGI脚本程序。具体来说,Android系统一般对于普通用户只有外部存储设备(如SD卡、USB硬盘等)的读、写、执行权限,即使有执行权限也不允许执行任何脚本程序。但是对于用户安装的任何APK程序本身,系统却给了该APK程序System级权限,并允许该程序的安装路径下执行一定权限级别的CGI脚本程序。利用系统这一有利条件,可以完成BOA源码与CGI脚本跨平台的轻松移植。
[0024]在步骤S100中,需预先编写用于编译BOA源码与CGI脚本的编译脚本程序以及批处理脚本程序,该编译脚本程序命名为Android.MK (即Android系统的make file文件),批处理脚本程序可命名为**.bat ;所述批处理脚本程序用于调用编译脚本程序、GNUStep编译工具和Android NDK平台提供的交叉编译环境对BOA源码与CGI脚本进行编译并生成可执行程序。
[0025]例如,以下是用于编译BOA源码的Android.MK的一段程序代码:
#系统当前默认路径`
L0CAL_PATH:= $ (call my-dir)
L0CAL_CFLAGS:= -g -Wall -1m
#一个编译模块的开始
include $ (CLEAR_VARS)
#源码清单
SRC_LIST:=$(wildcard $(L0CAL_PATH)/BOA/*.c)
L0CAL_M0DULE:= Boa
L0CAL_SRC_FILES:= $(SRC_LIST: $(L0CAL_PATH)/%=%)
#编译成可执行程序
L0CAL_F0RCE_STATIC_EXECUTABLE:= true
L0CAL_STATIC_LIBRARIES:= Iibc
L0CAL_M0DULE_PATH:= $(TARGET_0UT_0PT10NAL_EXECUTABLES)
L0CAL_M0DULE_TAGS:= debug
#一个编译模块的结束include $ (BUILD_EXECUTABLE)
此外,用于编译CGI脚本的Android.MK与上述代码相似,只是对象名称不一样,这里不
再举例。
[0026]步骤SlOO中,根据预先编写好的Android.MK编译脚本程序,通过批处理脚本程序使用GNUSt印编译工具跟Android NDK平台的交叉编译环境,可以自动完成BOA源码与CGI脚本的编译动作,自动生成BOA源码与CGI脚本的可执行程序,免去了用户手动编译的麻烦。
[0027]批处理脚本程序代码举例如下(批处理脚本程序名称**.bat,编译完成后将生成libBOA.so 等程序):
start.//GNUStep.exe -p $NDK/ndk_build
在步骤S200中,利用预先编写的Java程序以发送Linux命令行的方式赋予所述可执行程序对应的可执行权限,使得BOA可在Android系统上运行,并允许BOA调用CGI脚本。。具体来说,通过编写Java程序后,Java再借用JNI调用可执行C程序的策略,将BOA源码、CGI脚本安装到AP K (应用程序)的安装目录下(系统只允许JNI拷贝可执行程序,其他方式都是禁止的),再通过JAVA程序以发送Linux命令行的方式赋予前述由BOA源码、CGI脚本生成的可执行程序可执行权限,至此问题已得到解决,BOA源码已经可以在Android系统上运行,并允许BOA源码调用CGI脚本。
[0028]在实际应用时,在步骤S200中,在编写Java程序后,通过所述Java程序借用JNI来调用BOA源码与CGI脚本的可执行程序,将BOA源码和CGI脚本安装到应用程序的安装目录下,当应用程序安装成功后,将对应的可执行程序重名为Β0Α,并赋予其可执行权限。
[0029]例如,编写JAVA程序处理编译好的BOA源码、CGI脚本,当应用程序安装成功后,将自动将libBOA.so程序重名为Β0Α,并赋予其可执行权限,具体代码如下:
【权利要求】
1.一种基于Android系统的BOA编译方法,用于创建基于BOA服务的工程项目并开发配套CGI网关程序,其特征在于,包括以下步骤: A、利用预先编写的批处理脚本程序,去调用预先编写的用于编译BOA源码与CGI脚本的编译脚本程序,以及预先安装准备好的GNUStep编译工具跟Android NDK平台的交叉编译环境,对BOA源码与CGI脚本进行编译以生成可执行程序; B、利用预先编写的Java程序以发送Linux命令行的方式赋予所述可执行程序对应的可执行权限,使得BOA可在Android系统上运行,并允许BOA调用CGI脚本。
2.根据权利要求1所述的基于Android系统的BOA编译方法,其特征在于,在所述步骤A之前还包括: Al、设计开发插件模块,将所述BOA源码、CGI脚本、GNUSt印编译工具、Android NDK平台以及所述预先编写的批处理脚本程序、编译脚本程序和Java程序整理到所述插件模块的框架模块中,以便进行内部调用,进而便于将所述插件模块作为整体进行编译。
3.根据权利要求1所述的基于Android系统的BOA编译方法,其特征在于,所述步骤B具体包括: B1、通过预先编写的Java程序借用JNI来调用所述由BOA源码与CGI脚本生成的可执行程序,将BOA源码和CGI脚本安装到应用程序的安装目录下,当应用程序安装成功后,将对应的可执行程序重名为Β0Α,并赋予其可执行权限。
4.根据权利要求2所述的基于Android系统的BOA编译方法,其特征在于,在所述步骤Al中还将Android, jar包整理到所述插件模块的框架模块中,用于生成基于Android系统的BOA服务工程;所述步骤B之后还包括: C、对插件模块进行编译生成插件文件; D、将所述插件文件装在Eclipse开发工具上,基于Android,jar包,在Eclipse开发工具上创建基于Android系统的BOA服务工程; E、在Eclipse开发工具上编译运行所述BOA服务工程,由插件模块调用交叉编译环境、批处理脚本程序以及编译脚本程序,对BOA源码、CGI脚本进行编译,生成可安装在Android系统上直接启动BOA服务的应用程序。
5.根据权利要求1所述的基于Android系统的BOA编译方法,其特征在于,所述步骤B还包括: B2、通过预先编写Java程序执行Linux执行命令,完成BOA服务的启动、关闭及重启动作。
6.一种基于Android系统的BOA编译系统,用于创建基于BOA服务的工程项目并开发配套CGI网关程序,其特征在于,包括: 可执行程序生成模块,用于利用预先编写的批处理脚本程序,去调用预先编写的用于编译BOA源码与CGI脚本的编译脚本程序,以及预先安装准备好的GNUStep编译工具跟Android NDK平台的交叉编译环境,对BOA源码与CGI脚本进行编译以生成可执行程序; 赋权模块,用于利用预先编写的Java程序以发送Linux命令行的方式赋予所述可执行程序对应的可执行权限,使得BOA可在Android系统上运行,并允许BOA调用CGI脚本。
7.根据权利要求6所述的基于Android系统的BOA编译系统,其特征在于,还包括: 设计模块,用于设计开发插件模块,将所述BOA源码、CGI脚本、GNUStep编译工具、Android NDK平台以及所述预先编写的批处理脚本程序、编译脚本程序和Java程序整理到所述插件模块的框架模块中,以便进行内部调用,进而便于将所述插件模块作为整体进行编译。
8.根据权利要求6所述的基于Android系统的BOA编译系统,其特征在于,所述赋权模块,用于通过预先编写的Java程序借用JNI来调用所述由BOA源码与CGI脚本生成的可执行程序,将BOA源码和CGI脚本安装到应用程序的安装目录下,当应用程序安装成功后,将对应的可执行程序重名为Β0Α,并赋予其可执行权限。
9.根据权利要求7所述的基于Android系统的BOA编译系统,其特征在于,所述设计模块还用于将Android, jar包整理到所述插件模块的框架模块中,用于生成基于Android系统的BOA服务工程; 所述基于Android系统的BOA编译系统,还包括: 编译模块,用于对插件模块进行编译生成插件文件; 创建模块,用于将所述插件文件装在Eclipse开发工具上,基于Android, jar包,在Eclipse开发工具上创建基于Android系统的BOA服务工程; 应用程序生成模块,用于在Eclipse开发工具上编译运行所述BOA服务工程,由插件模块调用交叉编译环境、批处理脚本程序以及编译脚本程序,对BOA源码、CGI脚本进行编译,生成可安装在Android系统上直接启动BOA服务的应用程序。
10.根据权利要求6所述的基于Android系统的BOA编译系统,其特征在于,还包括:动作生成模块,用于通过预先·编写Java程序执行Linux执行命令,完成BOA服务的启动、关闭及重启动作。
【文档编号】G06F9/44GK103713902SQ201310730053
【公开日】2014年4月9日 申请日期:2013年12月26日 优先权日:2013年12月26日
【发明者】秦勃龙 申请人:Tcl集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1