zoukankan      html  css  js  c++  java
  • NDK开发之日志打印

    要在NDK中打印日志,只需要以下三步:


    一、在Android.mk中添加以下内容:

    LOCAL_LDLIBS := -lm -llog
    
    或者
    
    LOCAL_LDLIBS:=-L$(SYSROOT)/usr/lib -llog

    以上两行代码二选一。
    注意,这行代码要添加在include $(CLEAR_VARS)之后,否则没有效果。比如我有一个c文件,一个cpp文件,分别是jni1.c和jni3.cpp,那么你要打印日志应该这样添加:

    include $(CLEAR_VARS)
    LOCAL_LDLIBS := -lm -llog
    LOCAL_MODULE    := jni1
    LOCAL_SRC_FILES := jni1.c
    
    include $(BUILD_SHARED_LIBRARY)
    include $(CLEAR_VARS)
    LOCAL_LDLIBS:=-L$(SYSROOT)/usr/lib -llog
    LOCAL_MODULE    := jni3
    LOCAL_SRC_FILES := jni3.cpp
    
    include $(BUILD_SHARED_LIBRARY)

    二、引用头文件

    #include <android/log.h>

    三、定义变量

    //定义TAG之后,我们可以在LogCat通过TAG过滤出NDK打印的日志
    #define TAG "JNITEST"
    // 定义info信息
    #define LOGI(...) __android_log_print(ANDROID_LOG_INFO,TAG,__VA_ARGS__)
    // 定义debug信息
    #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, TAG, __VA_ARGS__)
    // 定义error信息
    #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,TAG,__VA_ARGS__)

    ANDROID_LOG_INFO是日志级别,这和LogCat中是一一对应的,TAG是过滤标签,__VA_ARGS__是我们要打印的实际的日志内容。


    OK!

    做完上面三步可以打印日志了:

    LOGI("the string is :%s",str1);

    注意:打印日志时如果是字符串切不可打印jstring,要将jstring转换为C 字符串然后打印(转换方式看前文)。

  • 相关阅读:
    gcc编译器如何生成指定的文件名
    文章如何做伪原创 SEO大神教你几招做"原创"网站文章的心得
    linux命令大全
    SDC文件模版
    lwip:网络数据包读取和解析过程
    离散时间信号与系统
    网络编程杂谈
    TCP segment of a reassembled PDU
    gdb: multiple process debug
    ntp.conf:很少有人提及的事
  • 原文地址:https://www.cnblogs.com/qitian1/p/6461752.html
Copyright © 2011-2022 走看看