android.mk里面功能含义

#每个Android.mk文件都以LOCAL_PATH开始,Build System提供的宏函数 my-dir,此变量返回包含的makefile的路径;
#CLEAR_VARS 变量指向一个特殊的 GNU Makefile,后者会清除许多 LOCAL_XXX 变量,CLEAR_VARS不会清除LOCAL_PATH变量;
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)


LOCAL_MODULE := Weather
#指定APP应用名称
LOCAL_PACKAGE_NAME := InoWeather
#如果预置的APK,要覆盖原生apk,则需在android.mk中的添加LOCAL_OVERRIDES_PACKAGES,此变量可以使其他的模块不加入编译。
LOCAL_OVERRIDES_PACKAGES := Music MusicBspPlus MusicFX
#true 表示app应用在目录/system/priv-app/下, false 表示app应用在目录/system/app/下
LOCAL_PRIVILEGED_MODULE := true
#是否是设备专有模块
LOCAL_MODULE_OWNER := mtk
#该APK完成一些系统的核心功能。经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进程的UID为system。
LOCAL_CERTIFICATE := platform
#optional指该模块在所有版本下都编译
LOCAL_MODULE_TAGS := optional
#true设置后,会使用sdk的hide的api來编译
LOCAL_PRIVATE_PLATFORM_APIS := true
#最后的目标安装路径
LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)
#指定不需要混淆的native方法与变量的proguard.flags文件
LOCAL_PROGUARD_FLAG_FILES := proguard.flags

#LOCAL_SRC_FILES 变量必须包含要编译到模块中的 C 和/或 C++ 源文件列表
LOCAL_SRC_FILES := $(call all-java-files-under, src) \
	src/com/android/music/IMediaPlaybackService.aidl \
	src/com/mediatek/bluetooth/avrcp/IBTAvrcpMusic.aidl \
	src/com/mediatek/bluetooth/avrcp/IBTAvrcpMusicCallback.aidl
#指定依赖的共享java类库
LOCAL_JAVA_LIBRARIES += mediatek-common
LOCAL_JAVA_LIBRARIES += mediatek-framework
LOCAL_JAVA_LIBRARIES += voip-common
#android依赖库
LOCAL_STATIC_ANDROID_LIBRARIES := \
        $(ANDROID_SUPPORT_DESIGN_TARGETS) \
        android-support-percent \
        android-support-transition \
        android-support-compat \
        android-support-core-ui \
        android-support-media-compat \
        android-support-v13 \
        android-support-v14-preference \
        android-support-v7-appcompat \
        android-support-v7-gridlayout \
        android-support-v7-preference \
        android-support-v7-recyclerview

LOCAL_USE_AAPT2 := true
#指定库的规则
LOCAL_STATIC_JAVA_LIBRARIES := \
    android-common \
    com.mediatek.omadrm.common

ifeq ($(TARGET_BUILD_APPS),)
support_library_root_dir := frameworks/support
else
support_library_root_dir := prebuilts/sdk/current/support
endif

#表示 Res 的路径
LOCAL_RESOURCE_DIR := \
        $(addprefix $(LOCAL_PATH)/, res)
#指定资源文件路径
LOCAL_AAPT_FLAGS := \
        --auto-add-overlay 

include $(BUILD_PACKAGE)

#BUILD_SHARED_LIBRARY 变量指向一个 GNU Makefile 脚本,该脚本会收集您自最近 include 以来在 LOCAL_XXX 变量中定义的所有信息。此脚本确定要编译的内容以及编译方式。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
android.mk 是一种用于构建 Android 应用程序的 Makefile 文件格式,而 android.bp 是将要取代 android.mk 的一种新的构建系统文件格式,它是用于生成 Android 系统的 Blueprint 构建系统的配置文件。 要将 android.mk 转成 android.bp,首先需要了解 android.mk 的结构和语法规则,然后根据这些规则来编写对应的 android.bp 文件。由于 android.bp 是基于 Blueprint 构建系统的配置文件,所以需要通过编写规范的 Blueprint 描述文件来完成对 android.mk 的转换。 在转换过程中,需要注意以下几点: 1. 将 android.mk 文件中的每个模块(例如库,可执行文件,模块等)的描述转换为对应的 android.bp 格式。 2. 考虑和处理 android.bp 特有的新特性和语法规则,例如 module {} 块的使用。 3. 更新外部依赖项的描述,如库的引入方式、依赖关系的定义等。 4. 调整路径和命名规则,使之符合 android.bp 的文件组织结构和命名规范。 在转换完成后,需要进行测试和验证,确保转换后的 android.bp 文件可以正确地生成相应的 Android 应用程序。同时,也需要注意在转换过程中可能会出现的兼容性问题,确保转换后的 android.bp 文件能够正常地被构建系统接受并使用。 总的来说,将 android.mk 转成 android.bp 需要对 android.mk 的结构和语法进行理解,并根据 Blueprint 构建系统的规则和特性来进行相应的转换和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值