Android(安卓)NDK Log信息打印
16lz
2021-01-26
对于一个程序来说,什么都可以不开始,但是调试信息首先要出来,优先解决log信息.
所以在第一篇的基础上面加上在jni中添加log信息,具体操作如下:
<1> : 修改Android.mk文件,在其中添加Android的Library库进来:
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE :=durianjniLOCAL_SRC_FILES := durianJni.cLOCAL_LDLIBS := -lloginclude $(BUILD_SHARED_LIBRARY)
实际上增加一行:
LOCAL_LDLIBS := -llog
即可.
<2> : 在c程序中引用:
#include <android/log.h>#define LOG_TAG "durian"#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
<3> : 第三部重新clean一下,并且build,然后运行:
下面做一下扩展:
#define LOG_TAG "durian"#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,LOG_TAG,__VA_ARGS__)#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL,LOG_TAG,__VA_ARGS__)
程序里面使用上面的如下:
JNIEXPORT jint JNICALL Java_com_durian_jnienv_lib_DurianJni_durianAdd(JNIEnv *env, jobject jobj, jint a, jint b){int sum=(int)a+(int)b;LOGI("info : from jni log information !");LOGD("debug : from jni log information !");LOGW("warn : from jni log information !");LOGE("error : from jni log information !");return (jint)sum;}
以后就可以照着这个模板打工程的log打印出来,方便程序调试和debug.
更多相关文章
- google Android编译本地C++程序方法
- 【Android】原生安装和卸载应用
- 使用华为手机在Android(安卓)Studio上进行真机调试报install fai
- 踩坑实录 Android(安卓)Studio真机测试时 Error while Installin
- 【Android】结束活动退出程序的方法
- 安卓开发:学生信息管理小程序
- Android(安卓)Handler的使用!!!
- Android中获取应用程序(包)的大小-----PackageManager的使用(二)
- android 内存占用 分析工具