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 字符串然后打印(转换方式看前文)。

版权声明:本文为博主原创文章,未经博主允许不得转载。若有错误地方,还望批评指正,不胜感激。

时间: 2024-10-09 20:29:10

NDK开发之日志打印的相关文章

NDK开发之访问域

Java有两类域,实例域和静态域.类的每个实例都有自己的实例域副本,而一个类的所有实例共享一个静态域(Java SE基础). JNI提供了相应的函数来访问这两类域,总体步骤是这样的: 1.通过对象引用获得类 2.通过类获得域ID 3.通过域ID获取域 下面我们按步骤一步一步来: 我们的Java类中有两个域,一个静态域,一个实例域: private static String staticFiled = "a static Filed465"; private String instan

iOS开发- 日志打印(常见)

Q:如何打印当前的函数和行号? A:我们可以在打印时使用一些预编译宏作为打印参数,来打印当前的函数和行号.如: NSLog(@"%s:%d obj=%@", __func__, __LINE__, obj); NSLog(@"%s:%d obj=%@", __func__, __LINE__, self); //输出样式: //2015-01-06 17:13:17.852 justTest[15079:613] // -[ViewController viewDi

NDK开发基本知识

(3) NDK开发中乱码问题 解决乱码思路 : C语言编译的时候用的是 ISO-8859-1 码表进行编码, 如果我们使用C语言jni开发, 需要进行转码操作; -- 将ISO-8859-1转为UTF-8字符: String string = new String(str.getBytes("iso8859-1"), "UTF-8"); 示例 : 添加中文jni调用 : 将jni中的hello.c 中返回的字符串修改为中文, 重新编译 .so 静态库文件; -- 修

Android NDK开发(八)——应用监听自身卸载,弹出用户反馈调查

转载请注明出处:http://blog.csdn.net/allen315410/article/details/42521251 监听卸载情景和原理分析 1,情景分析 在上上篇博客中我写了一下NDK开发实践项目,使用开源的LAME库转码MP3,作为前面几篇基础博客的加深理解使用的,但是这样的项目用处不大,除了练练NDK功底.这篇博客,我将讲述一下一个各大应用中很常见的一个功能,同样也是基于JNI开发的Android应用小Demo,看完这个之后,不仅可以加深对NDK开发的理解,而且该Demo也可

Android SDK NDK开发总结

描述:http://talent.baidu.com/external/baidu/index.html#/jobDetail/2/1237247043 android studio实现Jni(C/C++)单步调试方法步骤-标准配置教程 NDK DEBUG方法 图像处理代码优化:例子 Android Studio中JNI程序的单步调试和日志打印 JNI/NDK开发指南(十)--JNI局部引用.全局引用和弱全局引用 NDK特性: 1. Davek虚拟机对应用内存申请设置上限,超过会内存溢出,nat

Android NDK开发技术与技巧总结与心得

嘛,好久不来了,忙成狗,不过收获很多,本文就是其中之一. 最近把JNI这玩意儿深度学习了下,之前虽然也做过,但都比较松散,没有系统的把整个知识框架和技术体系梳理过.网上也看了很多博文,基本说的都是环境配置然后一个Hello from jni的玩意儿,然后就没有然后了,基本很少有具体的应用以及对相应核心api的介绍,对其思想的介绍就更少了,所以想自己还是总结一篇出来,并不是为了装逼,就是怕过半年自己又全还给自己了(谁信啊)-- 先来张葛大爷的图镇楼! 一.JNI到底是干嘛用的 百度都能查到的官方解

如何定位Android NDK开发中遇到的错误

做android应用的调试,最怕就是报错,crash,看到这篇好文章,记录一下: 转自:http://www.csdn.net/article/2014-12-30/2823366-Locate-Android-NDK Android NDK是什么? Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google称为“NDK”.众所周知,Android程序运行在Dalvik虚拟机中,NDK允许用户使用类似C / C++之类的原生代

NDK开发,如何配置 debug环境

刚开始做NDK 开发的时候,Android Studio 还没提供了 native C/C++ 设置断点 调试,我们都是通过输出 日志来调试,这样费时耗力.Android Studio 应该是在 2.2 版本才提供的设置断点 debug 功能,同时在该版本也提供了 cmake 编译.     我目前在做 NDK 开发的时候,还是习惯用 NDK-Build(也就是设置 Android.mk) 来开发,我先简单说一下怎么用输出日志来调试: 1.首先在 Android.mk 设置MODULE 添加日志

Android NDK开发之从环境搭建到Demo级十步流

写在正文之前: 几个月没有更新博客,感觉有点生疏了,所以说不能断,一断人就懒. 其实这几个月也并不是什么事也没有做,俺可是时刻想着今年的任务呢,10本书,30篇博文-,这几个月间断性的也是在学习中,学H5,学设计模式,以及NDK JNI开发等等. 学习JNI主要是因为公司有一些COCOS游戏需要添加计费点,而又没有真正的游戏开发人员,这个重任就落到我身上了,然后就是各种虐,一虐到底,苦不堪言,这种虐并不是学习技术的虐,而是一款游戏用于N种计费点,不停的改改改,那个需求这个需要的,然后你就等着被玩