CN103713902B - 一种基于Android系统的BOA编译方法和系统 - Google Patents

一种基于Android系统的BOA编译方法和系统 Download PDF

Info

Publication number
CN103713902B
CN103713902B CN201310730053.4A CN201310730053A CN103713902B CN 103713902 B CN103713902 B CN 103713902B CN 201310730053 A CN201310730053 A CN 201310730053A CN 103713902 B CN103713902 B CN 103713902B
Authority
CN
China
Prior art keywords
boa
compilation
android
advance
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.)
Expired - Fee Related
Application number
CN201310730053.4A
Other languages
English (en)
Other versions
CN103713902A (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.)
TCL Corp
Original Assignee
TCL Corp
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 TCL Corp filed Critical TCL Corp
Priority to CN201310730053.4A priority Critical patent/CN103713902B/zh
Publication of CN103713902A publication Critical patent/CN103713902A/zh
Application granted granted Critical
Publication of CN103713902B publication Critical patent/CN103713902B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种基于Android系统的BOA编译方法和系统,用于创建基于BOA服务的工程项目并开发配套CGI网关程序,通过利用预先编写的批处理脚本程序,去调用预先编写的用于编译BOA源码与CGI脚本的编译脚本程序,对BOA源码与CGI脚本进行编译以生成可执行程序;利用预先编写的Java程序以发送Linux命令行的方式赋予所述可执行程序对应的可执行权限,使得BOA可在Android系统上运行,并允许BOA调用CGI脚本;使得在非Android系统上写的CGI脚本与BOA服务可以移植到现有的Android系统上直接运行。

Description

一种基于Android系统的BOA编译方法和系统
技术领域
本发明涉及移动终端领域,尤其涉及的是一种基于Android系统的BOA编译方法和系统。
背景技术
自Google发布Android操作系统以来,各种智能终端设备得到飞速发展,随之产生上千万的智能终端应用程序。而在此之前各种其他非Android系统上的嵌入式移动终端设备上曾安装部署的嵌入式web服务器与其配套的CGI网关程序已经无法使用,各大计算机公司软件开发人员需要重新开发部署基于Android系统上的web服务与CGI网关程序,但重新开发这些程序会给企业带来极大成本,大大浪费时间。
普通Android终端产品设备(手机、PAD、智能电视、车载导航灯)上是没有开通root、system用户权限的,为保证系统安全稳定起见,系统禁止其他账户运行任何第三方其他脚本程序,并禁止拷贝任何脚本与程序进入系统级目录(如dev、data、var等),如果通过APK程序去调用SD卡上的脚本程序也是不允许的,或者通过JNI(一种直接启动C程序的方式)程序去启动SD卡上的程序与脚本也是禁止的,导致以前写的CGI脚本程序与BOA服务(WEB服务的一种)无法移植到现有的Android系统上直接运行。因此开发人员只能选择安装其他WEB服务,并重新开发服务器脚本程序,对于公司和个人来说这都会产生巨大的开支,浪费开发时间,带来了不便。
因此,现有技术还有待于改进和发展。
发明内容
本发明要解决的技术问题在于,提供一种基于Android系统的BOA编译方法和系统,用于创建基于BOA服务的工程项目并开发配套CGI网关程序,旨在解决现有的非Android系统的CGI脚本程序与BOA服务无法移植到Android系统上直接运行的问题。
本发明解决技术问题所采用的技术方案如下:
一种基于Android系统的BOA编译方法,用于创建基于BOA服务的工程项目并开发配套CGI网关程序,其中,包括以下步骤:
A、利用预先编写的批处理脚本程序,去调用预先编写的用于编译BOA源码与CGI脚本的编译脚本程序,以及预先安装准备好的GNUStep编译工具跟Android NDK平台的交叉编译环境,对BOA源码与CGI脚本进行编译以生成可执行程序;
B、利用预先编写的Java程序以发送Linux命令行的方式赋予所述可执行程序对应的可执行权限,使得BOA可在Android系统上运行,并允许BOA调用CGI脚本。
所述的基于Android系统的BOA编译方法,其中,在所述步骤A之前还包括:
A1、设计开发插件模块,将所述BOA源码、CGI脚本、GNUStep编译工具、Android NDK平台以及所述预先编写的批处理脚本程序、编译脚本程序和Java程序整理到所述插件模块的框架模块中,以便进行内部调用,进而便于将所述插件模块作为整体进行编译。
所述的基于Android系统的BOA编译方法,其中,所述步骤B具体包括:
B1、通过预先编写的Java程序借用JNI来调用所述由BOA源码与CGI脚本生成的可执行程序,将BOA源码和CGI脚本安装到应用程序的安装目录下,当应用程序安装成功后,将对应的可执行程序重名为BOA,并赋予其可执行权限。
所述的基于Android系统的BOA编译方法,其中,在所述步骤A1中还将Android.jar包整理到所述插件模块的框架模块中,用于生成基于Android系统的BOA服务工程;所述步骤B之后还包括:
C、对插件模块进行编译生成插件文件;
D、将所述插件文件装在Eclipse开发工具上,基于Android.jar包,在Eclipse开发工具上创建基于Android系统的BOA服务工程;
E、在Eclipse开发工具上编译运行所述BOA服务工程,由插件模块调用交叉编译环境、批处理脚本程序以及编译脚本程序,对BOA源码、CGI脚本进行编译,生成可安装在Android系统上直接启动BOA服务的应用程序。
所述的基于Android系统的BOA编译方法,其中,所述步骤B还包括:
B2、通过预先编写Java程序执行Linux执行命令,完成BOA服务的启动、关闭及重启动作。
一种基于Android系统的BOA编译系统,用于创建基于BOA服务的工程项目并开发配套CGI网关程序,其中,包括:
可执行程序生成模块,用于利用预先编写的批处理脚本程序,去调用预先编写的用于编译BOA源码与CGI脚本的编译脚本程序,以及预先安装准备好的GNUStep编译工具跟Android NDK平台的交叉编译环境,对BOA源码与CGI脚本进行编译以生成可执行程序;
赋权模块,用于利用预先编写的Java程序以发送Linux命令行的方式赋予所述可执行程序对应的可执行权限,使得BOA可在Android系统上运行,并允许BOA调用CGI脚本。
所述的基于Android系统的BOA编译系统,其中,还包括:
设计模块,用于设计开发插件模块,将所述BOA源码、CGI脚本、GNUStep编译工具、Android NDK平台以及所述预先编写的批处理脚本程序、编译脚本程序和Java程序整理到所述插件模块的框架模块中,以便进行内部调用,进而便于将所述插件模块作为整体进行编译。
所述的基于Android系统的BOA编译系统,其中,所述赋权模块,用于通过预先编写的Java程序借用JNI来调用所述由BOA源码与CGI脚本生成的可执行程序,将BOA源码和CGI脚本安装到应用程序的安装目录下,当应用程序安装成功后,将对应的可执行程序重名为BOA,并赋予其可执行权限。
所述的基于Android系统的BOA编译系统,其中,所述设计模块还用于将Android.jar包整理到所述插件模块的框架模块中,用于生成基于Android系统的BOA服务工程;
所述基于Android系统的BOA编译系统,还包括:
编译模块,用于对插件模块进行编译生成插件文件;
创建模块,用于将所述插件文件装在Eclipse开发工具上,基于Android.jar包,在Eclipse开发工具上创建基于Android系统的BOA服务工程;
应用程序生成模块,用于在Eclipse开发工具上编译运行所述BOA服务工程,由插件模块调用交叉编译环境、批处理脚本程序以及编译脚本程序,对BOA源码、CGI脚本进行编译,生成可安装在Android系统上直接启动BOA服务的应用程序。
所述的基于Android系统的BOA编译系统,其中,还包括:动作生成模块,用于通过预先编写Java程序执行Linux执行命令,完成BOA服务的启动、关闭及重启动作。
本发明所提供的一种基于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系统之上,大大方便开发人员开发程序,节省了大量开发时间与成本,带来了大大的方便。
附图说明
图1为本发明提供的基于Android系统的BOA编译方法较佳实施例的流程图。
图2为本发明提供的基于Android系统的BOA编译系统较佳实施例的结构框图。
具体实施方式
本发明提供一种基于Android系统的BOA编译方法和系统,为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,图1为本发明提供的基于Android系统的BOA编译方法较佳实施例的流程图,如图所示,所述方法包括以下步骤:
S100、利用预先编写的批处理脚本程序,去调用预先编写的用于编译BOA源码与CGI脚本的编译脚本程序,以及预先安装准备好的GNUStep编译工具跟Android NDK平台的交叉编译环境,对BOA源码与CGI脚本进行编译以生成可执行程序;
S200、利用预先编写的Java程序以发送Linux命令行的方式赋予所述可执行程序对应的可执行权限,使得BOA可在Android系统上运行,并允许BOA调用CGI脚本。
下面结合具体的实施例对上述步骤进行详细的描述。
由于涉及的英文缩写较多,为了方便理解,先对文中出现的英文缩写进行集中说明如下。Eclipse为业界最流行的集成开发环境,是著名的跨平台的自由集成开发环境(IDE),Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。BOA是一款主流第三方嵌入式WEB服务,使用率位居所有嵌入式服务器榜首。GNUstep是一款,安装于windows系统上用于编译Linux下运行C语言程序的模拟编译工具。JNI是JavaNative Interface的缩写,中文为JAVA本地调用。Java Native Interface(JNI)标准成为Java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以。BAT为批处理文件,在MS-DOS中,**.bat文件是可执行文件,由一系列命令构成,其中可以包含对其他程序的调用。Android ndk:NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和Java应用一起打包成APK。SDK:(softwaredevelopment kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合,Android SDK 指的是Android专属的软件开发工具包。CGI网关程序(CGI,Common Gateway Interface,通用网关界面),是运行在Web服务器上的一个程序,并由来自于浏览者的输人触发。CGI是在HTTP服务器下运行外部程序(或网关)的一个接口,它能让网络用户访问远程系统上的使用类型程序,就好像他们在实际使用那些远程计算机一样。
本发明的原理如下:根据Android系统的权利管理进行分析,提供一种新的办法既可以避开系统的安全策略,又不违法系统运行安全准则的方式去移植BOA服务与CGI脚本程序。具体来说,Android系统一般对于普通用户只有外部存储设备(如SD卡、USB硬盘等)的读、写、执行权限,即使有执行权限也不允许执行任何脚本程序。但是对于用户安装的任何APK程序本身,系统却给了该APK程序System级权限,并允许该程序的安装路径下执行一定权限级别的CGI脚本程序。利用系统这一有利条件,可以完成BOA源码与CGI脚本跨平台的轻松移植。
在步骤S100中,需预先编写用于编译BOA源码与CGI脚本的编译脚本程序以及批处理脚本程序,该编译脚本程序命名为Android.MK(即Android系统的make file文件),批处理脚本程序可命名为**.bat;所述批处理脚本程序用于调用编译脚本程序、GNUStep编译工具和Android NDK平台提供的交叉编译环境对BOA源码与CGI脚本进行编译并生成可执行程序。
例如,以下是用于编译BOA源码的Android.MK的一段程序代码:
#系统当前默认路径
LOCAL_PATH:= $(call my-dir)
LOCAL_CFLAGS := -g -Wall -lm
#一个编译模块的开始
include $(CLEAR_VARS)
#源码清单
SRC_LIST :=$(wildcard $(LOCAL_PATH)/BOA/*.c)
LOCAL_MODULE := Boa
LOCAL_SRC_FILES := $(SRC_LIST:$(LOCAL_PATH)/%=%)
#编译成可执行程序
LOCAL_FORCE_STATIC_EXECUTABLE := true
LOCAL_STATIC_LIBRARIES := libc
LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
LOCAL_MODULE_TAGS := debug
#一个编译模块的结束
include $(BUILD_EXECUTABLE)
此外,用于编译CGI脚本的Android.MK与上述代码相似,只是对象名称不一样,这里不再举例。
步骤S100中,根据预先编写好的Android.MK编译脚本程序,通过批处理脚本程序使用GNUStep编译工具跟Android NDK平台的交叉编译环境,可以自动完成BOA源码与CGI脚本的编译动作,自动生成BOA源码与CGI脚本的可执行程序,免去了用户手动编译的麻烦。
批处理脚本程序代码举例如下(批处理脚本程序名称**.bat,编译完成后将生成libBOA.so等程序):
start ./../GNUStep.exe -p $NDK/ndk-build
在步骤S200中,利用预先编写的Java程序以发送Linux命令行的方式赋予所述可执行程序对应的可执行权限,使得BOA可在Android系统上运行,并允许BOA调用CGI脚本。。具体来说,通过编写Java程序后,Java再借用JNI调用可执行C程序的策略,将BOA源码、CGI脚本安装到APK(应用程序)的安装目录下(系统只允许JNI拷贝可执行程序,其他方式都是禁止的),再通过JAVA程序以发送Linux命令行的方式赋予前述由BOA源码、CGI脚本生成的可执行程序可执行权限,至此问题已得到解决,BOA源码已经可以在Android系统上运行,并允许BOA源码调用CGI脚本。
在实际应用时,在步骤S200中,在编写Java程序后,通过所述Java程序借用JNI来调用BOA源码与CGI脚本的可执行程序,将BOA源码和CGI脚本安装到应用程序的安装目录下,当应用程序安装成功后,将对应的可执行程序重名为BOA,并赋予其可执行权限。
例如,编写JAVA程序处理编译好的BOA源码、CGI脚本,当应用程序安装成功后,将自动将libBOA.so程序重名为BOA,并赋予其可执行权限,具体代码如下:
for(int i = 0;i<soFileNames.length;i++)
{
startBoa = "../Boa";
soPath = path + "/lib/"+soFileNames[i];
cgiPath = path +"/"+soFileNames[i].replace("lib","").
replace(".so","");
chmodeCmd = "chmod 777 " + cgiPath;
copyCgiCmd = "dd if=" + soPath + " of=" + cgiPath;
//拷贝lib/libtest.so到上一层目录,同时重命名去掉lib和.so文件
RootCommand(copyCgiCmd);
//改变程序的属性,让其变为可执行
RootCommand(chmodeCmd);
}
本发明实施例通过编写Android.MK来编译BOA源码与CGI脚本、编写批处理脚本来自动调用编译工具进行自动编译、再编写Java处理程序来处理编译好的BOA源码、CGI脚本生成的可执行程序,使其具有运行权限,使得BOA服务可在Android系统上运行,并允许BOA调用CGI脚本,BOA启动后,就可以调用CGI脚本,处理来自各种终端的HTTP请求,便完整实现了BOA与CGI脚本的移植以及正常运行。
值得一提的是,在执行BOA服务之前,开发人员可以自行编写BOA服务管理程序来管理BOA服务,也即编写Java程序执行Linux执行命令,就可以完成启动BOA服务的启动、关闭、重启等动作,这样开发人员便可以很方便的操作BOA服务。
以下给出部分程序源码供参考:
启动BOA服务程序:
public boolean StartBoa()
{
String result = null;
cgiPath = path + "/"+proccessName + " "+SysUtils.Instance().getBoaVirtualRootDir()+" -l 1";
result = RootCommand(cgiPath);
result = CommandUtils.Instance().RootCommand("psBoa");
if(result.contains("/data/data/com.tcl.tcloudboa/Boa"))
{
SysUtils.Instance().setServerStatus(ServerStatus.Running);
return true;
}else
{
SysUtils.Instance().setServerStatus(ServerStatus.Stoped);
return false;
}
}
停止BOA服务程序:
public boolean StopBoa()
{
try {
String pid = FileUtils.Instance().ReadFileInfo
(sysPidLogPath);
String killProcessCmd = "kill " + pid.trim();
RootCommand(killProcessCmd);
String result = CommandUtils.Instance().RootCommand
("ps Boa");
if(result.contains("/data/data/com.tcl.tcloudboa/Boa"))
{
SysUtils.Instance().setServerStatus(ServerStatus.Running);
return true;
}else
{
SysUtils.Instance().setServerStatus(ServerStatus.Stoped);
return false;
}
} catch (Exception e) {
// TODO: handle exception
return false;
}
}
重启BOA服务的程序:
public boolean RestartBoa()
{
StopBoa();
return StartBoa();
}
进一步地,在所述步骤S100之前还包括:S90、设计开发插件模块,将所述BOA源码、CGI脚本、GNUStep编译工具、Android NDK平台以及所述预先编写的批处理脚本程序、编译脚本程序和Java程序整理到所述插件模块的框架模块中,以便进行内部调用,进而便于将所述插件模块作为整体进行编译。
具体来说,就是主要是设计开发插件模块,其中需要准备插件所用到的所有类库、文件等,主要包括BOA源码、CGI脚本、GNUStep编译工具、Android NDK平台以及所述预先编写的批处理脚本程序、编译脚本程序和Java程序等,通过该步骤将所有相关文件整理到插件的框架模块中,并进行整理,以便进行内部调用,进而便于将所述插件模块作为整体进行编译(后续可以将这个插件模块作为一个整体安装到例如Eclipse之类的开发工具上,在该开发工具上进行运行,简而言之,也即相当于给开发工具增加了一项能够编译BOA源码和CGI脚本的新功能)。
在实际应用时,其操作流程步骤如下:先在Eclipse安装 PDE开发插件,再在Eclipse菜单栏中选择新建->项目->插件开发->插件项目;在弹出选项中输入插件模块名称 (至此,该插件模块可视为一个插件,假设该插件名称为BOA-CGI-plugin)。选择标准视图模板,并输入相关的配置项;配置build.properties文件,引入android.jar开发包。在当前工程目录下添加BOA目录,并拷贝BOA源码进入该目录。通过上述流程,便已为使用Eclipse 的标准扩展插件开发工具PDE(Plug-in Development Environment)来运行BOA-CGI-plugin插件做好了准备。开发过程中将会引用三种Android SDK、Android NDK、GNUStep等编译工具与开发平台。同时将会预先为创建工程定义专用的BOA、CGI、SRC、示例启动程序等目录与程序。
具体地,在所述步骤S90中还将Android.jar包整理到所述插件模块的框架模块中,用于生成基于Android系统的BOA服务工程;所述步骤S200之后还包括:
S300,对插件模块进行编译生成插件文件;
该插件文件包括Java class文件和配置文件;
S400、将所述插件文件装在Eclipse开发工具上,基于Android.jar包,在Eclipse开发工具上创建基于Android系统的BOA服务工程;
S500、在Eclipse开发工具上编译运行所述BOA服务工程,由插件模块调用交叉编译环境、批处理脚本程序以及编译脚本程序,对BOA源码、CGI脚本进行编译,生成可安装在Android系统上直接启动BOA服务的应用程序。
本实施例中得到的BOA-CGI-plugin插件是基于Android系统的嵌入式web服务自动编译与开发工具插件。该工具插件是一种直接安装在Eclipse集成开发环境中插件,专门用于部署嵌入式web服务BOA,当开发人员需要在Android系统上部署BOA服务并开发配套CGI网关程序时,仅需在Eclipse的新建工程里选择BOA-CGI Project进行创建,便可自动创建一个嵌入式web服务的Android工程项目。同时可以将其他操作系统上的CGI网关程序直接部署在该工程中,系统完成自动编译后即可以APK的形式直接安装在任何基于Android系统上的智能终端设备,如手机、PAD、智能电视、车载导航等。
具体来说,用户在通过BOA-CGI-plugin插件来进行开发时,其工作流程如下:安装BOA-CGI-plugin插件,并安装Eclipse集成开发工具。具体来说,就是将生成插件文件Features、plugins,将其分别拷入eclipse对应的目录,重启eclipse,BOA-CGI-plugin插件将会出现在eclipse的菜单栏。然后新建工程:点击该菜单项将自动跳出创建BOA服务的工程配置界面,输入工程名称与包路径名后,点击完成。系统将自动生成自动Android工程项目,自动生成其余工程目录BOA、CGI、SRC等,即系统将自动创建基于Android平台的BOA服务工程,在此工程中用户如有需要,可以对BOA源码和CGI脚本进行修改,用户修改完成后,点击编译->运行,即编译运行,安装GNUStep程序(用于编译c程序),系统将自动调用各种交叉编译工具生成APK。具体来说,系统将自动调用之前编写的Android.MK和批处理脚本程序**.bat生成APK文件。在Android系统的各种终端上安装APK文件后,进入应用界面,便可启动BOA服务。
综上所述,本实施例中生成的BOA-CGI-plugin插件将自动为开发人员生成所需的工程项目目录与示例程序,并将各种需要使用的SDK与编译工具配置完成,并会自动编译工程项目。用户可以根据自己的需要替换修改BOA源码、CGI网关程序、服务管理主程序等,为企业和个人节省大量开发时间和开发成本。对于曾经使用嵌入式web服务BOA部署CGI网关的开发人员,无须做任何修改,可直接移植其程序到Android系统上,通过BOA-CGI-plugin工具插件,创建的工程项目最终将直接以Android APK的形式发布,可直接安装于任何Android智能终端设备上。
基于上述基于Android系统的BOA编译方法,本发明实施例还提供了一种基于Android系统的BOA编译系统,如图2所示,所述系统包括:
可执行程序生成模块10,用于利用预先编写的批处理脚本程序,去调用预先编写的用于编译BOA源码与CGI脚本的编译脚本程序,以及预先安装准备好的GNUStep编译工具跟Android NDK平台的交叉编译环境,对BOA源码与CGI脚本进行编译以生成可执行程序;具体如步骤S100所述;
赋权模块20,用于利用预先编写的Java程序以发送Linux命令行的方式赋予所述可执行程序对应的可执行权限,使得BOA可在Android系统上运行,并允许BOA调用CGI脚本;具体如步骤S200所述。
进一步地,所述基于Android系统的BOA编译系统,还包括:
设计模块,用于设计开发插件模块,将所述BOA源码、CGI脚本、GNUStep编译工具、Android NDK平台以及所述预先编写的批处理脚本程序、编译脚本程序和Java程序整理到所述插件模块的框架模块中,以便进行内部调用,进而便于将所述插件模块作为整体进行编译。
进一步地,所述基于Android系统的BOA编译系统,所述赋权模块20,用于通过预先编写的Java程序借用JNI来调用所述由BOA源码与CGI脚本生成的可执行程序,将BOA源码和CGI脚本安装到应用程序的安装目录下,当应用程序安装成功后,将对应的可执行程序重名为BOA,并赋予其可执行权限。
进一步地,所述基于Android系统的BOA编译系统,其中,所述设计模块还用于将Android.jar包整理到所述插件模块的框架模块中,用于生成基于Android系统的BOA服务工程;
所述基于Android系统的BOA编译系统,还包括:
编译模块,用于对插件模块进行编译生成插件文件;
创建模块,用于将所述插件文件装在Eclipse开发工具上,基于Android.jar包,在Eclipse开发工具上创建基于Android系统的BOA服务工程;
应用程序生成模块,用于在Eclipse开发工具上编译运行所述BOA服务工程,由插件模块调用交叉编译环境、批处理脚本程序以及编译脚本程序,对BOA源码、CGI脚本进行编译,生成可安装在Android系统上直接启动BOA服务的应用程序。
进一步地,所述的基于Android系统的BOA编译系统,其中,动作生成模块,用于通过预先编写Java程序执行Linux执行命令,完成BOA服务的启动、关闭及重启动作
综上所述,本发明实施例提供的一种基于Android系统的BOA编译方法和系统,用于创建基于BOA服务的工程项目并开发配套CGI网关程序,通过利用预先编写的批处理脚本程序,去调用预先编写的用于编译BOA源码与CGI脚本的编译脚本程序,以及预先安装准备好的GNUStep编译工具跟Android NDK平台的交叉编译环境,对BOA源码与CGI脚本进行编译以生成可执行程序;利用预先编写的Java程序以发送Linux命令行的方式赋予所述可执行程序对应的可执行权限,使得BOA可在Android系统上运行,并允许BOA调用CGI脚本;使得在非Android系统上写的CGI脚本程序与BOA服务可以移植到现有的Android系统上直接运行,使得曾经在其他操作系统上使用BOA服务部署CGI网关程序的开发人员和公司,可以方便快捷的将该服务应用快速方便的部署到Android系统之上,大大方便开发人员开发程序,节省了大量开发时间与成本,带来了大大的方便。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (6)

1.一种基于Android系统的BOA编译方法,用于创建基于BOA服务的工程项目并开发配套CGI网关程序,其特征在于,包括以下步骤:
A、利用预先编写的批处理脚本程序,去调用预先编写的用于编译BOA源码与CGI脚本的编译脚本程序,以及预先安装准备好的GNUStep编译工具跟Android NDK平台的交叉编译环境,对BOA源码与CGI脚本进行编译以生成可执行程序;
B、利用预先编写的Java程序以发送Linux命令行的方式赋予所述可执行程序对应的可执行权限,使得BOA可在Android系统上运行,并允许BOA调用CGI脚本;
所述步骤B具体包括:
B1、通过预先编写的Java程序借用JNI来调用由BOA源码与CGI脚本生成的可执行程序,将BOA源码和CGI脚本安装到应用程序的安装目录下,当应用程序安装成功后,将对应的可执行程序重命名为BOA,并赋予其可执行权限;
所述步骤B还包括:
B2、通过预先编写Java程序执行Linux执行命令,完成BOA服务的启动、关闭及重启动作。
2.根据权利要求1所述的基于Android系统的BOA编译方法,其特征在于,在所述步骤A之前还包括:
A1、设计开发插件模块,将所述BOA源码、CGI脚本、GNUStep编译工具、Android NDK平台以及所述预先编写的批处理脚本程序、编译脚本程序和Java程序整理到所述插件模块的框架模块中,以便进行内部调用,进而便于将所述插件模块作为整体进行编译。
3.根据权利要求2所述的基于Android系统的BOA编译方法,其特征在于,在所述步骤A1中还将Android.jar包整理到所述插件模块的框架模块中,用于生成基于Android系统的BOA服务工程;所述步骤B之后还包括:
C、对插件模块进行编译生成插件文件;
D、将所述插件文件装在Eclipse开发工具上,基于Android.jar包,在Eclipse开发工具上创建基于Android系统的BOA服务工程;
E、在Eclipse开发工具上编译运行所述BOA服务工程,由插件模块调用交叉编译环境、批处理脚本程序以及编译脚本程序,对BOA源码、CGI脚本进行编译,生成可安装在Android系统上直接启动BOA服务的应用程序。
4.一种基于Android系统的BOA编译系统,用于创建基于BOA服务的工程项目并开发配套CGI网关程序,其特征在于,包括:
可执行程序生成模块,用于利用预先编写的批处理脚本程序,去调用预先编写的用于编译BOA源码与CGI脚本的编译脚本程序,以及预先安装准备好的GNUStep编译工具跟Android NDK平台的交叉编译环境,对BOA源码与CGI脚本进行编译以生成可执行程序;
赋权模块,用于利用预先编写的Java程序以发送Linux命令行的方式赋予所述可执行程序对应的可执行权限,使得BOA可在Android系统上运行,并允许BOA调用CGI脚本;
所述赋权模块,用于通过预先编写的Java程序借用JNI来调用由BOA源码与CGI脚本生成的可执行程序,将BOA源码和CGI脚本安装到应用程序的安装目录下,当应用程序安装成功后,将对应的可执行程序重命名为BOA,并赋予其可执行权限;
还包括:动作生成模块,用于通过预先编写Java程序执行Linux执行命令,完成BOA服务的启动、关闭及重启动作。
5.根据权利要求4所述的基于Android系统的BOA编译系统,其特征在于,还包括:
设计模块,用于设计开发插件模块,将所述BOA源码、CGI脚本、GNUStep编译工具、Android NDK平台以及所述预先编写的批处理脚本程序、编译脚本程序和Java程序整理到所述插件模块的框架模块中,以便进行内部调用,进而便于将所述插件模块作为整体进行编译。
6.根据权利要求5所述的基于Android系统的BOA编译系统,其特征在于,所述设计模块还用于将Android.jar包整理到所述插件模块的框架模块中,用于生成基于Android系统的BOA服务工程;
所述基于Android系统的BOA编译系统,还包括:
编译模块,用于对插件模块进行编译生成插件文件;
创建模块,用于将所述插件文件装在Eclipse开发工具上,基于Android.jar包,在Eclipse开发工具上创建基于Android系统的BOA服务工程;
应用程序生成模块,用于在Eclipse开发工具上编译运行所述BOA服务工程,由插件模块调用交叉编译环境、批处理脚本程序以及编译脚本程序,对BOA源码、CGI脚本进行编译,生成可安装在Android系统上直接启动BOA服务的应用程序。
CN201310730053.4A 2013-12-26 2013-12-26 一种基于Android系统的BOA编译方法和系统 Expired - Fee Related CN103713902B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310730053.4A CN103713902B (zh) 2013-12-26 2013-12-26 一种基于Android系统的BOA编译方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310730053.4A CN103713902B (zh) 2013-12-26 2013-12-26 一种基于Android系统的BOA编译方法和系统

Publications (2)

Publication Number Publication Date
CN103713902A CN103713902A (zh) 2014-04-09
CN103713902B true CN103713902B (zh) 2017-10-24

Family

ID=50406909

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310730053.4A Expired - Fee Related CN103713902B (zh) 2013-12-26 2013-12-26 一种基于Android系统的BOA编译方法和系统

Country Status (1)

Country Link
CN (1) CN103713902B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104536797B (zh) * 2015-01-14 2017-10-27 大唐微电子技术有限公司 一种Java程序预编译方法和预编译器
CN104991810B (zh) * 2015-07-24 2018-10-12 上海斐讯数据通信技术有限公司 自动添加apk到安卓系统中的方法及处理系统
CN105260183B (zh) * 2015-10-14 2019-03-15 浪潮(北京)电子信息产业有限公司 一种基于c++的页面访问请求响应方法及系统
CN112989239A (zh) * 2016-03-17 2021-06-18 谷歌有限责任公司 混合的客户端-服务器数据提供的方法
CN106020921B (zh) * 2016-05-16 2019-03-29 广东天波信息技术股份有限公司 外设应用程序的移植方法及其系统
CN106569828B (zh) * 2016-11-10 2019-08-09 福州智永信息科技有限公司 可扩展定制实现模拟人工操作触摸设备的方法
CN109284112B (zh) * 2018-09-28 2022-03-22 郑州云海信息技术有限公司 一种用于运行应用程序的方法和装置
CN110377335B (zh) * 2019-07-26 2023-04-25 上海携程商务有限公司 代码集成加速方法及系统
CN113282906A (zh) * 2020-02-20 2021-08-20 Oppo广东移动通信有限公司 权限检测方法、装置、终端及存储介质
CN111522601A (zh) * 2020-04-22 2020-08-11 北京思特奇信息技术股份有限公司 一种灵活配置多个组件任务的后端运行方法及系统
CN114461306A (zh) * 2022-04-13 2022-05-10 飞腾信息技术有限公司 运行软件的方法、装置及机器可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6847981B2 (en) * 2002-11-27 2005-01-25 Electronics And Telecommunications Research Institute System and method for generating EJB components from reusable business logics in servlet program
CN101122866A (zh) * 2007-09-12 2008-02-13 中兴通讯股份有限公司 集成开发环境中的程序代码编译方法
CN102402428A (zh) * 2010-09-14 2012-04-04 基信康信息技术(上海)有限公司 在同一台host机器下实现多套平台共存编译的方法
CN103294455A (zh) * 2012-02-27 2013-09-11 杭州勒卡斯广告策划有限公司 一种软件服务实现方法、系统及Java平台

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8286198B2 (en) * 2008-06-06 2012-10-09 Apple Inc. Application programming interfaces for data parallel computing on multiple processors

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6847981B2 (en) * 2002-11-27 2005-01-25 Electronics And Telecommunications Research Institute System and method for generating EJB components from reusable business logics in servlet program
CN101122866A (zh) * 2007-09-12 2008-02-13 中兴通讯股份有限公司 集成开发环境中的程序代码编译方法
CN102402428A (zh) * 2010-09-14 2012-04-04 基信康信息技术(上海)有限公司 在同一台host机器下实现多套平台共存编译的方法
CN103294455A (zh) * 2012-02-27 2013-09-11 杭州勒卡斯广告策划有限公司 一种软件服务实现方法、系统及Java平台

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"基于Android和ARM的嵌入式web服务器平台设计";季云峰;《无锡职业技术学院学报》;20120531;第70-71页、表1-2 *
"基于Android的智能家居设计";衡友跃,杨义;《河南科技学院学报》;20130430;全文 *

Also Published As

Publication number Publication date
CN103713902A (zh) 2014-04-09

Similar Documents

Publication Publication Date Title
CN103713902B (zh) 一种基于Android系统的BOA编译方法和系统
US6178546B1 (en) System and method of making software product deliverables
CN103460217B (zh) 用于保护应用程序的方法及其装置
CN106095523A (zh) 一种实现安卓编译隔离的方法和系统
US10338907B2 (en) Cloud service framework for toolkit deployment
US20070089090A1 (en) Method and system for protecting source code
Perchat et al. Component based framework to create mobile cross-platform applications
CN101040259A (zh) 运行期动态链接
CN100492387C (zh) 基于Keil C51的软件保护开发的方法和系统
CN105046116A (zh) Android系统中保护dex文件不被反编译的方法
Elrom et al. Neo blockchain and smart contracts
CN110059456A (zh) 代码保护方法、代码保护装置、存储介质与电子设备
CN102930190A (zh) 一种在安卓系统中阻止用户获取超级用户权限的方法
CN102455931A (zh) 一种Android平台工程的开发方法及系统
RU2359316C2 (ru) Способ администрирования компонентов программного обеспечения, интегрированных в мобильную систему
CN103885784A (zh) 具有安全模块可插拔功能的Android平台构建方法
CN108897588B (zh) 一种用于模块间通信的路由方法和路由装置
CN111966357A (zh) 一种操作系统应用编译方法、装置及电子设备
Nagel Professional C# 6 and. Net Core 1.0
KR20130020135A (ko) 통합 개발 환경에서의 코드 동시 개발자 리스트 제공 시스템 및 방법
US20120240097A1 (en) Method of providing software development services
CN113721929A (zh) 一种自动化植入公用代码到Android App的方法
Bueno et al. Quarkus Cookbook
CN105786532A (zh) 一种基于Web Service的版本更新方法
Hen-Tov et al. Adaptive object-model evolution patterns

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171024

CF01 Termination of patent right due to non-payment of annual fee