Android Java层,Native层,Lib层打印Log简介
来源:互联网 发布:搞怪的拍照软件 编辑:程序博客网 时间:2024/05/02 02:23
说明: 这里我根据个人工作情况说明在各个层打印log。如有问题欢迎拍砖。
1. Java层打印log。
- 这个比较简单Android有封装好的Log.java, 可以使用。
例如:
Log.d(String Tag, String msg);
个人习惯: 单独写一个类包装一下:MLog.java:
import android.util.Log;public class MLog { public final static boolean DEBUG = true; public static void d(String tag, String msg) { if (DEBUG) { Log.d(tag, msg); } } ...}
2. Native 层打印log。
网络上很多资料:http://stackoverflow.com/questions/12159316/logging-values-of-variables-in-android-native-ndk
步骤如下:
Android.mk 中添加:
LOCAL_LDLIBS :=-llog
- 在需要打印的log的地方使用:
#include <android/log.h> #define TAG "DroidMage" // 这个是自定义的LOG的标识 #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, TAG, __VA_ARGS__) // 定义LOGD类型 xxx_function() { LOGD("%s hello world", "MSG"); }
- NOTE: 这只是对__android_log_print() 函数做了包装而已 原型如下:
/** * int __android_log_print(int prio, const char *tag, const char *fmt, ...) * * ANDROID_LOG_DEBUG : 是在头文件定义的log level,类似与java层Log.d()打印Debug信息。 * tag : char * 类型的字符串。 * format : char* 格式化的字符串 */ // 例子: char * tag = "DroidMage"; char * format = "%s"; char * msg = "This is for test!"; __android_log_print(ANDROID_LOG_DEBUG, tag, format, msg);
- Android 中有 < cutils/log.h> 做好了封装:
#define LOG_TAG DroidMage //一定要定义,原因是< log/log.h> 做了封装,没有定义则未NULL。xxx_func() { //log 的Tag就是所定义LOG_TAG LOGD("%s", msg);}
3. bionic层打印log(笔者做过系统开发的工作,有时需要调试lib层)
- 参考源码:”/bionic/libc/bionic/private/libc_logging.cpp”
#include "private/libc_logging.h"xxx_function() { //ANDROID_LOG_DEBUG: int 类型, 定义log level, 参考"/bionic/libc/bionic/private/libc_logging.h" 定义。 __libc_format_log(ANDROID_LOG_DEBUG, tag, "%s", msg);}
未完待续。。。
0 0
- Android Java层,Native层,Lib层打印Log简介
- Android Lib层打印log之------bionic库打印log
- Android Lib层打印log之------bionic库打印log
- Android Native层log经验总结
- Android c/c++层打印log信息和java层打印log信息
- Android c/c++层打印log信息
- c/c++层log打印
- Android系统Java层访问Native层函数
- Android------Binder java层如何与native层交互
- Android消息机制,从Java层到Native层剖析
- Android在Native层输出Log到本地文件
- Android jni 开发中C/C++层打印Log信息
- 在android native层使用logcat打印消息
- android 中native 层的打印堆栈(c++)
- android native层进程通信
- android消息机制 java层简介
- RIL层相关log打印及分析!
- ndk_stack打印native层崩溃堆栈
- 敌兵布阵 hd 1166
- SLF4j——源码阅读
- 【笔记】PMBOK第11章项目风险管理
- Shape File Selfies in ggplot2
- Reservoir Sampling - 蓄水池抽样
- Android Java层,Native层,Lib层打印Log简介
- React.js读书与总结:《react-tutorial》
- 杭电-1599 find the mincost route(最小环有向图)
- 一级缓存和二级缓存区别
- IPC
- 利用keytool、openssl生成证书文件
- Spring-SpringMVC-Hibernate在IntelliJ与Maven的环境下搭建
- 【MySQL】数据类型&时间戳&主键&外键&索引
- 8条面向对象的设计原则