• android ndk开发之Log日志(二)


    之前的代码里面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

    好啦, 这么写是不是感觉更高大上了一点呢(>.<)

     

  • 相关阅读:
    Java解析复杂xml文件,使用Xpath
    表达式求值
    解决 error CS0012 错误
    mssql sqlserver 分组排序函数row_number、rank、dense_rank用法简介及说明
    c#核心基础
    Git源代码管理
    CASE 表达式
    NPM -- 初探--01
    ASP.NET Zero--基础设施
    ASP.NET Zero--基于令牌的认证&SWAGGER UI
  • 原文地址:https://www.cnblogs.com/zhangyan-2015/p/5647916.html
Copyright © 2020-2023  润新知