Android–带有动态库、静态库、Jar包的makefile编写
来源:互联网 发布:nba2kol王朝软件 编辑:程序博客网 时间:2024/06/06 05:51
在Linux环境下Android开发过程中,经常会用到第三方的静态库、动态库、jar包来开发自己的应用,那么,如何编写这类应用的makefile呢?
首先,带有动态库的makefile编写:
12345678910
include $(CLEAR_VARS)LOCAL_MODULE := libfreewrite-jni.so LOCAL_MODULE_CLASS := SHARED_LIBRARIES LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)LOCAL_SRC_FILES := libs/$(LOCAL_MODULE)OVERRIDE_BUILD_MODULE_PATH := $(TARGET_OUT_INTERMEDIATE_LIBRARIES) include $(BUILD_PREBUILT)
将上面的代码添加在应用最外层的Android.mk文件最后面即可,其它地方也可,但是注意添加过程中不要破坏原有代码的结构,例如将下面包含jar包的代码随意添加到本代码块中间是不对的,应该放在该代码块的前面后者后面。
上面要添加的动态库的名称为:libfreewrite-jni.so
所在的路径为:/libs/libfreewrite-jni.so
第二,jar包的添加:
123456
include $(CLEAR_VARS) LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libvDm:libs/com.redbend.vdm.jar \ libvDmComm:libs/com.redbend.vdm.comm.jar \ libvDmDdl:libs/com.redbend.vdm.ddl.jar \ libvDmFumo:libs/com.redbend.vdm.fumo.jarinclude $(BUILD_MULTI_PREBUILT)
以上代码中,形如“libvDm:”的作用应该类似与编程语言中的引用,或者说叫重命名;另外,感觉jar包的添加,貌似和静态库是一样的,或者jar包本身就类似于静态库吧?有点小疑问……
第三,静态库的添加:
下面的Android.mk完整程序是编译生成一个.so
1234567891011121314151617181920212223242526
LOCAL_PATH := $(call my-dir) ### shared library include $(CLEAR_VARS) #需要编译的本地源文件LOCAL_SRC_FILES := \hisense/com_hisense_inputmethod_CskSmartEngDecoderService.cpp LOCAL_C_INCLUDES += $(JNI_H_INCLUDE)LOCAL_LDLIBS += -lpthread#将要生成.so动态库的名称LOCAL_MODULE := libjni_csksmarteng_hisenseimeLOCAL_PRELINK_MODULE := falseLOCAL_SHARED_LIBRARIES := libcutils libutils #包含静态库libhisensecsk2smartengarmLOCAL_STATIC_LIBRARIES := libhisensecsk2smartengarm #编译生成一个.so动态库include $(BUILD_SHARED_LIBRARY) #指示Static Libraries所在的目录为/lib/libhisensecsk2smartengarm#规则由lib/Android.mk文件定义include $(LOCAL_PATH)/lib/Android.mk
另附,静态库所在文件夹内的Android.mk文件:
123
LOCAL_PATH := $(my-dir) $(call add-prebuilt-files, STATIC_LIBRARIES, libhisensecsk2smartengarm.a)
原文地址
http://xiaohang.org/2011/04/- Android–带有动态库、静态库、Jar包的makefile编写
- Android初学习 – 带有动态库、静态库、Jar包的makefile编写
- Makefile关于动态库与静态库的编写技巧
- android 打包带有资源的jar包
- 静态库的创建和编写makefile
- makefile 编写,编译动态库,编译静态库
- android自定义静态jar包和动态jar包的编译、使用
- linux动态库及静态库的制作 和makefile 的简单编写
- linux下动态库和静态库的制作、寻找、比较及相关Makefile的编写
- linux动态库及静态库的制作和makefile的简单编写
- 静态、动态库的创建使用与makefile配置文件的编写
- linux 生成和使用动态链接库和静态链接库的Makefile编写
- linux 生成和使用动态链接库和静态链接库的Makefile编写
- linux 生成和使用动态链接库和静态链接库的Makefile编写
- linux 生成和使用动态链接库和静态链接库的Makefile编写
- Linux动态库与静态库以及简单makefile的编写
- 动态库的Makefile.am编写
- Android编译带有第三方jar包的软件。
- Android 属性总结
- 水了这些篇blog也木评论,求评论啊!
- SWITCH交换机与路由器的区别
- 面向对象的三个基本特征(讲解)
- 程序员基本素养
- Android–带有动态库、静态库、Jar包的makefile编写
- MyISAM 和 InnoDB 的区别(经典面试题)
- 如何在32位ubuntu11.10 下编译android 4.0.1源码和goldfish内核
- C++实现建造者模式
- hdu 1059 Dividing(多重DP)
- 解决部分电脑不能安装Linux问题
- 加深C# 中字符串前加@符号理解以及使用~~
- ZOJ 1011 NTA(二叉树+vector)
- JSP转译成Servlet详细过程