在安卓开发环境下使用动态库的方法

文档序号:6511265阅读:202来源:国知局
在安卓开发环境下使用动态库的方法
【专利摘要】本发明涉及在安卓开发环境下使用动态库的方法,包括:a.配置动态库和动态库头文件的相应路径;b.在使用动态库的工程中的安卓系统配置文件中加入包含动态库的库名的配置信息;c.应用动态库,通过步骤a配置的动态库头文件的路径得到动态库头文件的绝对路径,并将所述绝对路径添加到安卓编译系统的变量中;d.安卓编译系统在编译开发代码时,自动在步骤c所述变量中查找到动态库头文件。本发明的方法大幅度的减少了开发者的重复劳动,明显降低了开发者的劳动强度,简化了开发步骤,极为有效的减少了由于重复劳动而出错的几率。
【专利说明】在安卓开发环境下使用动态库的方法
【技术领域】
[0001]本发明涉及在安卓开发环境下的程序应用方法,具体的讲是在安卓开发环境下使用动态库的方法。
【背景技术】
[0002]NDK是Android (安卓)系统提供的一套工具集合,NDK使Android程序开发者可以使用本地代码语言开发Android程序,如:C、C++等。
[0003]由于C、C++等已经有很多有用的动态链接库(.so库)来提供丰富的功能,为了节省软件开发时间,提高软件开发效率和已有代码的复用率,在开发NDK本地代码时使用动态链接库就在所难免。目前在NDK开发中使用动态链接库主要依赖NDK对预编译库的支持,使用过程比较复杂繁琐,举例说明其具体使用步骤:假设被使用的动态链接库的名字为test, so,被使用的动态库的头文件为test, h,名为projectA的工程会使用动态库test.SO0首先需要在projectA的jni目录下新建一个存放test, so的目录newDir,把test, so和test, h复制到新建的目录newDir下,并在新建的目录下新建相应的Android, mk文件,然后在projectA的jni目录下的Android, mk文件中添加使用动态链接库的参数。如果有几个工程都要使用test, so库,则在几个使用test, so库的工程中都需要完成以上的步骤。很明显,这样的步骤和方式会在多个工程中不断的重复,即增大了开发者的开发强度,而且在进行多次相同操作时还增大了出错的几率。在大型开发项目中这种弊端更是显得尤为突出。

【发明内容】

[0004]本发明提供了一种在安卓开发环境下使用动态库的方法,通过重用的方式对动态库的路径只进行一次配置,以降低重复劳动,减少出错几率。
[0005]本发明在安卓开发环境下使用动态库的方法,包括:
[0006]a.配置动态库和动态库头文件的相应路径;
[0007]b.在使用动态库的工程中的安卓系统配置文件中加入包含动态库的库名的配置信息;
[0008]c.应用动态库,通过步骤a配置的动态库头文件的路径得到动态库头文件的绝对路径,并将所述绝对路径添加到安卓编译系统的变量中;
[0009]d.安卓编译系统在编译开发代码时,自动在步骤c所述变量中查找到动态库头文件。
[0010]这样不需要把动态库复制到每个使用工程的目录下,也不需要在每个工程新建相应的配置文件并输入配置信息,而且还要修改NDK原有的配置文件。开发者只需要简单地配置动态库路径信息,在要使用动态库工程原有的配置文件中简单添加动态库名就可以在所有的工程中方便地使用动态库了。极大地简化了开发者使用动态库的过程,提高了开发效率。将这种方式应用在框架式的开发环境中还可起到标准化和统一化的作用。[0011]具体的,步骤a中所述的路径为相对于安卓系统的NDK根目录的相对路径。
[0012]进一步的,如果当前的操作系统为Windows操作系统,将步骤c中得到的绝对路径通过脚本转换Windows系统识别格式的绝对路径后,再添加到安卓编译系统的变量中。
[0013]具体的,步骤c中是将动态库头文件的绝对路径添加到安卓编译系统的L0CAL_LDLIBS变量中。
[0014]再进一步,还要将步骤c中是将动态库头文件的绝对路径添加到安卓编译系统的LOCAL_C_INCLUDES 变量中。
[0015]本发明的方法大幅度的减少了开发者的重复劳动,明显降低了开发者的劳动强度,简化了开发步骤,极为有效的减少了由于重复劳动而出错的几率。
[0016]以下结合实施例的【具体实施方式】,对本发明的上述内容再作进一步的详细说明。但不应将此理解为本发明上述主题的范围仅限于以下的实例。在不脱离本发明上述技术思想情况下,根据本领域普通技术知识和惯用手段做出的各种替换或变更,均应包括在本发明的范围内。
【专利附图】

【附图说明】
[0017]图1为本发明在安卓开发环境下使用动态库的方法的流程图。
【具体实施方式】
[0018]如图1所示本发明在安卓开发环境下使用动态库的方法,包括:
[0019]a.配置动态库和动态库头文件的相对于安卓系统的NDK根目录的相对路径;
[0020]b.在使用动态库的工程的jni目录中找到Android, mk配置文件,在该配置文件中加入包含动态库的库名的配置信息:“L0CAL_LDLIBS:=-1库名”,其中库名部分需要去掉“? so”,例如动态库名是test, so,则-1后面的库名就是test。如果配置文件中已经包含了“L0CAL_LDLIBS”变量,则可以直接在变量已有的库名后添加“_1库名”;
[0021]c.应用动态库,通过步骤a配置的动态库头文件的相对路径得到动态库头文件的绝对路径,如果当前的操作系统为Windows操作系统,将步骤c中得到的绝对路径通过脚本转换Windows系统识别格式的绝对路径并将所述绝对路径添加到安卓编译系统的变量中;
[0022]d.安卓编译系统在编译开发代码时,自动在步骤c所述变量中查找到动态库头文件。
[0023]以具体工程为例:
[0024]首先修改NDK的编译系统的“build/core/import-locals.mk”编译文件。接着第一步,使用awk脚本从配置好的动态库配置文件中,获取动态库及动态库头文件相对于NDK的相对路径。第二步,通过第一步获取到的动态库的相对路径加上NDK根目录的路径,得到动态库的绝对路径。如果在Windows操作系统下,则还需要把绝对路径通过awk脚本转换为Windows格式的绝对路径。然后把绝对路径添加到NDK编译系统的“L0CAL_LDLIBS”变量中,添加方式为“L0CAL_LDLIBS+=_L路径”。第三步,通过第一步获取到的动态库头文件的相对路径加上NDK根目录的路径,得到动态库头文件的绝对路径。同样的,相应的如果在Windows操作系统下,也需要把绝对路径通过awk脚本转换为Windows格式的绝对路径。然后把绝对路径添加到NDK编译系统的“L0CAL_C_INCLUDES”变量中,添加方式为“L0CAL_C_INCLUDES+=路径”。第四步,当使用NDK编译系统编译开发者的代码时,会自动在LOCAL_LDLIBS变量和LOCAL_C_INCLUDES变量所包含的路径中查找到动态库。
【权利要求】
1.在安卓开发环境下使用动态库的方法,其特征包括: a.配置动态库和动态库头文件的相应路径; b.在使用动态库的工程中的安卓系统配置文件中加入包含动态库的库名的配置信息; c.应用动态库,通过步骤a配置的动态库头文件的路径得到动态库头文件的绝对路径,并将所述绝对路径添加到安卓编译系统的变量中; d.安卓编译系统在编译开发代码时,自动在步骤c所述变量中查找到动态库头文件。
2.如权利要求1所述的方法,其特征为:步骤a中所述的路径为相对于安卓系统的NDK根目录的相对路径。
3.如权利要求1所述的方法,其特征为:如果当前的操作系统为Windows操作系统,将步骤c中得到的绝对路径通过脚本转换Windows系统识别格式的绝对路径后,再添加到安卓编译系统的变量中。
4.如权利要求1至3之一所述的方法,其特征为:步骤c中是将动态库头文件的绝对路径添加到安卓编译系统的LOCAL_LDLIBS变量中。
5.如权利要求1至3之一所述的方法,其特征为:步骤c中是将动态库头文件的绝对路径添加到安卓编译系统的LOCAL_C_INCLUDES变量中。
【文档编号】G06F9/44GK103455337SQ201310414214
【公开日】2013年12月18日 申请日期:2013年9月12日 优先权日:2013年9月12日
【发明者】胡军 申请人:四川长虹电器股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1