热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

android开发分享如何获得用NDK应用程序编写的“printf”消息?

如果我在java文件中定义这ڃ

如果我在java文件中定义这样的function

%ignore_pre_1%

所以我需要在C文件中编码

 JNIEXPORT jint JNICALL Java_com_marakana_NativeLib_add (JNIEnv * env, jobject obj, jint value1, jint value2) { printf("n this is log messge n"); return (value1 + value2); } 

那么从这个printf将打印它的消息? 在login我不明白吗?

如何通过放置日志消息来debugging任何NDK应用程序?

    使用__android_log_print()来代替。 你必须包含头文件

    示例示例。 __android_log_print(ANDROID_LOG_DEBUG, "LOG_TAG", "n this is log messge n");

    你也可以使用格式说明符像printf –

     __android_log_print(ANDROID_LOG_DEBUG, "LOG_TAG", "Need to print : %d %s",int_var, str_var); 

    确保你也链接到你的Android.mk文件中的日志库:

      LOCAL_LDLIBS := -llog 

    哦,忘了..输出将显示在Logcat ,标签为LOG_TAG

    简单的方法

    将以下行添加到您的公共头文件。

     #include  #define LOG_TAG "your-log-tag" #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__) #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__) // If you want you can add other log definition for info, warning etc 

    现在只需要printf in c调用LOGD("Hello world") or LOGE("Number = %d", any_int)

    不要忘记包含公共头文件。

    删除日志logging

    如果您将LOGD(...)定义为空,则所有日志都将消失。 只需在LOGD(...)之后发表评论。

    #define LOGD(...) // __android_log..... rest of the code

    有两个选项:

    1)用__android_log_printreplaceprintf。 你可以在代码开头定义:

     #define printf(...) __android_log_print(ANDROID_LOG_DEBUG, "TAG", __VA_ARGS__); 

    当然,这将需要更改所有具有printf的源代码。

    2)将stdout和stderrredirect到Android logcat(不知道这是否会在非root用户的设备上工作): http : //developer.android.com/guide/developing/debugging/debugging-log.html#viewingStd

    不需要根设备,可以 ,下面就可以正常工作了。

     $ adb shell $ su $ stop $ setprop log.redirect-stdio true $ start 

    完成了!

    以上就是android开发分享如何获得用NDK应用程序编写的“printf”消息?相关内容,想了解更多android开发(异常处理)及android游戏开发关注(编程笔记)。


      推荐阅读
      • 开发笔记:加密&json&StringIO模块&BytesIO模块
        篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
      • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
      • Java序列化对象传给PHP的方法及原理解析
        本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
      • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
      • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
        本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
      • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
      • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
      • Voicewo在线语音识别转换jQuery插件的特点和示例
        本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
      • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
      • XML介绍与使用的概述及标签规则
        本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
      • 本文介绍了指针的概念以及在函数调用时使用指针作为参数的情况。指针存放的是变量的地址,通过指针可以修改指针所指的变量的值。然而,如果想要修改指针的指向,就需要使用指针的引用。文章还通过一个简单的示例代码解释了指针的引用的使用方法,并思考了在修改指针的指向后,取指针的输出结果。 ... [详细]
      • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
      • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
      • 动态规划算法的基本步骤及最长递增子序列问题详解
        本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
      • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
      author-avatar
      手机用户2502863161
      这个家伙很懒,什么也没留下!
      PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
      Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有