如何在 Android.mk 打印信息
1、 在 Android.mk里打印信息有三种方法:
a. $(info string) 打印正常输入信息 b. $(warning string) 打印警告信息 c. $(error string) 打印错误信息
以上三种打印方式:
a. 各个打印方式的string里都可以带上变量; b. 如果遇到error打印,将会停止编译进程。
2、 举例说明各个打印函数的方法,以下以packages/apps/Music/Android.mk为例,内容如下:
LOCAL_PATH:= $(call my-dir)     
$(warning "Warning Just for Test LOCAL_PATH is $(LOCAL_PATH)")   
$(info "Info Just for Test LOCAL_PATH is $(LOCAL_PATH)") 
include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional   
LOCAL_SRC_FILES := $(call all-java-files-under, src) \
    src/com/android/music/IMediaPlaybackService.aidl 
LOCAL_PACKAGE_NAME := Music   
LOCAL_SDK_VERSION := current   
LOCAL_CERTIFICATE := platform   
LOCAL_PROGUARD_FLAG_FILES := proguard.flags   
include $(BUILD_PACKAGE)   
# Use the folloing include to make our test apk. 
include $(call all-makefiles-under,$(LOCAL_PATH))
打印结果如下图:
ninja: no work to do. [1/2] glob packages/apps/*/Android.bp ninja: no work to do. packages/apps/Music/Android.mk was modified, regenerating... Saved manifest to commit_id.xml packages/apps/Music/Android.mk:2: warning: "Warning Just for Test LOCAL_PATH is packages/apps/Music" "Info Just for Test LOCAL_PATH is packages/apps/Music" PRODUCT_COPY_FILES device/rockchip/common/init.rk30board.usb.rc:root/init.rk30board.usb.rc ignored. No private recovery resources for TARGET_DEVICE rk3328_box [ 50% 1/2] glob packages/apps/*/Android.bp [100% 1/1] Ensuring Jack server is installed and started Jack server already installed in "/home/seven/.jack-server" Server is already running #### build completed successfully (28 seconds) ####
	warning 的打印带有 warning 标志,
info 打印不带有任何标志。
  
3、这里再演示下error打印的结果,将Android.mk文件修改成如下:
LOCAL_PATH:= $(call my-dir)   
$(warning "Warning Just for Test LOCAL_PATH is $(LOCAL_PATH)")   
$(info "Info Just for Test LOCAL_PATH is $(LOCAL_PATH)")   
$(error "Error Just for Test LOCAL_PATH is $(LOCAL_PATH)") 
include $(CLEAR_VARS)   
LOCAL_MODULE_TAGS := optional   
LOCAL_SRC_FILES := $(call all-java-files-under, src) \
    src/com/android/music/IMediaPlaybackService.aidl   
LOCAL_PACKAGE_NAME := Music 
LOCAL_SDK_VERSION := current 
LOCAL_CERTIFICATE := platform   
LOCAL_PROGUARD_FLAG_FILES := proguard.flags 
include $(BUILD_PACKAGE)   
# Use the folloing include to make our test apk. 
include $(call all-makefiles-under,$(LOCAL_PATH))
打印结果如下:
ninja: no work to do. [1/2] glob packages/apps/*/Android.bp ninja: no work to do. packages/apps/Music/Android.mk was modified, regenerating... Saved manifest to commit_id.xml packages/apps/Music/Android.mk:2: warning: "Warning Just for Test LOCAL_PATH is packages/apps/Music" "Info Just for Test LOCAL_PATH is packages/apps/Music" packages/apps/Music/Android.mk:4: error: "Error Just for Test LOCAL_PATH is packages/apps/Music". 15:02:44 ckati failed with: exit status 1 #### failed to build some targets (14 seconds) ####
结果显示编译进程被中断并报错,所以在正常打印信息调试时,error打印函数不建议使用。