2016-04-14 11:52:23 yzy1226466341 阅读数 598

       本博客讲述的是android输出日志到文件中,不依赖于任何类,仅需配置读写外部存储卡的权限,可叠加输出日志文件,可区别调试模式与正式发布版本进行选择性输出。可直接在项目中使用。下面贴上代码,代码可到(LogUtils)下载,密码:hvqw。

1.申请权限

2.核心代码

2010-11-29 10:15:30 iteye_20782 阅读数 26
Android应用程序开发,调试时需要辅助日志文件中的输出信息。

一、Android应用程序调试
默认Android应用程序不能调试,(eclipse)会提示如下信息:“Application “xxx” does not have the attribute 'debuggable' set to TRUE in its manifest and cannot be debugged”

需要修改Manifest文件中的debuggable属性,使其值为true,这时才可以调试。

二、日志信息
1、输出日志信息
Android提供一个静态Log类,提供五个静态方法Log.v()(详细),Log.d()(debug),Log.i()(information),Log.w()(warning) ,Log.e()(error),用来将消息写入模拟器上的日志文件中。如果在DDMS上运行logcat可以就实时查看消息

(1)日志信息级别
• Log.v() -------------------- VERBOSE
• Log.d() -------------------- DEBUG
• Log.i() -------------------- INFO
• Log.w() -------------------- WARN
• Log.e() -------------------- ERROR
以上log的级别依次升高,DEBUG信息应当只存在于开发中,INFO, WARN,ERROR这三种log将出现在发布版本中。

(2)输出日志信息
在应用程序中添加 import android.util.Log;

使用该类的静态方法,

1. Log.d(String tag, String msg);
1. Log.i(String tag, String msg);
2. Log.w(String tag, String msg);
3. Log.e(String tag, String msg);
•其中: tag是一个标识,可以是任意字符串(一般将tag设置成一个静态常量或使用类名+方法名)用来在查看日志时提供一个筛选条件,以方便的追踪信息的输出。
• Msg 是log信息的内容。
在应用程序中使用 System.out.println();语句将信息输出到日志文件(而不是将信息输出到控制台)。

2、eclipse中查看日志
设置步骤如下:
(1)windows ==> Preferences ==> Android ==> DDMS ==> Logging Level
(设置日志级别,选中之下的将被显示,选中之上的不被显示。)
(2)windows ==> Show View ==> Android ==> LogCat
(3)显示LogCat栏目。

3、使用logcat命令行工具查看日志
logcat是Android中的一个命令行工具,可以用其得到程序的log信息。

logcat使用方法如下:

logcat [options] [filterspecs]

options包括:

• -s 设置过滤器,例如指定 '*:s'
• -f <filename> 输出到文件,默认情况是标准输出。
• -r [<kbytes>] Rotate log every kbytes. (16 if unspecified). Requires -f
• -n <count> Sets max number of rotated logs to <count>, default 4
• -v <format> 设置log的打印格式, <format> 是下面的一种:brief process tag thread raw time threadtime long
• -c 清除所有log并退出
• -d 得到所有log并退出 (不阻塞)
• -g 得到环形缓冲区的大小并退出
• -b <buffer> 请求不同的环形缓冲区 ('main' (默认), 'radio', 'events')
• -B 输出log到二进制中。
•过滤器的格式:<tag>[:priority],其中<tag>表示log的component,
priority 如下:

• V Verbose---------------------------------------Log.v()
• D Debug-----------------------------------------Log.d()
• I Info---------------------------------------------Log.i()
• W Warn-----------------------------------------Log.w()
• E Error------------------------------------------Log.e()
• F Fatal
• S Silent

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/dyufei/archive/2010/08/28/5844956.aspx
2017-12-18 20:06:39 yxtouch 阅读数 1962

1、应用背景:

        调试android recovery时,由于recovery默认的日志是存储到/cache相关文件夹下的文件中的,所以每次只能在升级完成后重启系统后才能看到相关的调试日志信息,这对调试带来很大的不变,如有的时候recovery操作失败导致系统无法启动时,无法看到相关的日志,因此这时候可以使用本文中提供的方法将相关日志从调试串口输出,直接用串口在升级过程中查看日志。

2、实现思路

实现思路比较简单,就是将原来打印日志的函数封装,然后需要时直接将日志从串口输出;

3、代码实现

(1)、日志输出

将写日志的函数直接放到一个独立的头文件中,这样需要用的文件直接包含这个头文件就行了。如下为本文中提供的头文件源码:

#ifndef _LANDSEM_RECOVERY_LOG_H
   #define _LANDSEM_RECOVERY_LOG_H

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdarg.h>
   
#define  USE_UART_DEBUG   0
#if USE_UART_DEBUG
   #define DEBUG_UART_PORT  "/dev/ttyS0"
#endif
   
static int landsem_dbg_log(const char *fmt, ...) {
   int ret;
   va_list ap;
   va_start(ap, fmt);
#if USE_UART_DEBUG
   FILE *tty_out = fopen(DEBUG_UART_PORT, "w+");
   if(NULL != tty_out)	{
	  ret = vfprintf(tty_out, fmt, ap);
	  fclose(tty_out);
	  tty_out = NULL;
   }
   else {
	   ret = vfprintf(stdout, fmt, ap);
   }
#else
   ret = vfprintf(stdout, fmt, ap);
#endif
   va_end(ap);
   return ret;
}
#endif   
需要从串口输出调试日志时仅仅需要打开宏定义USE_UART_DEBUG即可,关闭时输出到stdout中。

(2)、修改调用

替换需要输出日志的地方的代码,直接使用上面头文件中的方法打印调试日志即可。

2014-02-19 19:44:16 itas109 阅读数 2809

 

有的时候我们需要查看一些日志,但是只是在LogCat上看又不太方便。这时,我们可以把需要看的日志保存到本地查看。

具体方法如下:

打开LogCat,点击需要保存的日志,我们这里保存DEBUG,然后全选或者部分选择需要保存的条目。

点击LogCat右上角有个下三角,这时就会弹出一个菜单,在菜单的最下方有一个名为Exports Selection as  Text的菜单项,执行这个菜单项,就可以将选中的日志保存成一个文本文件。

 

2019-11-17 15:54:00 qq_27489007 阅读数 32

抛出问题:  
1.Unity调试Android的时候默认情况是build打包成apk,安装到手机运行,调试起来很不方便,如何快速在手机上运行呢?  
2.如何像unity的console一样在android手机上查看日志信息?    

一、Unity直接手机运行

其他的就不叙旧了,咱就直奔主题。  
在手机上安装Unity Remote 5 ,这是一个移动端应用程序,打开时候可以获取unity运行的游戏画面,而且可以从手机获取陀螺仪,多点触控等参数信息,所以比打包apk运行快的一匹。当然也是有缺点的。  
1.Google Play 上下载Unity Remote 5,百度搜索也是可以搜到这款应用的。安在手机上,打开看到如下:  

就像上面给的提示所说,我们下一步要做的就是

> Connect this device with a USB Cable to your computer. Press PLAY in the Unity Editor to test.
> 用USB线将设备和电脑连接起来,然后按下PLAY按钮进行测试。

然后  打开Edit > Project Setting > Editor,设置改为如下:

图中所示几个选项的作用可以参考下表:

参数名 可选项 描述
Device (None, Any Android Device) 用于用于测试的手机类型(不知为何没有iOS…)
Compression (JPEG, PNG) 手机上看到的图像其实是电脑上每一帧压缩后发送到手机上的,JPEG的画质低但性能略高,PNG画质高但性能相对较差
Resolution (Normal, Downsize) 和上面选项的作用类似,如果你想让测试过程更流畅,可以选择Downsize降低分辨率
Joystick Source (Remote, Local) 选择控制来源,Remote就是从手机上接受控制,Local就是直接在电脑上控制。

至此你直接点你Unity的Play就可以在手机上看见画面了。

那叫一个字:贼TM快,但是我在试验过程中 发现同样的代码发布出来的apk安装和这种直接运行,操作对象竟然出现了意外效果。暂时没有深究问题所在。

二、在Android stuido查看日志。

因为我的工作是Android和Unity,所以这个比较简单,打开Android Studio链接手机打开Logcat,选中对应的进程,之后删选Unity即可。

 

没有更多推荐了,返回首页