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 字符串然后打印(转换方式看前文)。
版权声明:本文为博主原创文章,未经博主允许不得转载。若有错误地方,还望批评指正,不胜感激。
NDK开发之日志打印的更多相关文章
- NDK开发之访问域
Java有两类域,实例域和静态域.类的每个实例都有自己的实例域副本,而一个类的所有实例共享一个静态域(Java SE基础). JNI提供了相应的函数来访问这两类域,总体步骤是这样的: 1.通过对象引用 ...
- Android SDK NDK开发总结
描述:http://talent.baidu.com/external/baidu/index.html#/jobDetail/2/1237247043 android studio实现Jni(C/C ...
- Android NDK开发初识
神秘的Android NDK开发往往众多程序员感到兴奋,但又不知它为何物,由于近期开发应用时,为了是开发的.apk文件不被他人解读(反编译),查阅了很多资料,其中有提到使用NDK开发,怀着好奇的心理, ...
- NDK开发之一
2015.07.22 Wiki_Tree: --NDK开发: --NDK特征: --MK文件编写规则: NDK开发: Ndk-build编译时会生成的两个同名的so库,位于不同的目录/project ...
- Android Studio中JNI程序的单步调试和日志打印
近日有个算法(检测碰撞)需要用C++实现,目的是IOS和ANDROID中共享同一段程序. 下面说说android调用这段程序过程中遇到的一些事情.(过程中网上搜索了一些相关文章,大部分说的是eclip ...
- NDK开发—基础知识实战Demo
简介 前面写了几篇NDK相关的文章: NDK开发-简介&环境搭建(Eclipse,Android Studio) NDK开发-Android Studio+gradle-experimenta ...
- NDK开发-零散知识点整理
JavaVM 标准Java平台下,每一个Process可以产生很多JavaVM对象,但在Android平台上,每一个Process只能产生一个Dalvik VM对象,也就是说在Android进程中是通 ...
- Android之NDK开发(转)
Android之NDK开发 一.NDK产生的背景 Android平台从诞生起,就已经支持C.C++开发.众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第 ...
- 【NDK开发】android-ndk r10环境搭建
1)打开Android开发者的官网http://developer.android.com/找到Develop点击.如果页面打不开,通过代理来访问. 2)进入后再点击Tools 3)进入后在左侧找到N ...
随机推荐
- 李洪强漫谈iOS开发[C语言-031]-逻辑短路
- 编写优质嵌入式C程序
前言:这是一年前我为公司内部写的一个文档,旨在向年轻的嵌入式软件工程师们介绍如何在裸机环境下编写优质嵌入式C程序.感觉是有一定的参考价值,所以拿出来分享,抛砖引玉. 转载请注明出处:http://bl ...
- 利用TEA算法进行数据加密
TEA(Tiny Encryption Algorithm)是一种小型的对称加密解密算法,最初是由剑桥计算机实验室的 David Wheeler 和 Roger Needham 在 1994 年设计. ...
- 【Xamarin挖墙脚系列:多窗口之间的导航】
原文:[Xamarin挖墙脚系列:多窗口之间的导航] 在Android中:Intent对象,通知松散耦合的Activity等组件 在IOS中:Segue对象连接视图 <button opaque ...
- PHP curl传输文件的版本兼容性
/** * 存储文件到远程服务器 * * @param string $filePath * 文件绝对路径 * @param string $fileSaveUrl * 存储的远程目标地址 * @pa ...
- bzoj1023
研究了一下仙人掌首先,仙人掌虽然不是树,但却有很强的树的既视感如果把每个环都看做一个点,那么他就是一棵树当然这不能直接缩环,因为环和环可以有一个交点如果是树,求直径都会做,令f[i]表示i到子树的最长 ...
- Node v4.1.1
Installing Node.js via package manager curl --silent --location https://deb.nodesource.com/setup_4.x ...
- java基于xml配置的通用excel单表数据导入组件(二、xml配置文件解析加载)
1.BN_ImportExcel.java 对应xml主节点属性 package XXXXX.manage.importexcel; import java.io.Serializable; impo ...
- [C#]网络编程系列专题二:HTTP协议详解
转自:http://www.cnblogs.com/zhili/archive/2012/08/18/2634475.html 我们在用Asp.net技术开发Web应用程序后,当用户在浏览器输入一个网 ...
- struts2错误:The Struts dispatcher cannot be found.
struts2错误:The Struts dispatcher cannot be found. The Struts dispatcher cannot be found. This is usua ...