前言
你是否有过这么一个需求,就是Android的编译环境是由无数个Android.mk文件和其它类型mk文件组成的,为了方便调试你有时候是否想打印某些的变量。那么本篇文章就是带领大伙怎么调试Android.mk添加打印信息。
一.怎么添加
这个没有啥多说的,这个是一个实战性的篇章,直接上结论是最有效的了。下面让我们看看怎么添加打印信息。
1.1 打印语法
输出调试信息的类型一般有两种,直接输出字符串和输出变量信息,其语法规则如下:
直接输出字符串语法如下:#输出字符串的方式有如下三种,程度越来越高,有点像Android里面的Log等级
$(info string) #一般打印信息,仅仅是显示调试信息
$(warning string) #警告级别打印信息,不会停止脚本运行,一般用于严重警告
$(error string) #错误级别,会停止编译直接退出来
输出变量方式语法如下:
#基本不适用error输出变量
$(info $(var))
$(warning $(var))
1.2 实战
好了前面已经将语法知识讲通透了,那么就得开始实战了,不然前面的不都白说了啊。人狠话不多,直接开撸。
1.2.1编写测试Android.mkLOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
$(info show info)
$(info $(TARGET_BUILD_VARIANT)) #打印变量
$(warning show warning)
$(warning $(TARGET_BUILD_VARIANT))
$(error done)
编译打印信息如下:
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=9
TARGET_PRODUCT=msm8953_64
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv8-a
TARGET_2ND_CPU_VARIANT=cortex-a53
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-141-generic-x86_64-Ubuntu-16.04.5-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=PKQ1.190504.001
OUT_DIR=out
============================================
QSSI: not enabled for msm8953_64 target as vendor/qcom/proprietary/release/QSSI/QSSI_enforced_targets_list.txt was not found.
ninja: no work to do.
ninja: no work to do.
No need to regenerate ninja file
out/build-msm8953_64-pax_Android.mk.ninja is missing, regenerating...
device/qcom/msm8953_64/msm8953_64.mk:29: warning: "Build with 4.9 kernel"
show info
userdebug
pax/Android.mk:7: warning: show warning
pax/Android.mk:8: warning: userdebug
pax/Android.mk:10: error: done.
写在最后
好了今天我要介绍的在Android.mk文件里面添加调试打印信息就到这里了,实战性的东西也木有啥好说的了。虽然不舍,还是得和大伙说再见了。各位江湖见。最后希望大家能点个赞或者拍砖。
作者:进阶的凯子