您的位置:首页 > 移动开发 > Android开发

Android开发在Jni中的log打印

2017-03-25 14:58 239 查看

Android开发在Jni中的log打印

c/c++文件中的改动

在c/c++文件中加入头文件:

#include <android/log.h>


在Android.mk文件中的改动

在Android.mk文件中加入

LOCAL_LDLIBS += -llog


改动完Android.mk文件大致效果:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
setting_func.c
LOCAL_MODULE:= libsetting_func
LOCAL_MODULE_TAGS:= optional
LOCAL_C_INCLUDES := $(JNI_H_INCLUDE) \
frameworks/base/include/media

LOCAL_LDLIBS +=-ldl -llog
LOCAL_SHARED_LIBRARIES :=\
libandroid_runtime\
libnativehelper\
libcutils\
libdl\
libmedia
include $(BUILD_SHARED_LIBRARY)


注意:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)


要写在前面

定义Log函数

#define TAG "Lalala" // 这个是自定义的LOG的标识
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,TAG ,__VA_ARGS__) // 定义LOGD类型,相当于Log.d(TAG,"");
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,TAG ,__VA_ARGS__) // 定义LOGI类型,相当于Log.i(TAG,"");
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,TAG ,__VA_ARGS__) // 定义LOGW类型,相当于Log.w(TAG,"");
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,TAG ,__VA_ARGS__) // 定义LOGE类型,相当于Log.e(TAG,"");
#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL,TAG ,__VA_ARGS__) // 定义LOGF类型,相当于Log.f(TAG,"");


定义完在c中的效果大致为:

#include <jni.h>
#include "com_sniper_myfm_FmNative.h"
#include <stdio.h>
#include <unistd.h>
#include <linux/videodev2.h>
#include <fcntl.h>
#include <android/log.h>
#define TAG "setting-func"//定义自定义TAG
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,TAG,__VA_ARGS__)//相当于Java中的Log.d(TAG,"");
#define FM_DEVICE_PATH "/dev/radio0"
#define SUCCESS 1
#define FAIL 0
int fd_driver=-1;
JNIEXPORT jint JNICALL Java_com_sniper_myfm_FmNative_openDev
(JNIEnv *env, jclass jcl){
fd_driver = open(FM_DEVICE_PATH,O_RDONLY,O_NONBLOCK);
LOGD("<<<<<<<<<fd_driver: %d",fd_driver);
if(fd_driver<0){
return FAIL;
}
return SUCCESS;
}


用到哪个方法定义哪个,不用全部定义。

显示效果图



需求实现!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android android开发 jni