NDK提供的共享库(Prebuilt)

Android NDK r5 开始支持预编译库(动态库和静态库),即程序能使用库的预编译版本。该特性可用于以下两方面:1)向第三方NDK开发人员发布你的共享库而不用提供源码。2)使用一个提前编译好的库(预编译库)来加速编译过程。本文说明该特性如何工作。I. 声明一个预编译库的模块对于Android编译工具而言,每个预编译库必须声明为一个独立的模块。这里举一个例子,假设 li
摘要由CSDN通过智能技术生成

Android NDK r5 开始支持预编译库(动态库和静态库),即程序能使用库的预编译版本。

该特性可用于以下两方面:

1)向第三方NDK开发人员发布你的共享库而不用提供源码。
2)使用一个提前编译好的库(预编译库)来加速编译过程。

本文说明该特性如何工作。

I. 声明一个预编译库的模块

对于Android编译工具而言,每个预编译库必须声明为一个独立的模块。这里举一个例子,假设 libfoo.so 文件与 Android.mk 位于同一个目录:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := foo-prebuilt
LOCAL_SRC_FILES := libfoo.so
include $(PREBUILT_SHARED_LIBRARY)
按以下步骤声明这样一个模块:
1. 给该模块取一个名字(这里是 foo-prebuilt)。这个名字不需要与预编译库自身的名字相同。
2. 将 LOCAL_SRC_FILES 指定为你要提供的共享库的路径。通常,该路径是相对于 LOCAL_PATH 的路径。注意:必须保证共享库ABI的兼容性。
3. 如果你的库是共享库,则包含 PREBUILT_SHARED_LIBRARY 而不是 BUILD_SHARED_LIBRARY;如果是静态库,则包含 PREBUILT_STATIC_LIBRARY。

预编译模块不需要编译。该预编译模块会被拷贝到 $PROJECT/obj/local 下面,还会被拷贝到 $PROJECT/libs/<abi> 下面(

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值