Android基础概念的学习笔记
2023-12-14 11:14:36
1 Android原生编程
1.1 基础概念的文档链接
1.2 【Q】:ndk-build
命令对于Application.mk
和Android.mk
文件的处理顺序是什么样的呀?
Note:
Google的官方文档里面并没有没有十分明确而详细地说明ndk-build
对于Application.mk
和Android.mk
文件的处理顺序。
(1)关于ndk-build
如何处理Android.mk
和Application.mk
文件的一些关键点
- Application.mk:这个文件是可选的,若存在则通常位于项目的
jni/
目录中。Application.mk
文件定义了适用于整个项目的设置,如目标Android平台版本、要构建的CPU架构类型等。如果Application.mk
存在于jni/
目录下,ndk-build
会首先读取它。 - Android.mk:这些文件位于项目的各个子目录中,并定义了如何编译这些目录中的源代码。每个
Android.mk
文件通常负责一个子项目或一个库。 - 执行顺序:
- 当在项目根目录中执行
ndk-build
时,它首先查找jni/
目录中的Application.mk
(如果存在)。 - 然后,它会递归地搜索
jni/
目录及其子目录中的所有Android.mk
文件,并根据这些文件中定义的依赖关系来确定编译顺序。 - 每个
Android.mk
文件通常会被单独处理,以构建该文件定义的模块。 - 如果
Android.mk
文件中定义了模块间的依赖关系,ndk-build
将按照依赖顺序进行编译。
- 当在项目根目录中执行
(2)具体的处理顺序可以通过查看ndk-build的源代码来了解
Phind:
虽然Google的官方文档没有明确说明这个处理顺序,不过,这个处理顺序是由ndk-build
的源代码决定的,可以查看其源代码来了解。你可以在以下链接找到ndk-build
的源代码:
[build/core - platform/ndk - Git at Google]
在这个链接中,你可以找到ndk-build
的源代码,包括Application.mk
和Android.mk
文件的处理顺序。
1.3 ndk-build
:本质上是由make调用的一系列Makefile脚本
Q:“ndk-build工具实际上是.mk脚本”,是吗?
Claude-instant-100k:
是的,你的理解是正确的。
可以这么总结ndk-build
:
- ndk-build本身是一系列
.mk
脚本文件。- 这些
.mk
脚本文件使用Make语法定义了 Android NDK 项目构建的规则和依赖。- 在执行
ndk-build
命令时,实际上会在底层调用 gnu-make 工具。- Gnu-make 会解析和执行特定的
.mk
脚本,从而实现自动化构建 Android NDK 项目。- Gnu-make 具体在Windows上使用的是
make.exe
。- 所以
ndk-build
本质上利用了Make语法的优势,实现了一个自动构建 Android NDK C/C++ 项目的脚本系统。- 因此并不是说
ndk-build
自己是用某种编程语言编写的,而是采用了Make这个DSL(领域特定语言)来进行自动构建流程。总之,你说“
ndk-build
实际上是.mk脚本”,这个理解是正确的。它利用了Make脚本的能力,但本身并不是使用某种编程语言开发的程序。
文章来源:https://blog.csdn.net/songyuc/article/details/134985235
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!