返回顶部
首页 > 资讯 > 移动开发 >Android.mk 文件使用解析
  • 653
分享到

Android.mk 文件使用解析

android 2023-09-18 16:09:57 653人浏览 泡泡鱼
摘要

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、Android.mk 简介二、Android.mk 的基本格式三、Android.mk 深入学习一四、 Android.mk

b8d1b652e26a73b04611727d5c977785.gif

和你一起终身学习,这里是程序员Android

经典好文推荐,通过阅读本文,您将收获以下知识点:

一、Android.mk 简介
二、Android.mk 的基本格式
三、Android.mk 深入学习
四、 Android.mk 深入学习二
五、 Android.mk 深入学习三
六、 Android.mk 判断语句
七、参考文献

一 、Android.mk 简介

Android.mk 是Android 提供的一种makefile 文件,注意用来编译生成(exe,so,a,jar,apk)等文件。

50306d0d1180f94a697446beb27371b1.jpeg

Android.mk生成文件

二、Android.mk 的基本格式

Android.mk 基本格式如下

# 定义模块当前路径LOCAL_PATH := $(call my-dir)  #清空当前环境变量include $(CLEAR_VARS)  ................  # 引入头文件等LOCAL_xxx       := xxx#编译生成的文件名  LOCAL_MODULE    := hello  #编译该模块所需的源码LOCAL_SRC_FILES := hello.c  #引入jar包等LOCAL_xxx       := xxx  ................  #编译生成文件的类型 #LOCAL_MODULE_CLASS  、JAVA_LIBRARIES#APPS 、 SHARED_LIBRARIES#EXECUTABLES 、 ETCinclude $(BUILD_EXECUTABLE)

三、Android.mk 深入学习一

使用Android.mk 可以编译多个目标文件:

f07b6158cad1b741c112aeedb453a0d5.jpeg

Android.mk 编译多个目标文件

编译动态库

C/C++ 文件编译生成静态库.so文件参考如下

LOCAL_PATH := $(call my-dir)    include $(CLEAR_VARS)    # 生成libhell.soLOCAL_MODULE = libhello    LOCAL_CFLAGS = $(L_CFLAGS)    LOCAL_SRC_FILES = hello.c  LOCAL_C_INCLUDES = $(INCLUDES) LOCAL_SHARED_LIBRARIES := libcutils    LOCAL_COPY_HEADERS_TO := libhello   LOCAL_COPY_HEADERS := hello.h   #编译动态库 BUILD_SHARED_LIBRARYinclude $(BUILD_SHARED_LIBRARY)

编译静态库

C/c++ 文件编译生成静态库.a文件参考如下

#编译静态库    LOCAL_PATH := $(call my-dir)    include $(CLEAR_VARS)    # 生成libhell.aLOCAL_MODULE = libhelloLOCAL_CFLAGS = $(L_CFLAGS)    LOCAL_SRC_FILES = hello.c    LOCAL_C_INCLUDES = $(INCLUDES)    LOCAL_SHARED_LIBRARIES := libcutils    LOCAL_COPY_HEADERS_TO := libhello   LOCAL_COPY_HEADERS := hellos.h    # 编译 静态库    BUILD_STATIC_LIBRARYinclude $(BUILD_STATIC_LIBRARY)

四、 Android.mk 深入学习二

85fbd0935444b4440eb555bf953a8ba4.jpeg

Android.mk 引用资源

引用静态库
LOCAL_STATIC_LIBRARIES += libxxxxx

LOCAL_STATIC_LIBRARIES := \    ...    libxxx2 \    libxxx \

引用动态库
LOCAL_SHARED_LIBRARIES += libxxxxx

LOCAL_SHARED_LIBRARIES := liblog libnativehelper libGLESv2

引用第三方库文件
LOCAL_LDFLAGS:=-L/PATH -Lxxx

LOCAL_LDFLAGS := $(LOCAL_PATH)/lib/libtest.a

引用第三方头文件
LOCAL_C_INCLUDES :=path

eg:

LOCAL_C_INCLUDES = $(INCLUDES)

五、 Android.mk 深入学习三

6caac2bad2bda368d3bb8b9ca360a3fa.jpeg

Android.mk 深入学习三

编译apk

LOCAL_PATH := $(call my-dir)  include $(CLEAR_VARS)  LOCAL_SRC_FILES := $(call all-subdir-java-files)  # 生成hello apk  LOCAL_PACKAGE_NAME := hello  include $(BUILD_PACKAGE)

编译jar包

LOCAL_PATH := $(call my-dir)  include $(CLEAR_VARS)  LOCAL_SRC_FILES := $(call all-subdir-java-files)  # 生成 hello  LOCAL_MODULE := hello  # 编译生成静态jar包  include $(BUILD_STATIC_JAVA_LIBRARY)  #编译生成共享jar  include $(BUILD_JAVA_LIBRARY)
  • 静态jar包:

include $(BUILD_STATIC_JAVA_LIBRARY)
使用.class文件打包而成的JAR文件,可以在任何java虚拟机运行

  • 动态jar包:

include $(BUILD_JAVA_LIBRARY)
在静态jar包基础之上使用.dex打包而成的jar文件,.dex是android系统使用的文件格式。

APK 依赖jar

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)# 静态jar包LOCAL_STATIC_JAVA_LIBRARIES := static-library#动态jar包LOCAL_JAVA_LIBRARIES := share-libraryLOCAL_SRC_FILES := $(call all-subdir-java-files)LOCAL_PACKAGE_NAME := helloinclude $(BUILD_PACKAGE)

预编译jar包

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)#指定编译生成的文件类型LOCAL_MODULE_CLASS := JAVA_LIBRARIESLOCAL_MODULE := helloLOCAL_SRC_FILES :=  $(call all-subdir-java-files)# 预编译include $(BUILD_PREBUILT)

预编译文件类型如下:

  • LOCAL_MODULE_CLASS:
    编译文件类型

  • JAVA_LIBRARIES:
    dex归档文件

  • APPS:
    APK文件

  • SHARED_LIBRARIES:
    动态库文件

  • EXECUTABLES:
    二进制文件

  • ETC:
    其他文件格式

六、 Android.mk 判断语句

Android.mk 中的判断语句

ifeq($(VALUE), x)   #ifneq  do_yeselse  do_noendif

ifeq/ifneq:根据判断条件执行相关编译

参考文献:

【腾讯文档】Android Framework 知识库
https://docs.qq.com/doc/DSXBmSG9VbEROUXF5

友情推荐:

Android 开发干货集锦

至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

5befe055ae421216736e8c7f9e838f6e.jpeg

点击阅读原文,为大佬点赞!

来源地址:https://blog.csdn.net/wjky2014/article/details/131693042

--结束END--

本文标题: Android.mk 文件使用解析

本文链接: https://lsjlt.com/news/411901.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android.mk 文件使用解析
    和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、Android.mk 简介二、Android.mk 的基本格式三、Android.mk 深入学习一四、 Android.mk ...
    99+
    2023-09-18
    android
  • Android.mk文件添加调试打印信息
          Android.mk文件添加调试打印信息 前言    你是否有过这么一个需求,就是Android的编译环境是由无数个Andro...
    99+
    2022-06-06
    调试 Android
  • QT .pro文件使用解析
    目录1.pro文件的作用2.一个简单的示例3.指定链接的三方库4.编译为库5.指定debug,release,win32平台还是别的平台6.判断编译环境是x86架构还是arm架构7....
    99+
    2024-04-02
  • vue文件使用iconfont解析
    目录vue使用iconfont项目中正确使用iconfontvue使用iconfont 1、导入字体文件到assets中 2、main.js 导入 import '@/assets...
    99+
    2024-04-02
  • Jprofile解析dump文件使用详解
    1 Jprofile简介 官网 下载对应的系统版本即可 性能查看工具JProfiler,可用于查看java执行效率,查看线程状态,查看内存占用与内存对象,还可以分析dump日志. 2 功能简介 选择attach to a...
    99+
    2015-06-05
    Jprofile解析dump文件使用详解
  • 详解android使用SAX解析XML文件
    解析XML的方式有很多种,大家比较熟悉的可能就是DOM解析。 DOM(文件对象模型)解析:解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以根据DOM接口来操作这...
    99+
    2022-06-06
    XML sax解析xml xml文件 sax Android
  • 怎么使用dom4j解析xml文件
    怎么使用dom4j解析xml文件?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。DOM4J解析特征:JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功...
    99+
    2023-05-31
    dom4j xml
  • vue文件怎么使用iconfont解析
    这篇文章主要介绍“vue文件怎么使用iconfont解析”,在日常操作中,相信很多人在vue文件怎么使用iconfont解析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue文件怎么使用iconfont解析...
    99+
    2023-06-30
  • 使用 Python 解析配置文件格式
    第一步是选择配置文件的格式:INI、JSON、YAML 或 TOML。 有时,程序需要足够的参数,将它们全部作为命令行参数或环境变量既不让人愉快也不可行。 在这些情况下,你将需要使用配置文件。 有几种流行的配置文件格...
    99+
    2022-06-02
    Python 解析配置文件 Python 配置文件
  • C#使用HtmlAgilityPack组件解析html文档
    一、HtmlAgilityPack介绍 参考: GitHub:https://github.com/zzzprojects/html-agility-pack/releases 官网...
    99+
    2024-04-02
  • Android开发之XML文件解析的使用
      前言    本文主要介绍在Android中怎样来解析XML文件。主要采用的是SAX机制,SAX全称为Simple API for XML,它既是一种接口,也是一个...
    99+
    2022-06-06
    android开发 xml文件 XML Android
  • Android使用Pull解析器解析xml文件的实现代码
    2个类:1个实体类Person.java,1个继承Activity的类   1.Person.java 代码如下:package com.mrzhu.work_1_...
    99+
    2022-06-06
    xml文件 解析xml XML Android
  • Android中使用sax解析xml文件的方法
    SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备。 SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺...
    99+
    2022-06-06
    xml文件 sax XML 方法 sax解析xml Android
  • 【DBC文件解析】
    目录结构如下 1、基础介绍 2、DBC文件 2.0、先来一篇全貌 2.1、开头是Version 和 new_symbols两个Tag。 2.2、波特率定义 2.3、网络节点的定义 2.4、报文帧的定义...
    99+
    2023-09-12
    网络 服务器 网络协议
  • Java中使用DOM4J生成xml文件并解析xml文件的操作
    目录一、前言二、准备依赖三、生成xml文件生成标准展示四、解析xml文件五、总结一、前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有...
    99+
    2024-04-02
  • IIS7.5文件解析漏洞&&Apache解析漏洞&&Nginx文件解析漏洞&&
    实验原理 文件上传使用白名单做限制,只能上传图片文件,导致脚本文件无法上传,上传图片马绕过白名单文件上传的验证,但是图片马又无法解析,利用IIS7.5文件解析漏洞的特点:任意文件名/任意文件名.php,从而解析脚本文件。 实验步骤 登录操作...
    99+
    2023-09-16
    php 开发语言
  • Android 使用Pull方法解析XML文件的方法
    Pull解析方法给应用程序完全的控制文档该怎么样被解析。Android中对Pull方法提供了支持的API,主要是 代码如下:org.xmlpull.v1.XmlPullPars...
    99+
    2022-06-06
    xml文件 解析xml XML Android
  • 使用ftpClient如何实现下载ftp文件解析
    使用ftpClient如何实现下载ftp文件解析?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。总体思路有以下:  1、得到所有路径以及子路径:递归遍历所有文件到路径。参数:...
    99+
    2023-05-31
    ftpclient ftp文件解析
  • 如何在PHP中使用NumPy和JavaScript解析文件?
    在现代web开发中,PHP是一种非常流行的编程语言。但是,PHP本身并不能很好地处理科学计算和数据分析的任务。为了解决这个问题,我们可以使用NumPy和JavaScript来解析文件。这篇文章将会为你介绍如何在PHP中使用NumPy和Jav...
    99+
    2023-08-13
    numpy 文件 javascript
  • Linux系统下如何使用C++解析json文件详解
    1. 背景 工作需要,下班回来自己造轮子,记录以后查阅。 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,和xml类似,本文主要Lin...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作