Android中怎么使用Android.mk模板
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,这篇文章主要介绍了Android中怎么使用Android.mk模板的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android中怎么使用Android.mk模板文章都会有
千家信息网最后更新 2025年11月11日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安全错误
数据库的锁怎样保障安全
与服务器连接意外终止
官网数据库检索链接是什么意思
软件开发计划粗略文库
越南软件开发工资高吗
亚马逊数据库如何设置权限
中兴通讯涉及网络安全吗
数据库生成随机账号
ibm服务器操作系统安装图解
交通运输网络安全培训
广州致卓电脑软件开发
液体神经网络技术
手机原神如何换服务器
支付安全属于网络安全吗
网络电视服务器出问题怎么诊断
交易系统 数据库
实现医院网络安全目标
国有大型企业网络安全运营建设
互联网维护软件开发
我国网络安全现状分析
猫沃网络技术有限公司
怎么进到腾讯的服务器
sql数据库文件没有权限
5g网络技术的
5e一直服务器分配失败
网络安全手抄报模板数学
鼻烟任务数据库
实现医院网络安全目标
广州环鑫网络技术有限公司
湛江微信软件开发订制
汕头互联网科技公司