android.mk介绍

相对于Android的目前来说以前编译底层都使用Android.mk文件配置ndk,现在都使用Cmake这里我们着重介绍下Android.mk

最最基础的几个变量如下

复制代码
# 定义模块当前路径
LOCAL_PATH := $(call my-dir)  
#清空当前环境变量
include $(CLEAR_VARS) 
# 生成libhell.so
LOCAL_MODULE = libhello  
#编译该模块所需的源码
LOCAL_SRC_FILES := hello.c  \
                                       hello2.c
#  编译动态库: 编译类型修改为 BUILD_SHARED_LIBRARY
#  编译静态库: 编译类型修改为 BUILD_STATIC_LIBRARY
 include $(BUILD_EXECUTABLE)

如果每天加一个c文件则设置下LOCAL_SRC_FILES 容易出现遗漏等问题,所以我们可以如下设置将所有c文件都包括进去

cpp 复制代码
 LOCAL_C_ALL_FILES:= $(call all-c-files-under)  
 LOCAL_SRC_FILES :=  $(LOCAL_C_ALL_FILES)

生成多个文件配置如下

cpp 复制代码
 # 定义模块当前路径
LOCAL_PATH := $(call my-dir)  
#清空当前环境变量
include $(CLEAR_VARS) 
# 生成libhell.so
LOCAL_MODULE = libhello  
LOCAL_C_ALL_FILES:= $(call all-c-files-under)  
LOCAL_SRC_FILES :=  $(LOCAL_C_ALL_FILES) 
#  编译动态库: 编译类型修改为 BUILD_SHARED_LIBRARY
#  编译静态库: 编译类型修改为 BUILD_STATIC_LIBRARY
 include $(BUILD_EXECUTABLE)
 
#清空当前环境变量
include $(CLEAR_VARS) 
# 生成libhell2.so
LOCAL_MODULE = libhello2  
LOCAL_C_ALL_FILES:= $(call all-c-files-under)  
LOCAL_SRC_FILES :=  $(LOCAL_C_ALL_FILES) 
#  编译动态库: 编译类型修改为 BUILD_SHARED_LIBRARY
#  编译静态库: 编译类型修改为 BUILD_STATIC_LIBRARY
 include $(BUILD_EXECUTABLE)

将除了LOCAL_PATH := $(call my-dir) 之外的所有设置再配置一下即可

正常开发经常会遇到使用第三方库的问题我们如何使用第三方库下面是配置

cpp 复制代码
LOCAL_SHARED_LIBRIES += libxxx

LOCAL_LIBRIES += libxxx
相关推荐
用户69371750013849 分钟前
OS级AI Agent:手机操作系统的下一个战场
android·前端·人工智能
私人珍藏库16 分钟前
[Android] 亿连车机版V7.0.1
android·app·软件·车机
用户69371750013841 小时前
315曝光AI搜索问题:GEO技术靠内容投喂操控答案,新型营销操作全揭秘
android·前端·人工智能
进击的cc1 小时前
彻底搞懂 Binder:不止是 IPC,更是 Android 的灵魂
android·面试
段娇娇1 小时前
Android jetpack LiveData (三) 粘性数据(数据倒灌)问题分析及解决方案
android·android jetpack
用户2018792831672 小时前
TabLayout被ViewPager2遮盖部分导致Tab难选中
android
法欧特斯卡雷特2 小时前
Kotlin 2.3.20 现已发布,来看看!
android·前端·后端
闻哥2 小时前
深入理解 MySQL InnoDB Buffer Pool 的 LRU 冷热数据机制
android·java·jvm·spring boot·mysql·adb·面试
ii_best2 小时前
安卓/ios开发辅助软件按键精灵小精灵实现简单的UI多配置管理
android·ui·ios·自动化
码农xo3 小时前
android 设备实时传输相机采集的视频到电脑pc端 通过内网wifi 方案
android·数码相机·音视频