Android基础概念的学习笔记

1 Android原生编程

1.1 基础概念的文档链接

1.2 【Q】:ndk-build命令对于Application.mkAndroid.mk文件的处理顺序是什么样的呀?

Note:

Google的官方文档里面并没有没有十分明确而详细地说明ndk-build对于Application.mkAndroid.mk文件的处理顺序。

(1)关于ndk-build如何处理Android.mkApplication.mk文件的一些关键点

  1. Application.mk :这个文件是可选的,若存在则通常位于项目的jni/目录中。Application.mk文件定义了适用于整个项目的设置,如目标Android平台版本、要构建的CPU架构类型等。如果Application.mk存在于jni/目录下,ndk-build会首先读取它。
  2. Android.mk :这些文件位于项目的各个子目录中,并定义了如何编译这些目录中的源代码。每个Android.mk文件通常负责一个子项目或一个库。
  3. 执行顺序
    • 当在项目根目录中执行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.mkAndroid.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脚本的能力,但本身并不是使用某种编程语言开发的程序。

相关推荐
koo364几秒前
李宏毅机器学习笔记16
人工智能·笔记·机器学习
心疼你的一切4 分钟前
使用Unity引擎开发Rokid主机应用的全面配置交互操作
学习·游戏·unity·c#·游戏引擎·交互
小猪佩奇TONY16 分钟前
C++ 学习(3) ----设计模式
c++·学习·设计模式
Brookty28 分钟前
【算法】二分查找(一)朴素二分
java·学习·算法·leetcode·二分查找
bawangtianzun2 小时前
重链剖分 学习记录
数据结构·c++·学习·算法
Vizio<2 小时前
ERT中正问题和逆问题的传统数学推导
学习·数学建模·机器人·触觉传感器
丰锋ff2 小时前
2007 年真题配套词汇单词笔记(考研真相)
笔记·学习·考研
musenh3 小时前
mysql学习---事务
学习·mysql
musenh3 小时前
mysql学习--DCL
学习·mysql·adb
聪明的笨猪猪3 小时前
Java “并发容器框架(Fork/Join)”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试