CN103713902A - 一种基于Android系统的BOA编译方法和系统 - Google Patents
一种基于Android系统的BOA编译方法和系统 Download PDFInfo
- Publication number
- CN103713902A CN103713902A CN201310730053.4A CN201310730053A CN103713902A CN 103713902 A CN103713902 A CN 103713902A CN 201310730053 A CN201310730053 A CN 201310730053A CN 103713902 A CN103713902 A CN 103713902A
- Authority
- CN
- China
- Prior art keywords
- boa
- compilation
- program
- android
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000013515 script Methods 0.000 claims abstract description 39
- 238000012545 processing Methods 0.000 claims description 30
- 238000009434 installation Methods 0.000 claims description 18
- 238000013461 design Methods 0.000 claims description 11
- 230000009471 action Effects 0.000 claims description 10
- 230000018109 developmental process Effects 0.000 description 18
- 238000011161 development Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- JEIPFZHSYJVQDO-UHFFFAOYSA-N ferric oxide Chemical compound O=[Fe]O[Fe]=O JEIPFZHSYJVQDO-UHFFFAOYSA-N 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种基于Android系统的BOA编译方法和系统,用于创建基于BOA服务的工程项目并开发配套CGI网关程序,通过利用预先编写的批处理脚本程序,去调用预先编写的用于编译BOA源码与CGI脚本的编译脚本程序,对BOA源码与CGI脚本进行编译以生成可执行程序;利用预先编写的Java程序以发送Linux命令行的方式赋予所述可执行程序对应的可执行权限,使得BOA可在Android系统上运行,并允许BOA调用CGI脚本;使得在非Android系统上写的CGI脚本与BOA服务可以移植到现有的Android系统上直接运行。
Description
技术领域
本发明涉及移动终端领域,尤其涉及的是一种基于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是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服务器下运行外部程序(或网关)的一个接口,它能让网络用户访问远程系统上的使用类型程序,就好像他们在实际使用那些远程计算机一样。
本发明的原理如下:根据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("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;
}
}
停止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 (10)
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之前还包括:
A1、设计开发插件模块,将所述BOA源码、CGI脚本、GNUStep编译工具、Android NDK平台以及所述预先编写的批处理脚本程序、编译脚本程序和Java程序整理到所述插件模块的框架模块中,以便进行内部调用,进而便于将所述插件模块作为整体进行编译。
3.根据权利要求1所述的基于Android系统的BOA编译方法,其特征在于,所述步骤B具体包括:
B1、通过预先编写的Java程序借用JNI来调用所述由BOA源码与CGI脚本生成的可执行程序,将BOA源码和CGI脚本安装到应用程序的安装目录下,当应用程序安装成功后,将对应的可执行程序重名为BOA,并赋予其可执行权限。
4.根据权利要求2所述的基于Android系统的BOA编译方法,其特征在于,在所述步骤A1中还将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脚本安装到应用程序的安装目录下,当应用程序安装成功后,将对应的可执行程序重名为BOA,并赋予其可执行权限。
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服务的启动、关闭及重启动作。
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 true CN103713902A (zh) | 2014-04-09 |
CN103713902B 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) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536797A (zh) * | 2015-01-14 | 2015-04-22 | 大唐微电子技术有限公司 | 一种Java程序预编译方法和预编译器 |
CN104991810A (zh) * | 2015-07-24 | 2015-10-21 | 上海斐讯数据通信技术有限公司 | 自动添加apk到安卓系统中的方法及处理系统 |
CN105260183A (zh) * | 2015-10-14 | 2016-01-20 | 浪潮(北京)电子信息产业有限公司 | 一种基于c++的页面访问请求响应方法及系统 |
CN106020921A (zh) * | 2016-05-16 | 2016-10-12 | 广东天波信息技术股份有限公司 | 外设应用程序的移植方法及其系统 |
CN106569828A (zh) * | 2016-11-10 | 2017-04-19 | 福州智永信息科技有限公司 | 可扩展定制实现模拟人工操作触摸设备的方法 |
CN109284112A (zh) * | 2018-09-28 | 2019-01-29 | 郑州云海信息技术有限公司 | 一种用于运行应用程序的方法和装置 |
CN110377335A (zh) * | 2019-07-26 | 2019-10-25 | 上海携程商务有限公司 | 代码集成加速方法及系统 |
CN111522601A (zh) * | 2020-04-22 | 2020-08-11 | 北京思特奇信息技术股份有限公司 | 一种灵活配置多个组件任务的后端运行方法及系统 |
CN112989239A (zh) * | 2016-03-17 | 2021-06-18 | 谷歌有限责任公司 | 混合的客户端-服务器数据提供的方法 |
CN113282906A (zh) * | 2020-02-20 | 2021-08-20 | Oppo广东移动通信有限公司 | 权限检测方法、装置、终端及存储介质 |
CN114461306A (zh) * | 2022-04-13 | 2022-05-10 | 飞腾信息技术有限公司 | 运行软件的方法、装置及机器可读存储介质 |
Citations (5)
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机器下实现多套平台共存编译的方法 |
US20130081066A1 (en) * | 2008-06-06 | 2013-03-28 | Aaftab A. Munshi | Application programming interfaces for data parallel computing on multiple processors |
CN103294455A (zh) * | 2012-02-27 | 2013-09-11 | 杭州勒卡斯广告策划有限公司 | 一种软件服务实现方法、系统及Java平台 |
-
2013
- 2013-12-26 CN CN201310730053.4A patent/CN103713902B/zh not_active Expired - Fee Related
Patent Citations (5)
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 | 中兴通讯股份有限公司 | 集成开发环境中的程序代码编译方法 |
US20130081066A1 (en) * | 2008-06-06 | 2013-03-28 | Aaftab A. Munshi | Application programming interfaces for data parallel computing on multiple processors |
CN102402428A (zh) * | 2010-09-14 | 2012-04-04 | 基信康信息技术(上海)有限公司 | 在同一台host机器下实现多套平台共存编译的方法 |
CN103294455A (zh) * | 2012-02-27 | 2013-09-11 | 杭州勒卡斯广告策划有限公司 | 一种软件服务实现方法、系统及Java平台 |
Non-Patent Citations (2)
Title |
---|
季云峰: ""基于Android和ARM的嵌入式web服务器平台设计"", 《无锡职业技术学院学报》 * |
衡友跃,杨义: ""基于Android的智能家居设计"", 《河南科技学院学报》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536797A (zh) * | 2015-01-14 | 2015-04-22 | 大唐微电子技术有限公司 | 一种Java程序预编译方法和预编译器 |
CN104536797B (zh) * | 2015-01-14 | 2017-10-27 | 大唐微电子技术有限公司 | 一种Java程序预编译方法和预编译器 |
CN104991810A (zh) * | 2015-07-24 | 2015-10-21 | 上海斐讯数据通信技术有限公司 | 自动添加apk到安卓系统中的方法及处理系统 |
CN105260183B (zh) * | 2015-10-14 | 2019-03-15 | 浪潮(北京)电子信息产业有限公司 | 一种基于c++的页面访问请求响应方法及系统 |
CN105260183A (zh) * | 2015-10-14 | 2016-01-20 | 浪潮(北京)电子信息产业有限公司 | 一种基于c++的页面访问请求响应方法及系统 |
CN112989239A (zh) * | 2016-03-17 | 2021-06-18 | 谷歌有限责任公司 | 混合的客户端-服务器数据提供的方法 |
CN106020921B (zh) * | 2016-05-16 | 2019-03-29 | 广东天波信息技术股份有限公司 | 外设应用程序的移植方法及其系统 |
CN106020921A (zh) * | 2016-05-16 | 2016-10-12 | 广东天波信息技术股份有限公司 | 外设应用程序的移植方法及其系统 |
CN106569828A (zh) * | 2016-11-10 | 2017-04-19 | 福州智永信息科技有限公司 | 可扩展定制实现模拟人工操作触摸设备的方法 |
CN106569828B (zh) * | 2016-11-10 | 2019-08-09 | 福州智永信息科技有限公司 | 可扩展定制实现模拟人工操作触摸设备的方法 |
CN109284112A (zh) * | 2018-09-28 | 2019-01-29 | 郑州云海信息技术有限公司 | 一种用于运行应用程序的方法和装置 |
CN109284112B (zh) * | 2018-09-28 | 2022-03-22 | 郑州云海信息技术有限公司 | 一种用于运行应用程序的方法和装置 |
CN110377335A (zh) * | 2019-07-26 | 2019-10-25 | 上海携程商务有限公司 | 代码集成加速方法及系统 |
CN113282906A (zh) * | 2020-02-20 | 2021-08-20 | Oppo广东移动通信有限公司 | 权限检测方法、装置、终端及存储介质 |
CN113282906B (zh) * | 2020-02-20 | 2024-05-03 | Oppo广东移动通信有限公司 | 权限检测方法、装置、终端及存储介质 |
CN111522601A (zh) * | 2020-04-22 | 2020-08-11 | 北京思特奇信息技术股份有限公司 | 一种灵活配置多个组件任务的后端运行方法及系统 |
CN114461306A (zh) * | 2022-04-13 | 2022-05-10 | 飞腾信息技术有限公司 | 运行软件的方法、装置及机器可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103713902B (zh) | 2017-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103713902A (zh) | 一种基于Android系统的BOA编译方法和系统 | |
Cinar | Android apps with Eclipse | |
Hellman | Android programming: Pushing the limits | |
CN107526625B (zh) | 一种基于字节码检查的Java智能合约安全检测方法 | |
CN105046116B (zh) | Android系统中保护dex文件不被反编译的方法 | |
US20170192773A1 (en) | Mobile applications | |
CN100492387C (zh) | 基于Keil C51的软件保护开发的方法和系统 | |
US20180157479A1 (en) | Cloud service framework for toolkit deployment | |
CN102930190B (zh) | 一种在安卓系统中阻止用户获取超级用户权限的方法 | |
WO2014138894A1 (en) | Systems and methods for controlling branch latency within computing applications | |
KR102052776B1 (ko) | 병행가능하고 신뢰성 있는 설치를 위한 설치 엔진 및 패키지 포맷 | |
Elrom et al. | Neo blockchain and smart contracts | |
WO2018032653A1 (zh) | 一种Java卡应用的功能实现方法及装置 | |
CN117093286B (zh) | 插件生成方法、装置、设备及计算机可读存储介质 | |
CN110059456A (zh) | 代码保护方法、代码保护装置、存储介质与电子设备 | |
CN111966357A (zh) | 一种操作系统应用编译方法、装置及电子设备 | |
CN113342323A (zh) | 软件在线开发的方法及装置 | |
CN104156247A (zh) | 一种应用升级方法及装置 | |
CN103885784A (zh) | 具有安全模块可插拔功能的Android平台构建方法 | |
CN106778270B (zh) | 一种恶意应用程序的检测方法及系统 | |
KR101436741B1 (ko) | 프로그램 보안 솔루션 적용 방법 및 시스템 | |
CN106371895A (zh) | 一种升级kvm虚拟机去虚拟化的方法 | |
CN101794229A (zh) | 一种Linux编译权限管理方法 | |
CN105786532A (zh) | 一种基于Web Service的版本更新方法 | |
Kyriakou et al. | Enhancing C/C++ based OSS development and discoverability with CBRJS: A Rust/Node. js/WebAssembly framework for repackaging legacy codebases |
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 |