首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >复杂项目编写Android.mk

复杂项目编写Android.mk

作者头像
杜金房
发布2020-12-21 15:59:57
发布2020-12-21 15:59:57
1.2K0
举报

编写Android.mk文件

SDL2 Android.mk

以下是SDL2源码中Android.mk文件:

简单讲解

以上脚本配置了SDL static librarySDL static librarySDL main static library三个库的编译规则。

每个模块中,使用LOCAL_MODULE配置模块名称,下文还会有提及;LOCAL_C_INCLUDES等变量的配置编译设置,见名知意,不一一解释了。

每个模块的编译脚本,第一行调用include $(CLEAR_VARS),清除之前所有变量值。

每个模块的配置脚本,最后一行调用include (BUILD_SHARED_LIBRARY),编译成动态库,或include (BUILD_STATIC_LIBRARY),编译成静态库。

重点讲解LOCAL_SRC_FILES

LOCAL_SRC_FILES变量是最难写、也最最重要的配置,甚至可以说,写Android.mk就是在写LOCAL_SRC_FILES也不为过。为了优雅的配置好它,这里使用了2个函数。

wildcard函数:批量获取所有文件,仅有一个正则语法参数。

subst函数:字符串替换。参数很多,3个或以上,将字符串(参数3、4……N)中的子串(参数1)替换为制定字符串(参数2)。

在这里,使用wildcard+正则批量配置源文件,使用subst修改源文件路径格式——绝对路径改为相对路径。(笔者不明白,为什么要转成相对路径,或许只是一个约定习惯吧)

cmd调用Andr

demo

这还是SDL2源码里的脚本,如下:

讲解

重点就在最后一行,之前的全是配置各种路径。(for arg in $*遍历参数的方法,可以学习下)

ndk-build重要参数:

- APP_BUILD_SCRIPT:指定脚本。(上文中的Android.mk

- APP_ABI:指定CPU架构。

- APP_PLATFORM:指定安卓平台版本。

-APP_MODULES:指明需编译的模块,这里对应Android.mk中的LOCAL_MODULE

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeSWITCH中文社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SDL2 Android.mk
  • 简单讲解
  • 重点讲解LOCAL_SRC_FILES
  • demo
  • 讲解
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档