Android mk文件

这篇具有很好参考价值的文章主要介绍了Android mk文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.编译apk文件至system/app目录

 #指定当前目录
LOCAL_PATH := $(call my-dir)
#引入编译变量
include $(CLEAR_VARS)
#编译出来的模块名 
LOCAL_MODULE := ESFileExplore
#编译选项便是在何种情况下编译
LOCAL_MODULE_TAGS := optional
#指定编译之后放置的位置
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
#签名文件
LOCAL_CERTIFICATE := platform
#引入编译成可执行文件的规则
include $(BUILD_PREBUILT)

apk文件和mk文件在同级目录文章来源地址https://www.toymoban.com/news/detail-793307.html

LOCAL_PATH := $(call my-dir)             #指定当前目录   
include $(CLEAR_VARS)                    #引入编译变量 
LOCAL_MODULE := hello                    #编译出来的模块名 
LOCAL_MODULE_TAGS := optional               #编译选项便是在何种情况下编译 
LOCAL_SRC_FILES := hello.c               #源文件(可以指定多个) 
LOCAL_MODULE_CLASS := EXECUTABLES        #指定编译之后放置的位置
include $(BUILD_EXECUTABLE)              #引入编译成可执行文件的规则 
LOCAL_PACKAGE_NAME                       #指定APP应用名称
LOCAL_PRIVATE_PLATFORM_APIS := true    #设置后,会使用sdk的hide的api來编译
LOCAL_USE_AAPT2 := true    #aapt 是编译和打包资源的工具。而aapt2是在aapt上做了优化
LOCAL_JNI_SHARED_LIBRARIES := libbluetooth_jni    #声明要使用到的共享 JNI 库的名称
LOCAL_JAVA_LIBRARIES := javax.obex telephony-common services.net    #指定依赖的共享java类库,这个是编译时依赖,最终不会打包
LOCAL_STATIC_JAVA_LIBRARIES := \
 com.android.vcard \
 bluetooth.cc\ 
 services.net \
libprotobuf-java-lite \    #指定依赖的静态java类库,最终会打包到apk里面。引用多个的时候,可以像上面那样写。
LOCAL_STATIC_ANDROID_LIBRARIES := android-support-v4 #声明要调用 android 的包,这里是v4包
LOCAL_REQUIRED_MODULES := libbluetooth #指定依赖的模块。一旦本模块被安装,通过此变量指定的模块也将被安装
LOCAL_PROGUARD_ENABLED := disabled #混淆配置,默认为full obfuscation,全代码混淆,disabled不开启
include $(BUILD_PACKAGE) #编译成APK 文件
include $(BUILD_STATIC_JAVA_LIBRARY) #生成静态JAVA库

2.编译含有so文件的apk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
  
LOCAL_MODULE := SXInput
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_CERTIFICATE := PRESIGNED

# get *.so
LOCAL_MULTILIB := 32
JNI_LIBS :=
app_unzip_files :=$(shell rm -rf $(LOCAL_PATH)/lib )
app_unzip_files :=$(shell  unzip -o $(LOCAL_PATH)/$(LOCAL_MODULE).apk "*lib/*" -d $(LOCAL_PATH)/)
$(foreach FILE,$(shell find $(LOCAL_PATH)/lib/armeabi-v7a/ -name *.so), $(eval JNI_LIBS += $(FILE)))
LOCAL_PREBUILT_JNI_LIBS := $(subst $(LOCAL_PATH)/,,$(JNI_LIBS))

include $(BUILD_PREBUILT)

到了这里,关于Android mk文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android NDK开发详解之Android.mk探秘

    本页介绍了 ndk-build 所使用的 Android.mk 构建文件的语法。 概览 Android.mk 文件位于项目 jni/ 目录的子目录中,用于向构建系统描述源文件和共享库。它实际上是一个微小的 GNU makefile 片段,构建系统会将其解析一次或多次。Android.mk 文件用于定义 Application.mk、构建系统和环境变量

    2024年02月06日
    浏览(52)
  • Android.mk开发模板

    今天简单写了一个 Android.mk 的示例模板,供初学者参考。 本模板主要给大家示例 Android NDK 开发中的如下几个问题: 如何自动添加需要编译的源文件列表 如何添加第三方静态库、动态库的依赖 如何构造一个完整的NDK工程框架 假设我们的项目依赖 libmath.a, libjson.a, libffmpeg.so 这

    2024年02月11日
    浏览(36)
  • AOSP——Android.mk解析

    Android.mk是用于控制Android代码的编译流程,用shell编写 除带#的注释, Android.mk第一句话都是 即将 my-dir方法的返回值赋值给LOCAL_PATH,让其等于当前目录 ,其中的my-dir方法在build/core/defintions.mk中定义,源码如下 接下来是 CLEAR_VARS的值在/build/core/config.mk,源码如下: BUILD_SYSTEM在

    2024年02月09日
    浏览(45)
  • Android.mk 常用模块类型

    生成的是动态库(.so 文件) 生成的是静态库(.a 文件) 用于编译 Java 代码并生成可执行的 Java 程序(.jar 文件) 用于编译 C/C++ 代码并生成可执行的 C/C++ 程序

    2024年02月02日
    浏览(35)
  • Android.mk和Android.bp的区别和转换详解

    简单的说: Android.mk和Android.bp都是用来编译出类库.jar,应用文件.apk,动态库.so,静态库.a等等作用。 Android.mk就是一个GNU make语法的脚本文件。 Android.bp文件是Android 7.0及更高版本中引入的一种构建脚本文件,是使用Starlark语法编写的,它是一种基于Python的轻量级脚本语言。 他们

    2024年04月28日
    浏览(50)
  • Android NDK开发详解之Application.mk探秘

    本文档介绍 ndk-build 所使用的 Application.mk 构建文件。 我们建议先阅读概念页面,然后再阅读本页面。 概览 Application.mk 指定 ndk-build 的项目级设置。默认情况下,它位于应用项目目录中的 jni/Application.mk 下。 注意:其中许多参数也具有模块等效项。例如,APP_CFLAGS 对应于 LOCA

    2024年02月08日
    浏览(50)
  • 编写Android.mk / Android.bp 引用三方 jar 包,aar包,so 库

            在Android10之后,所有项目工程中,官方推荐使用Android.bp去编译构建,以前使用Android.mk构建的项目随着版本迭代升级,慢慢需要变更为Android.bp, 两者的语法都需要去了解并熟练使用。 笔者之前写过Android.mk的语句介绍,里面有介绍每句代码的含义编写Android.mk把Andro

    2024年02月06日
    浏览(47)
  • android mk 和 bp 引入三方jar ,aar

    网上有很多关于这方面的介绍,我这边直接上完整的文件,供参考,想用的,直接修改模块名字,就可以使用了,避免踩坑. 1,LOCAL_PATH := $(call my-dir)         这个是固定的一般不需要改.my-dir 返回 Android.mk  文件本身所在的目录 2,LOCAL_MODULE_TAGS := user eng tests optional 这四

    2024年02月20日
    浏览(56)
  • Android.mk中的LOCAL_OVERRIDES_PACKAGES用法

    Android.mk中的LOCAL_OVERRIDES_PACKAGES用法_mk local_over_觅风者的博客-CSDN博客 Android.mk中的LOCAL_OVERRIDES_PACKAGES的用法说明可以参考以下文章: Android.mk覆盖替换LOCAL_OVERRIDES_PACKAGES 此变量可以使其他的模块不加入编译 项目中遇到的问题:修改了devicemstaralmonddevice-common.mk文件,将原生

    2024年02月15日
    浏览(77)
  • (NDK编译)详解使用Android.mk编译的C/C++程序过程

    想要在 Android设备 上运行 C/C++程序 可执行文件,可采用一个方法就是使用 NDK编译 ,很多时候要比 gcc编译 更适合,这里我采用的是 imx6q开发板 上面装载了自己编写的Android6.0.1镜像,在 Ubuntu64位 系统上采用NDK编译。 目录 1.准备文件 2.编写Android.mk 注意 完整Android.mk代码 3.NDK编

    2024年02月05日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包