千家信息网

Android中怎么使用Android.mk模板

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍了Android中怎么使用Android.mk模板的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android中怎么使用Android.mk模板文章都会有
千家信息网最后更新 2026年11月03日Android中怎么使用Android.mk模板

这篇文章主要介绍了Android中怎么使用Android.mk模板的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android中怎么使用Android.mk模板文章都会有所收获,下面我们一起来看看吧。

Android开发之Android.mk模板的实例详解

1. 如何自动添加需要编译的源文件列表

2. 如何添加第三方静态库、动态库的依赖
3. 如何构造一个完整的NDK工程框架

假设我们的项目依赖 libmath.a, libjson.a, libffmpeg.so 这几个第三方库文件,项目包含如下几个模块:algorithm,core,network,utils,tests,每个模块都有若干个.c/.h文件,我们要把整个工程编译为动态库,并通过 native_sdk.c 中的函数向Java层提供调用接口。

那么,我们可以对 Android 工程的 jni 目录,做如下划分:

对应的 Android.mk 文件的写法示例如下(注:工程文件可以到我的Github(@Jhuster/Android)中在线查看,也可以在本博文最后的附件中下载):

LOCAL_PATH := $(call my-dir)3RD_INC_DIR = $(LOCAL_PATH)/3rd/inc3RD_LIB_DIR = $(LOCAL_PATH)/3rd/libs # Prebuild the 3rd libraries  include $(CLEAR_VARS)LOCAL_MODULE := mathLOCAL_SRC_FILES := $(3RD_LIB_DIR)/libmath.ainclude $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS)LOCAL_MODULE := jsonLOCAL_SRC_FILES := $(3RD_LIB_DIR)/libjson.ainclude $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS)LOCAL_MODULE := ffmpegLOCAL_SRC_FILES := $(3RD_LIB_DIR)/libffmpeg.soinclude $(PREBUILT_SHARED_LIBRARY) # Build native sdk  include $(CLEAR_VARS)   LOCAL_MODULE := native_sdk LOCAL_SRC_FILES := \  $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/src/algorithm/*.c)) \  $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/src/core/*.c)) \  $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/src/network/*.c)) \  $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/src/utils/*.c)) \  $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/src/*.c))    LOCAL_C_INCLUDES := $(3RD_INC_DIR)LOCAL_C_INCLUDES := $(LOCAL_PATH)/src LOCAL_C_INCLUDES := $(LOCAL_PATH)/src/algorithmLOCAL_C_INCLUDES += $(LOCAL_PATH)/src/coreLOCAL_C_INCLUDES += $(LOCAL_PATH)/src/networkLOCAL_C_INCLUDES += $(LOCAL_PATH)/src/utils LOCAL_CFLAGS := -DANDROID                  LOCAL_LDLIBS := -llog  LOCAL_STATIC_LIBRARIES := math jsonLOCAL_SHARED_LIBRARIES := ffmpeg include $(BUILD_SHARED_LIBRARY)  # Build tests include $(CLEAR_VARS)  LOCAL_MODULE := test.outLOCAL_SRC_FILES := $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/tests/*.c)) LOCAL_CFLAGS := -DANDROID LOCAL_C_INCLUDES := $(LOCAL_PATH)/src LOCAL_LDLIBS := -llog -fPIE -pieLOCAL_SHARED_LIBRARIES:= native_sdkinclude $(BUILD_EXECUTABLE)

关于"Android中怎么使用Android.mk模板"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Android中怎么使用Android.mk模板"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

模板 工程 文件 知识 内容 动态 模块 第三方 篇文章 项目 价值 写法 函数 实例 库文件 接口 操作简单 文章 易懂 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 美国互联网保险保险科技 互联网科技深圳 北京互联网科技有限公司 互联网科技小贷 长亮科技 互联网金融 上海亿帐通互联网科技 四个字互联网科技公司取名 哈尔滨秒房互联网科技有限公司 互联网为啥属于高科技 哈尔滨屹滨互联网科技有限公司 青海科技产业互联网发展 用友工业互联网科技发展 南博望互联网科技有限公司 互联网科技融合创新 银川新华互联网科技学校是国营吗 互联网科技手抄报图片 马化腾互联网科技教学 华人运通互联网科技公司 互联网领先科技成果宣传视频 广州全民伙伴互联网科技有限公司 互联网科技巨头监管 互联网公司 科技公司 安徽鑫晟辉互联网科技 腾讯科技 互联网女皇 互联网科技ppt模板 科技互联网创业计划书 互联网媒体平台算高科技产业 工业互联网展湾科技股份有限公司 卡尔迅互联网科技有限公司 互联网科技手抄报图片
0