安卓编译android.mk,详解安卓系统中的Android.mk文件-程序员宅基地

技术标签: 安卓编译android.mk  

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

APK程序:一般的Android程序,编译打包生成apk文件。

JAVA库:java类库,编译打包生成jar包文件。

C\C++应用程序:可执行的C/C++应用程序。

C\C++静态库:编译生产C/C++静态库,并打包成.a文件。

C\C++共享库:编译生成共享库,并打包成.so文件,有且只有共享库才能被安装/复制到APK包中。

举例    这里参考了网上一个通用的例子,编译简单的“Hello World”,来说明一下Android.mk编写。例如下面的文件:

1. sources/test/hello.c

2. sources/test/Android.mk

其中“hello.c”是一个JNI共享库,实现返回“hello world”字符串的原生方法。因此,Android.mk文件内容如下:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := hello

LOCAL_SRC_FILES := hello.c

include $(BUILD_SHARED_LIBRARY

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34862561/article/details/117540809

智能推荐

华为云-容器引擎CCE-基本概念-程序员宅基地

文章浏览阅读1.4w次。云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群,支持运行Docker容器。借助云容器引擎,您可以在华为云上轻松部署、管理和扩展容器化应用程序。云容器引擎提供Kubernetes原生API,支持使用kubectl,且提供图形化控制台,让您能够拥有完整的端到端使用体验,使用云容器引擎前,建议您先了解相关的基本概念。集群(Cluster)集群指容器运行所需要的云资源组合,关联了若干云服务器节点、负载均衡等云资源。您可以理解为集群_cce

ZYNQ的定时器们(三)TTC定时器到底能干啥?_zynq xttcps_setinterval-程序员宅基地

文章浏览阅读3.5k次。ZYNQ的定时器们(三)TTC定时器到底能干啥?本文转载自:https://zhuanlan.zhihu.com/p/31643799?from_voters_page=trueZYNQPS部分的最后一种定时器TTC在UG585中的描述只有6页(P244-249),SDK中的API函数有15个,宏定义太多了,就没数了。那么TTC能干啥?忙完这阵子后终于可以来跟各位说道说道了。TTC定时器直译过来就是三路定时器,而ZYNQ中的PS有两个TTC,每一个定时器有三路,一共是6路。从上面的框图可以看出TTC每一_zynq xttcps_setinterval

MATLAB代码:基于二阶锥规划的主动配电网动态重构研究-程序员宅基地

文章浏览阅读42次。MATLAB代码:基于二阶锥规划的主动配电网动态重构研究参考文档:《考虑动态网络重构的主动配电网优化运行策略》参考了重构部分公式《主动配电网最优潮流研究及其应用实例》参考了二阶锥松弛部分公式仿真平台:MATLAB YALMIP+CPLEX优势:代码注释详实,适合参考学习,全程有讲解!,全程有讲解!程序非常精品!主要内容:代码主要主要研究的配电网优化,具体为配电网中的动态重构问题,代码分为两个部分,第一部分1)主动配电网单时段重构问题,重构结果以0-1变量表示,结果清晰明了;2)主动配电网多时段动态

无涯教程-PHP - xml_parse_into_struct函数-程序员宅基地

文章浏览阅读378次,点赞4次,收藏6次。无涯教程网提供xml_parse_into_struct - 语法 int xml_parse_into_struct ( resource $parser , stri...PHP 中的 xml_parse_into_struct函数 - 无涯教程网。它用于将任何格式化的XML解析为数组结构。它用于指定要使用的XML解析器。它用于指定XML数据的目标数组。它用于指定要解析的XML数据。它用于指定索引数据的目标数组。成功时返回1,失败时返回0。

找不到wifi,提示适配器的驱动程序可能出现问题_xioami 802.11n usb wireless adapter 驱动错误-程序员宅基地

文章浏览阅读3.6k次,点赞6次,收藏12次。找不到wifi,提示适配器的驱动程序可能出现问题_xioami 802.11n usb wireless adapter 驱动错误

【人工智能简史】第三章 第一个AI研究的黄金时代-程序员宅基地

文章浏览阅读1.4w次。在 1950、1960 年代,早期 AI 研究者们开发了一系列实验项目,如西蒙和纽埃尔的逻辑理论机(Logic Theorist)、麦卡锡的 Lisp 语言和明斯基的微世界(Micro World)等。总的来说,从 20 世纪 40 年代末到 50 年代的 AI 理论形成和发展过程,为后续的 AI 研究和应用奠定了坚实的基础。在本章中,我们将分析第一个 AI 研究的黄金时代,探讨其重要突破和成就,以及此阶段对 AI 发展历程产生的长远影响。这些算法穿插在人工智能的各个领域,推动着技术的创新与突破。

随便推点

用SQL建用户和赋权限_sql赋权-程序员宅基地

文章浏览阅读1.8k次。http://blog.csdn.net/hui_0924/article/details/5877981在SQL Server中有三种特殊的用户:系统管理员、用户数据库所有者(建立相应数据库的数据库用户)DBO、一般用户。系统管理员对整个系统有操作权;用户数据库所有者对他所建立的数据库具有全部操作权利;一般用户对给定的数据库只有被授权的操作权限。 数据库用户一般可分为用户组,_sql赋权

torch.where用法介绍-程序员宅基地

文章浏览阅读504次,点赞6次,收藏10次。torch.where用法介绍_torch.where

IBM存储产品常见问题汇总_ibm服务器更护热备盘-程序员宅基地

文章浏览阅读7.7k次。IBM存储产品常见问题汇总 一、DS3000DS3000微码v06.70.24.00升级指南主要介绍了DS3000相关部件的微码升级步骤,以及相关注意事项: 主要内容包括: 一.相关链接: 二.微码v06.70.24.00新特性: 三.限制及注意事项: 四.升级微码步骤概述: 升级存储系统 升级ESM 模块微码_ibm服务器更护热备盘

sam机架和kx连线图_创新声卡KX 3552驱动连线搭载SAM机架-程序员宅基地

文章浏览阅读3.5k次。一般情况下我们的创新声卡要使用宿主机架都选择安装KX 3552驱动,而这个KX 3552驱动对Win 10系统兼容性不是很好,这主要是在搭载宿主机架加载KX 3552驱动的ASIO上,部分Win 10系统会出信号错乱,还有会出现(无法初始化)的问题,这个需要宿主机架设置(Win 7兼容性),问题还存在的,无解,只能换Win 7系统。还有需要注意,在安装KX 3552驱动的时候,请把所以的杀毒软件和..._创新声卡kx 3552驱动连线搭载sam机架

Springboot毕设项目核酸检测采集管理系统jfxxo(java+VUE+Mybatis+Maven+Mysql)_jfx后台管理系统-程序员宅基地

文章浏览阅读372次。Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。若包含,则为maven项目,否则为非maven项目。Springboot毕设项目核酸检测采集管理系统jfxxo(java+VUE+Mybatis+Maven+Mysql)Springboot + mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。其他版本理论上也可以。_jfx后台管理系统

Robotics System Toolbox学习笔记(一):简单建立一个机器人rigidBody、rigidBodyJoint用法_简述如何运用robotics toolbox建立机器人模型-程序员宅基地

文章浏览阅读4.8k次,点赞8次,收藏68次。文章目录软件介绍代码功能介绍rigidBodyrigidBody的性质rigidBody的函数rigidBodyJointrigidBodyJoint的性质rigidBodyJoint的函数例子参考软件介绍Robotics System Toolbox提供了用于设计,模拟和测试操纵器,移动机器人和类人机器人的工具和算法。对于机械手和类人机器人,该工具箱包括用于碰撞检查,轨迹生成,正向和反向..._简述如何运用robotics toolbox建立机器人模型

推荐文章

热门文章

相关标签