android 怎么引用一个静态库

如题所述

第1个回答  2017-07-22

由于工作需要,需要在framework中增加自己的动态库,并且动态库需要使用合作方提供的第三方静态库。但是在引入静态库编译动态库时总是提示失败。具体如下:

1. 文件列表

说明: Android.mk是编译配置文件,test.cpp是编译动态库的源文件,内容很简单,就是一个函数里面分别调用静态库中的函数。本例的主要目的是验证动态库引用第三方库的方法,具体库函数的功能基本忽略。 third_lib.a是第三方静态库文件; third_lib.h是第三方静态库输出函数的头文件

2.可以通过命令 mn -s third_lib.a来查看静态库的大致情况:


3.可以看出,静态库的源文件也叫test, 它提供了两个函数xdcodec_encode1和xdcodec_encode_init1。

4.再来看一下编译配置文件的内容:

可以看出这个配置文件的内容主要分为两部分,第一部分预编译静态库,这一过程不触发构建过程,仅仅是重起了个名字,并且将该库拷贝到某个路径下(具体可以参看另一篇文章,NDK使用二进制库的方法);第二部分是用于编译动态本地库,可以看出它通过LOCAL_STATIC_LIBRARIES关键字引入了之前预编译的静态库。

第2个回答  2017-08-28
关于编译静态库:
android.mk和xxx.cpp放在新文件夹里:
LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \xxx.cpp
LOCAL_MODULE:= libx
include $(BUILD_STATIC_LIBRARY)
生成静态库libx.a文件
相似回答