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脚本的能力,但本身并不是使用某种编程语言开发的程序。

相关推荐
ocean'5 分钟前
渗透笔记总结
笔记
ljt272496066115 分钟前
Flutter笔记--Isolate
笔记·flutter
[H*]18 分钟前
鸿蒙跨端Flutter学习:InheritedWidget嵌套使用
学习·flutter
weixin_4407305020 分钟前
02测试基础知识笔记
笔记
2501_9418649620 分钟前
科学记忆法提升学习效率
学习
就叫飞六吧22 分钟前
Jenkins 流水线全流程实战笔记
笔记·servlet·jenkins
好奇龙猫25 分钟前
【日语学习-日语知识点小记-日本語体系構造-JLPT-N2前期阶段-第一阶段(4):单词语法】
学习
凛_Lin~~27 分钟前
安卓网络框架——OkHttp源码解析(基于3.14.x)
android·网络·okhttp
别了,李亚普诺夫32 分钟前
运算放大器的参数、选型与应用-学习笔记
笔记·学习
知识分享小能手40 分钟前
Oracle 19c入门学习教程,从入门到精通,PL/SQL 编程详解:语法、使用方法与综合案例(6)
sql·学习·oracle