Android.mk多级目录源码的编写

android ndk 之 多个模块 Android.mk 编写 最近在移植一个linux下的c库到android,学习编写Android.mk文件,特地花了点时间学习。   在网上搜了很多,最后发现还是看ndk的文档最直接,也最全面,下面的总结主要是根据ndk提供的文档编写的。   1、单一的Android.mk文件:   LOCAL_PATH := $(call my-dir)   include $(CLEAR_VARS)   LOCAL_MOD 阅读详情
参考的是MTK Android4.4 源码
codebase\external\junit

首先定义一个包含子目录文件的mk文件,可以命名为common.mk,这个文件主要是把子目录的文件索引出来,添加到主要的Android.mk里
core-junit-files := \
src/junit/framework/Assert.java \
src/junit/framework/AssertionFailedError.java \
src/junit/framework/ComparisonCompactor.java \
src/junit/framework/ComparisonFailure.java \
src/junit/framework/Protectable.java \
src/junit/framework/Test.java \
src/junit/framework/TestCase.java \
src/junit/framework/TestFailure.java \
src/junit/framework/TestListener.java \
src/junit/framework/TestResult.java \
src/junit/framework/TestSuite.java
在这里把需要编译的文件加入了core-junit-files这个变量里,但是如果使用这个common.mk文件呢,又如果引用core-junit-files变量呢。只要把core-junit-files变量里面的源文件加入到主的Android.mk的LOCAL_SRC_FILES这个变量里即可

Android.mk调用common.mk
include $(LOCAL_PATH)/Common.mk
一句话即可
这话话之后表明common.mk已经被运行完毕,里面的变量已经生成,Andorid.mk已经可以调用common.mk里的变量了
LOCAL_SRC_FILES += $(core-junit-files)
又是一句话
这样,就可以包含子目录里的源文件啦
shell脚本:拷贝android源码下所有的Android.mk到特定目录 最近由于想研究下android的编译系统,需要查看android源码中build目录下的脚本,这些脚本和各个模块中的Android.mk可能会产生关联,在构建source insight工程的时候,我希望把所有build目录的的源码和所有的Android.mk放到一起,构建一个工程,方便研究。那么怎么提取出所有的Android.mk文件呢?这设计到shell编程了。 整个实现过程非常简单,只有几 阅读详情

相关推荐

Android.mk 项目迁移为 Gradle 项目

本文为博主原创文章,如需转载,请在醒目位置注明出处 前言 最近在研究 Google 的 Camera2 项目,因为该项目属于 AOSP,自然也是用 Android.mk 编译的。因源码阅读不是很方便,便想着迁移至 Android Studio 中,使用 Gradle 来编译。 1. 源码下载 app framework 源码分为两部分,一部分在 pl...

Yuloran的专栏 3968

Android.mk中依赖子目录中的Android.mk include $(call all-subdir-makefiles)

Android.mk中依赖子目录中的Android.mk include $(call all-subdir-makefiles)

liuxd3000的专栏 2万+

RK3568平台开发系列讲解(安卓适配篇)Android 源码的 device 目录

📢本篇将介绍 Android 源码的 device 目录。

内核笔记 3796

多目录的Android.mk编写--遍历目录下所有C文件

在Android中编译C库时,我们需要在Android.mk文件中,为LOCAL_SRC_FILES变量指定要编译的源代码,以及为LOCAL_C_INCLUDES变量指定头文件。当项目文件越来越多时,这种手动修改很浪费时间。这时我们就需要一个自动遍历项目中所有相关文件的方法了。我从网上看了很多文章,都是使用linux下的命令脚本来遍历目录查找文件,在windows下就不好用了。费了很大功夫,才发现这篇好文章,特此转载,希望能让需要的同学节省一点寻找的时间。

lintax的专栏 7992

四、安卓源码分析之Android.mk

一、引言

文艺小少年的博客 806

android编译系统makefile(Android.mk)写法

android编译系统makefile(Android.mk)写法 Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。由于一般情况下 Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式: LOCAL_PATH:=$(call my-dir) 上面的语句的意思是将LOCAL_PATH变量定义成本文件所在目录路径。 Android.mk中可以定义多个编译模块,每个编译模块都是以include $(CLEAR_VARS)开始 以include $(BUILD_XXX)结束。

Android.mk语法规范

Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的头文件目录、需要编译的.c/.cpp文件和.a静态库文件等。要掌握jni,就必须熟练掌握Android.mk的语法规范。 一、Android.mk文件的用途 一个android子项目中会存在一个或多个Android.mk文件 1、单一的Android.mk文件 直接参考NDK的sampl

咕唧咕唧shubo.lk的专栏 6466

Java开发者必看:如何快速对接七大主流快递API(附完整代码示例)

本文为Java开发者提供了快速对接顺丰、京东、DHL等七大主流快递API的实战指南。文章深入剖析了不同API的认证、通信协议与参数差异,并提供了高可用的HTTP客户端配置、通用签名工具、SOAP请求处理以及可扩展的领域模型与适配层设计等完整代码示例,帮助开发者构建统一、健壮的物流集成框架,显著提升开发效率。

tech5的博客 727

多层目录的Android.mk的编写

多层目录的Android.mk的编写 Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。makefile文件是许多编译器--包括Windows NT下的编译器--维护编译信息的常用方法,只是在集成开...

IT先森 5309

一文搞懂 RC Correlation Scale Factor 的生成与应用

pre-route 用的是统计估算模型,post-route 用的是详细布线提取,signoff 用的是第三方 QRC 或 StarRC——三个工具,三套参数体系,结果自然天差地别。不同 RC corner(rc_worst/rc_best/rc_typical)对应不同的工艺角和温度环境,每个 corner 的 R/C 偏差比例不同,必须分别生成和应用各自的 scale factor。别被名字骗了,这个工具专门干一件事——统计拟合两组 SPEF 之间的偏差,自动推荐最优 scaling factor。

weixin_47770727的博客 552

stm32驱动NRF24L01_原理+代码解析

NRF24L01是NORDIC公司生产的一款无线通信通信芯片,采用FSK 调制,集成NORDIC自家的Enhanced Short Burst协议。可以实现点对点或是1对6的无线通信。无线通信速度最高可达到2Mbps。①2.4G全球开放的ISM频段,免许可证使用。②最高工作速率2Mbps,高校的GFSK调制,抗干扰能力强。③126个可选的频道,满足多点通信和调频通信的需要。④内置CRC检错和点对多点的通信地址控制。⑤可设置自动应答,确保数据可靠传输。//NRF24L01寄存器操作命令。

zyc18700766982的博客 2万+

android.mk遍历子目录,android 保存文件的各种目录列表

一般的,我们可以通过context和Environment来获取要保存文件的目录($rootDir)+- /data -> Environment.getDataDirectory()| || | ($appDataDir)| +- data/com.srain.cube.sample| || | ($filesDir...

weixin_31614747的博客 868

workbench拓扑优化教程_拓扑优化实例-轮毂的优化

拓扑优化实例-轮毂的优化ANSYS Workbench的新版本集成了topology optimization模块,为用户的拓扑优化提供的很好的应用。通过拓扑优化topology optimization模块的使用可以对拓扑有较好的理解,该模块拓扑优化可以简单概括为一句话:如何在合适的位置去除确定的材料使用量,而相应的刚度变化影响最小。本例以汽车轮毂为例,来确定轮毂的辐条形状。1.建立模型DM中可...

weixin_39581739的博客 3043

编写Android.mk把Android studio项目编译到AOSP源码中

前言: 在工作,我们利用Android studio开发apk是非常方便的,当我们要把工程代码放在android 源码中编译的时候,需要我们自己编写Andorid.mk 文件。以下内容是对Android.mk文件中的代码 解释说明。 Android.mk 编写: #每个Android.mk文件必须以定义LOCAL_PATH为开始。它用于在开发tree中查找源文件 LOCAL_PATH := $(call my-dir) #CLEAR_VARS 变量由Buil.......

u012514113的专栏 7139

Pipeline更多理解

Pipe 类型用途VIGVideo Image Generator:用于图层显示,支持 scaling、rotationRGB简单图层显示,较低优先级DMA主要用于 writeback / WFD / composition output,即从 framebuffer 输出到外部设备(或 memory)Cursor小图层,用于显示指针等很可能是:分别用于主屏、仪表、虚拟显示的输出路径或者用于不同的 display 去做 GPU_TARGET / writeback 的拷贝你看到的意思。

Damon_X的博客 1053

【毕设课设】基于YOLO v3与LSTM的水位智能识别系统(附完整源码+数据集)

本文详细介绍了基于YOLO v3与LSTM的水位智能识别系统的完整实现方案。该系统通过YOLO v3精准定位水位尺数字,结合LSTM-OCR进行序列识别,并融合霍夫变换检测刻度线,实现高精度水位自动读取。项目提供了从环境搭建、模型训练到集成部署的全流程指南,并附有完整源码和数据集,是理想的毕设课设实战项目。

php55的博客 609

在源码环境中编译Android studio项目时的mk脚本编写

1、Main项目是主工程,下面有名为app的项目       CommonLib是库工程,下面有名为lib的项目       Main项目会用到CommonLib库。 2、源码环境中两个项目是在同一个目录下,平级的。 3、参考了android源码中Contacts包含库ContactsCommon时mk的编写 4、Main的Android.mk LOCAL_PA

风的专栏 2207

cs188Inference in Bayes Nets(贝叶斯网络的推理)

cs188Inference in Bayes Nets贝叶斯网络的推理Question1(3 points):Bayes Net StructureQuestion2(1 points):Bayes Net ProbabilitiesQuestion 3(5 points):Join FactorsQuestion4(4 points):EliminateQuestion5(4 points):NormalizeQuestion 6(4 points):Variable EliminationQuesti

weixin_46582817的博客 1673

android学习总结四:如何编写自己的Android.mk

这一期呢主要讲的是如何编写自己的Android.mk 首先呢,我们来看一下Android.mk的作用,如果我们想要在Android的环境下编译生成自己想要的文件,我们可以生成二进制的可执行文件,可以生成动态库、静态库,这是对于C、C++层来说,那么对于我们得java层来说,Android.mk编译生成jar包或者Android.apk 这些Android.mk的编写都是我们基于Andr

寒冰 3426

simulink的电动汽车制动系统热管理仿真

本文系统研究了电动汽车制动系统热管理仿真技术。通过建立机电液多物理场耦合模型,分析了不同工况下的动态热平衡特性。提出基于MPC的动态调节和NSGA-II多目标优化算法,使电池温度波动降低60%。创新性采用石墨烯相变材料与微通道液冷复合技术,冷却系统能耗减少40%。研究构建了完整的工程验证平台,涵盖200kW电制动测试台和高精度热成像系统。展望指出,未来将结合Transformer预测和强化学习算法,进一步优化热管理策略。该研究为电动汽车制动系统热管理提供了从理论建模到工程实施的完整解决方案。

xiaoheshang_123的博客 121

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Android 源码环境下用Android.mk 导入aar

现在新的源码中很多app 已经切换到了Android.bp,不过目前Android.mk 还是兼容的。本文介绍在Android.mk 中导入aar 包,也就是apk 引用aar 的内容

十橙 3967

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Android 编译过程介绍,Android.mk 和 Android.bp 分析, 在源码中编译 AndroidStudio 构建的 App

Android编译过程介绍,Android.mk 和 Android.bp 的分析。在 Android 源码中编译 AndroidStudio 创建的 App 工程。

Guang_Mang 的博客 8485

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android.mk用法详解

一、Android.mk介绍 Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的头文件目录、需要编译的.c/.cpp文件和.a静态库文件等。要掌握jni,就必须熟练掌握Android.mk的语法规范。 它的基本格式如下: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) ................ LOCAL_xxx := xxx LOCAL_MODULE

fengruoying93的专栏 1万+

Android.mk文件编写

Android.mk 是Android 提供的一种makefile 文件,注意用来编译生成 exe(二进制可执行文件)、so(动态库文件)、a(静态库文件)、jar(jar包) 和 apk 等文件。Android.mk和一个或多个.c的源文件放在同一目录下做为一个模块,通过mm或者mmm命令来编译该模块,生成自己所需的文件,如:二进制的可执行文件、动态库、静态库、jar包和apk。可参考原生的Android.mk文件进行修改来编写适合自己的Android.mk文件,故需要掌握Android.mk的基本语法。

刘公子N的博客 2775

Android Framework开发之新加一个app源码到packages/apps编译Android.mk配置

hi,粉丝朋友们大家好! 近来有朋友反馈在看我的android framework实战开发合集课程时候 (https://download.csdn.net/combo/detail/2202) 需要购买可以参考直接找千里马最优惠:https://blog.csdn.net/learnframework/article/details/124086882 反馈一个问题,那就是课程确实讲解了怎么预制apk的,但是否可以考虑补充讲解一下如果想增加一个app但是不是apk预制,而是源码增加的方式,即相当于我想把工

learnframework的博客 3956

安卓编译android.mk,详解安卓系统中的Android.mk文件

概述 Android.mk文件用来向编译系统描述如何编译你的源代码。更确切地说,该文件其实就是一个小型的Makefile。由于该文件会被NDK的编译工具解析多次,因此应该尽量减少源码中声明变量,因为这些变量可能会被多次定义从而影响到后面的解析。这个文件的语法允许把源代码组织成模块,每个模块属于下列类型之一:APK程序:一般的Android程序,编译打包生成apk文件。JAVA库:java类库...

weixin_34862561的博客 1443
上一篇: Android Jni 多线程 蓝牙串口收发 实例 二
下一篇: 编写Android.mk中的LOCAL_SRC_FILES的终极技巧
shell812
博客等级 码龄18年 202粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值