Android中怎么使用Android.mk模板
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍了Android中怎么使用Android.mk模板的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android中怎么使用Android.mk模板文章都会有
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
服务器必备提示指令
关系数据库xml查询
腾讯云服务器总负责人是谁
怎么把游戏服务器时间改了
信息软件开发包括哪些
网络安全先进集体和先进个人
智者科技软件开发
文件上传时添加到数据库
非互联网的软件开发
台湾建服务器
数据库大字段大小
端口映射服务器安全
并行服务器专用器件
旌德进口软件开发服务销售厂
软件开发 kpi
逍客屏幕服务器错误
手机怎么做电子软件开发
数据库对象资源管理怎么调
学软件测试好还是软件开发好
网络安全技术成熟度曲线
上海国动网络技术有限公司
联通招聘网络技术面试问题答案
网络技术和教学变革
上饶市鑫恒信网络技术有限公司
200元组装一台服务器
宁夏网络安全学习
我的世界灵域服务器
调研我国通信网络技术产业
枣庄平台软件开发推荐
网络安全之网络和通信安全