当前位置: 首页 > news >正文

海淀网站建设公司百度百科提交入口

海淀网站建设公司,百度百科提交入口,固原市建设局网站,怎么推广公司在开发Android一些应用或是链接库, 在程序代码中埋一些log是一定有需要的, 因为谁也无法保证自己所写出来的程序一定没有问题, 而log机制正是用来追踪bug途径的一种常用的方法. 在andorid中提供了logcat的机制来作log的目的, 在javalayer有logcat class可以用,哪在nativelayer呢…

在开发Android一些应用或是链接库, 在程序代码中埋一些log是一定有需要的, 因为谁也无法保证自己所写出来的程序一定没有问题, 而log机制正是用来追踪bug途径的一种常用的方法. 在andorid中提供了logcat的机制来作log的目的, 在javalayer有logcat class可以用,哪在nativelayer呢? 从android platform source code中不难发现, 其实在nativelayer也有一些跟logcat相关的log用法. 以下就从目前的aosp的source code中整理出来的log用法.

Header system/core/include/cutils/log.h
Library libcutils.so
Example 1. add shared lib to LOCAL_SHARED_LIBRARIES in Android.mk
LOCAL_SHARED_LIBRARIES += libcutils
2. add log define and include the header file in the top of the source file.
#define LOG_NDEBUG 0
#define LOG_TAG "XXX"
#include <cutils/log.h>
3. Use the function as below to print log in logcat.
ALOGV
ALOGD
ALOGI
ALOGW
ALOGE

Header frameworks/native/include/utils/Log.h
Library libutils.so
Example 1. add shared lib to LOCAL_SHARED_LIBRARIES in Android.mk
LOCAL_SHARED_LIBRARIES += libutils
2. add log define and include the header file in the top of the source file.
#define LOG_NDEBUG 0
#define LOG_TAG "XXX"
#include <utils/Log.h>
3. Use the function as below to print log in logcat.
ALOGV
ALOGD
ALOGI
ALOGW
ALOGE

从这里会发现, 第一个跟第二个用法除了link的sharedlibrary 和 include的header file不一样之外, 其他的logfunction 都一样. 其实这个原因很明显就是android的log机制重构过,libutils.so 提供的log function 是比较早期的,后来多了一个新的libcutils.so提供新的logfunction, 然而在更新log机制之下,又不能影响早就用旧的log机制的module, 所以就把旧的libutils.so跟新的libcutils.so作结合, 始其使用旧log机制可以导到新的log机制.

Header system/core/include/android/log.h
Library None
Example 1. Define customize Log tag in the top of the source file.
<span style="white-space:pre"> </span>#define LOG_XXX_TAG "XXX"
2. Define customize Log function by __android_log_print
<span style="white-space:pre"> </span>#define LOGV(...) __android_log_print( ANDROID_LOG_VERBOSE, LOG_XXX_TAG, __VA_ARGS__ )
<span style="white-space:pre"> </span>#define LOGD(...) __android_log_print( ANDROID_LOG_DEBUG, LOG_XXX_TAG, __VA_ARGS__ )
<span style="white-space:pre"> </span>#define LOGI(...) __android_log_print( ANDROID_LOG_INFO, LOG_XXX_TAG, __VA_ARGS__ )
<span style="white-space:pre"> </span>#define LOGW(...) __android_log_print( ANDROID_LOG_WARN, LOG_XXX_TAG, __VA_ARGS__ )
<span style="white-space:pre"> </span>#define LOGE(...) __android_log_print( ANDROID_LOG_ERROR, LOG_XXX_TAG, __VA_ARGS__ )

最后一个用法跟前两个的用法不一样的地方是Log tag可以自己define, 而前两个的Logtag只能define LOG_TAG 以及一定要defineLOG_NDEBUG 0, 这样加入的log function才有作用.说白点, 第三种用法比较不会被制约化.自己的log自己作,log的开关控制自己定. 优点是客制化佳, 缺点是不统一.

http://www.yayakq.cn/news/211457/

相关文章:

  • 校园网站建设方案书使用php的大型网站
  • 网站备案vpn注销wdcp 修改默认网站
  • 专业3合1网站建设电话中国电商平台排行
  • 地方门户网站如何盈利wordpress网站同步插件
  • 信息手机网站模板下载软件网站主页设计教程
  • 可以打开任何网站的软件东莞市网站建设品牌
  • 网站建设论文3000字全国大学生职业生涯规划大赛官网
  • 中小企业网站制作模板网站添加微信分享代码
  • 青浦区网站建设费用什么是ip地址和域名
  • 黑龙江 网站开发网络营销的作用
  • 免备案网站建设关于公路建设的网站
  • 湛江建设企业网站深圳产品网络推广
  • 买了个服务器 怎么做网站建网站需要多少钱选苏州聚尚网络
  • 网站开发考试题网站开发需要解决的问题
  • 网站制作可以询价么郑州一建集团有限公司电话
  • 网站页面管理网络营销第2版课后答案
  • 手机网站建设计注册域名后网站建设
  • 古楼角网站建设网站建设公司哪好
  • 产品线上推广方式有哪些广州seo推广优化
  • 学做面食最好的网站顺德大良营销网站建设
  • 服务器ip做网站外包app公司不给源代码
  • 温州网站建设icp备模板下载网站什么好
  • 怎样建设个人网站网站推广双鼎
  • 什么类型的网站开发比较困难成都最新的防疫通告今天
  • 福建网站建设费用wordpress标签后多了一个()
  • 个人网站开发与设计摘要wordpress多城市子站
  • 丝足网站的建设wordpress 自动博客
  • 江苏做家纺的公司网站建筑效果图网站有哪些
  • 小网站推荐一个外贸 网站 源码
  • 建设部网站如何下载规范 标准如何让wordpress百度霸屏