在android 输出log 信息 用于调试

2023-11-19

 

要想在 jni native 代码中看打印信息,printf 是不行的,需使用 __android_log_print,如下所示。

__android_log_print(ANDROID_LOG_INFO, "ProjectName", "I am : %d/n", n);







该函数与 printf 用法相似,使用格式字符。打印的结果通过 logcat 查看。

注意,使用时需要将头文件 android/log.h 包含进来。

为方便使用,往往定义一些宏

#include <android/log.h>







#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, "ProjectName", __VA_ARGS__)



#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , "ProjectName", __VA_ARGS__)



#define LOGI(...) __android_log_print(ANDROID_LOG_INFO , "ProjectName", __VA_ARGS__)



#define LOGW(...) __android_log_print(ANDROID_LOG_WARN , "ProjectName", __VA_ARGS__)



#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR , "ProjectName", __VA_ARGS__)





在 Android.mk文件中需要加入:

LOCAL_LDLIBS := -llog

LOCAL_C_INCLUDES += system/core/include/cutils

LOCAL_SHARED_LIBRARIES := libcutils





android_LogPriority枚举类型,如下所示: typedef enum android_LogPriority { ANDROID_LOG_UNKNOWN = 0, ANDROID_LOG_DEFAULT, ANDROID_LOG_VERBOSE, ANDROID_LOG_DEBUG, ANDROID_LOG_INFO, ANDROID_LOG_WARN, ANDROID_LOG_ERROR, ANDROID_LOG_FATAL, ANDROID_LOG_SILENT, } android_LogPriority;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在android 输出log 信息 用于调试 的相关文章

  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 在 Android 中调整可绘制对象的大小

    我正在为进度对话框设置一个可绘制对象 pbarDialog 但我的问题是我想每次调整可绘制的大小 但不知道如何调整 这是一些代码 Handler progressHandler new Handler public void handleM
  • HERE 地图:更改路线已行驶部分的颜色

    导航时可以改变路线的颜色吗 具体来说 我希望路线中已行驶的部分的颜色与即将行驶的部分的颜色不同 现在都是同一个颜色 将 MapRoute 对象的 TravelColor 变量设置为透明对我来说很有效 mapRoute color Resou
  • Android 后台服务示例,具有交互式调用方法

    我不是 Android 方面的专家 我正在寻找一个 Android 应用程序的示例 该应用程序使用一个服务 其中有真正的功能方法 或者换句话说 一个服务可以用来做什么 我们什么时候需要它 超越简单的东西服务举例 我确信您渴望获得一些工作代码
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 有关 ListView 自定义行布局项目上的 onClick() 事件的帮助

    我有一个 ListView 其行由我格式化 每行都有 ImageView 和 TextView 的混合 我还实现了自己的适配器 并且能够通过它绘制每一行 现在 我想要这样的东西 用户单击 ImageView 不是行上的其他任何位置 但只有此
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • javafx android 中的文本字段和组合框问题

    我在简单的 javafx android 应用程序中遇到问题 问题是我使用 gradle javafxmobile plugin 在 netbeans ide 中构建了非常简单的应用程序 其中包含一些文本字段和组合框 我在 android
  • 如何在基本活动中使用 ViewBinding 的抽象?

    我正在创建一个基类 以便子级的所有绑定都将设置在基类中 我已经做到了这一点 abstract class BaseActivity2 b AppCompatActivity private var viewBinding B null pr
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • 区块链应用技术学习(一)

    众所周知 区块链技术的特性就在于其去中心化与不可篡改性 由于这俩点的特性的存在 使得区块链技术的发展颇有看头 于是小编我也踏上了区块链学习的过程 文章目录 前言 一 区块链是什么 二 区块链作用 1 企业 2 个人 总结 前言 在学习区块链
  • Android资源管理中的SharedLibrary和Dynamic Reference-------之资源共享库(一)

    一 引言 共享库的概念 相信大家都有所了解 它有有许多优点 可以设想 在一个系统上要跑100个应用 并且它们都使用到了同一个库 如果这个库做成静态库 那么每个应用中都要打包一次这个库 100个应用就是100次 这无疑是重复的 我们可不可以在
  • FIFO读写控制

    如果在两个模块之间传输数据 两个模块之间的处理速率不同 会导致采集数据的遗漏或错误 在他们之间加一个数据缓存器 所有数据先经过缓存器缓存 再输入数据接送模块 创建两个模块 一个 作为发送模块 一个作为接受模块 发送模块检测到 fifo为空开
  • Python3,2行代码,多种方法,直接把网页内容转换成PDF文档和图片。

    网页转换成PDF 1 引言 2 代码实战 2 1 模块介绍 2 1 1 pdfkit 2 2 安装 2 3 代码实例 2 3 1 URL 对应网页转 PDF 2 3 2 HTML 文件转 PDF 2 3 3 字符串转 PDF 2 4 拓展
  • C++中protected访问权限问题

    今天发现有这样两句话 1 基类的保护成员对于派生类的成员是可访问的 2 派生类的成员只能通过派生类对象访问基类的保护成员 派生类对一个基类对象中的受保护成员没有访问权限 这两句话看的太头晕了 其实作者应该是想表达 只有在派生类中才可以通过派
  • Spring-boot+Dubbo(直连模式)

    Spring boot Dubbo 直连模式 Demo 这里应该有很多人会问 直连模式 什么鬼啊 一般情况下我们进行微服务开发时 都是通过zookeeper等注册中心来实现服务的提供和引用的 那直连模式没啥用啊 其实不然 直连模式大有用处
  • 基于51单片机汽车胎压温度监测报警系统(程序+仿真+原理图+元件清单)

    功能介绍 采用51单片机作为主控单片机 通过采集传感器的胎压和DS18b20的温度 显示到LCD1602上面 并且可以通过按键设置温度和压力的阈值 超过此值蜂鸣器进行报警 可以及时的提醒驾驶员胎压或者温度异常 程序采用keil编写 并且有中
  • 【翻译】容器解决方案加入了绿色软件基金会

    8月 Container Solution加入了绿色软件基金会 主要由微软设立 因为坦率地说他们有大笔资金 以帮助促进和支持我们迫切需要的气候意识的软件开发方法 Container Solution的技术伦理学家Anne Currie将是我
  • ViewPager实现导航页

    我们在首次安装app时 往往会发现会有导航页 导航页一般用于介绍功能和引导使用 那我们其实可以用ViewPager实现 ViewPager用于实现多页面的滑动切换效果 使用时需要引入 android support v4 包 好了 我们现在
  • 打开方式中选择默认方式无反映_Win7系统无法选择打开方式的解决方法

    习惯用win7系统的用户在使用过程中一定会遇到这个问题 有的时候想要打开PDF文件 如果不安装其他软件 单用默认的打开方式是打不开的 安装了软件之后 仍然找不到自己想要用的打开方式 今天小编以打开PDF为例 跟大家分享win7系统无法选择打
  • vscode前端常用插件 最新版

    1 不需要安装的插件 序号 名称 作用 settings json配置 1 Auto Rename Tag 自动关闭标签 editor linkedEditing true 2 Auto Close Tag 标签自动闭合 html auto
  • mysql 时间_MySQL中日期和时间类型

    1 日期类型 MySql中关于日期的类型有Date Datetime Timestamp三种类型 日期赋值时 允许 不严格 语法 任何标点符都可以用做日期部分或时间部分之间的间割符 例如 98 12 31 11 30 45 98 12 31
  • 宝塔 Error: BT-Task service startup failed. 问题原因以及解决方法

    因为我个人电脑用的是py3 所以自带py2的宝塔就自以为是升级了 还替换掉了宝塔的py2 因为py2和py3包和语法有部分不一样 所以不能用 导致重启服务器后失效 解决方法就是替换回来 先看看现在的Python版本 python v 如果是
  • Excel脱拽或者下拉公式时, 保持公式里单元格数字不变

    绝对引用 可以选中B1 用F4快捷键自己就给加绝对引用符号了 然后回车 复制或者拖拽 转载于 https www cnblogs com baxianhua p 9995530 html
  • SSL与TLS工作原理

    链接 https zhuanlan zhihu com p 36981565 为了保证网络通信的安全性 需要对网络上传递的数据进行加密 现在主流的加密方法就是SSL Secure Socket Layer TLS Transport Lay
  • 第5讲:VUE3工程中实现页面加载中效果和页面切换动画效果。

    VUE3工程发布后的运行过程为先加载html面 再通过html页中的js加载单页面js来渲染页面并显示 根据这个加载过程 实现页面加载中的原理是预先在html中显示加载中 再单页面数据加载完成在mounted时隐藏加载中 即实现想要的效果
  • 轻量级分割网络总结

    目录 ddrnet STDC Seg 重新思考BiSeNet ExtremeC3Net DFANet NfS SegNet 好像未开源 人像分割
  • 操作系统常见面试题及答案

    操作系统 从系统观点看 是计算机系统的一个系统软件 管理和控制计算机系统中的资源 从用户观点看 操作系统是用户与计算机之间的接口 从软件观点看 操作系统是程序和数据结构的集合 1 什么是进程 process 和线程 thread 有何区别
  • linux中esc无法正常退出insert

    ctrl c
  • 在android 输出log 信息 用于调试

    要想在 jni native 代码中看打印信息 printf 是不行的 需使用 android log print 如下所示 android log print ANDROID LOG INFO ProjectName I am d n n