jni使用基础(六)之在c代码中使用logcat

 

 

在C代码中使用logcat:

1.在Android.mk文件中增加LOCAL_LDLIBS += -llog

       // -l 是(-lab)增加库文件的语法,是在编译时,使用该库需要的语法。

       // log 是在ndk中的liblog.so文件

      若再需要增其它的库,只需","分隔:如:LOCAL_LDLIBS += -llog, -lGLESv2

     注意:在mk文件中,不能在include $(BUILD_SHARED_LIBRARY)之后。

 

2.在C代码中增加

#include <android/log.h>
#define LOG_TAG "System.out" //指定TAG标签名为System.out,也可修改成其它的TAG,如“Hello TAG”
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)

define的作用是:使用LogD(...)时,就相当于执行__android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
而(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
第一个参数指的是级别;当前就是debug级别的。

第二个参数就是TAG标签。

第三个参数就是要打印的信息。

 

在C中直接调用:
 LOGI("info\n");
 LOGD("debug\n");

或LOGD("%s","debug");

 

时间: 2024-12-01 17:26:34

jni使用基础(六)之在c代码中使用logcat的相关文章

二维数组-请问这段代码中最后输出元素的时候,有必要加个空格吗?

问题描述 请问这段代码中最后输出元素的时候,有必要加个空格吗? static void Main(string[] args) { int[,] score = new int[3, 5]; score[0, 0] = 103; score[1,4] = 80; for (int i = 0; i <3; i++) { for (int j = 0; j < 5; j++) { Console.Write(score[i, j] + " "); Console.WriteL

JNI编程基础(一)

JNI-Java Native Interface,是Java平台提供的一个特性,通过编写JNI函数实现Java代码调用C/C++代码以及C/C++代码调用Java代码的作用.从而达到利用不同语言的特点.为什么需要在Java中调用C/C++代码,在我看来最主要有以下三点: C/C++代码相比Java有着更高的性能 C/C++代码更难被反编译,有更好的安全性 通过JNI函数可以绕开JVM的限制,完成一些在Java层面实现不了的功能.典型的例子就是Android热修复框架AndFix 既然要实现C/

Bootstrap&lt;基础六&gt; 表单

原文:Bootstrap<基础六> 表单 Bootstrap 通过一些简单的 HTML 标签和扩展的类即可创建出不同样式的表单. 表单布局 Bootstrap 提供了下列类型的表单布局: 垂直表单(默认) 内联表单 水平表单 垂直或基本表单 基本的表单结构是 Bootstrap 自带的,个别的表单控件自动接收一些全局样式.下面列出了创建基本表单的步骤: 向父 <form> 元素添加 role="form". 把标签和控件放在一个带有 class .form-gr

jni使用基础(七)之java调用c事例Demo

    1.界面: package com.devchina.ndk3; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Toast; public class DemoActivity extends Activity { static{ System.loadLibrary("devchina"); } @Override p

Jni使用基础(一)之简单介绍说明

  JNI(Java Native Interface,JAVA原生接口)  Jni 是一个协议,用来沟通java代码和外部的本地代码(c/c++)相互调用.   为什么要进行交互?  首先,Java语言提供的类库无法满足要求,且在数学运算,实时渲染的游戏上,音视频处理等方面上与C/C++相比效率稍低.   然后,Java语言无法直接操作硬件,C/C++代码不仅能操作硬件而且还能发挥硬件最佳性能.  接着,使用Java调用本地的C/C++代码所写的库,省去了重复开发的麻烦,并且可以利用很多开源的

jni使用基础(二)之调用及工具使用

使用jni步骤: 一.JAVA代码中写声明native 方法 二.创建jni目录,编写c代码,方法名字要对应 三.编写Android.mk文件 四.Ndk编译生成动态库 五.Java代码load 动态库.调用native代码   一,怎样写Android.mk文件        LOCAL_PATH := $(call my-dir) #注意:在此句后不能有空格,否则造成无法编译.                                                         

jni使用基础(八)之jni使用流程及C调用java简单说明

  jni使用步骤: 1.定义好native接口. 2.使用javah工具,生成头文件. 3.根据头文件,创建c文件. 4.编写Android.mk文件. 5.通过cygwin,进入到该工程目录,通过ndk-buld命令,编译c文件,生成so库文件 6.即可完成调用     怎样在c中调用java? 也就是要在c代码中,new出java对象,然后再调用java对象中的方法即可. 要创建java对象,就要找到java类,相当于找到类的class文件,使用jni中的 FindClass去找到相应的类

web前端-WEB前端基础 下列代码中,错误的是()?

问题描述 WEB前端基础 下列代码中,错误的是()? A. 01发票信息 发票抬头: 发票内容: B.发票信息 发票抬头: 发票内容: C.% D. 搜索"恒高科技": 解决方案 web前端基础Web前端基础[WEB基础]⑤一些前端小东西 解决方案二: 你这个是不是有格式的啊? 解决方案三: 我表示看不懂,是不是内容不全啊 相关文章 代码-WEB前端基础 答案为什么是B html-如何才能系统的学习web前端呢 web前端-css遇到十分基础的问题,求解释 web前端框架挑选问题,踊跃

[WebKit] JavaScriptCore解析--基础篇(三)从脚本代码到JIT编译的代码实现

前面说了一些解析.生成ByteCode直至JIT的基本概念,下面是对照JavaScriptCore源代码来大致了解它的实现. 从JS Script到Byte Code 首先说明Lexer, Parser和ByteCode的生成都是由ProgramExecutable初始化过程完成的.先在JSC的API evaluate()中会创建ProgramExecutable并指定脚本代码.然后传入Interpreter时,再透过CodeCache获取的UnlinkedProgramCodeBlock就是已