之前的代码里面tag是默认的文件名, log等级也要在头文件里面修改,感觉好烦,后面发现了一种更加好玩一点的解决方案,基于之前的那篇《android ndk开发之Log日志(一)》 ,我们在需要引用log的模块,android.mk进行修改
例:
LOCAL_PATH := $(MY_ROOT_PATH) include $(CLEAR_VARS) LOCAL_MODULE := demo ................. # Define the log tag MY_LOG_TAG := "demo" # Define the default logging level based build type ifeq ($(APP_OPTIM),release) MY_LOG_LEVEL := MY_LOG_LEVEL_ERROR else MY_LOG_LEVEL := MY_LOG_LEVEL_VERBOSE endif # Appending the compiler flags LOCAL_CFLAGS += -DMY_LOG_TAG=$(MY_LOG_TAG) LOCAL_CFLAGS += -DMY_LOG_LEVEL=$(MY_LOG_LEVEL) # Dynamically linking with the log library LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog -landroid
...
小剧场:
当时我写的时候出现了一个问题, demo这个符号在当前的模块没有定义!!!, 原来宏替换的时候直接替换成了demo,我们的tag是char*类型, 所以改成"demo"就好了, 同时注意LOCAL_CFLAGS那段的写法, LOCAL_CFLAGS += -DTAG=aaaa, 这句话等价于在模块中#define TAG aaaa
注意:
APP_OPTIM默认值是release, 我们可以在application.mk中修改这个变量,比如想改成debug, 可以在application.mk中写 APP_OPTIM:=DEBUG
好啦, 这么写是不是感觉更高大上了一点呢(>.<)