如何用好Android Studio的logcat

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用好Android Studio的logcat相关的知识,希望对你有一定的参考价值。

logcat就是程序输出的日志
android开发调试时logcat不显示问题,网上很多解决方法,但是很多将log级别的,用法的,更多的是如何在logcat中设置filter进行log的过滤与查看,但是我遇到的问题是,模拟器怎么着都OK,但真机、手机进行开发调试的时候却看不到log信息,这是很恼人的事情(毕竟模拟器跑起来太慢了)。
  
  刚开始就用trycatch把exception打到一个alertdialog中,但是这样只能看个大概,绕这个圈子没用,最后还是在论坛上看到了解决办法,恐怕原因是rom本身没有打开log的开关
  
  问题表现:连接手机与电脑后,驱动安装正确,USB调试模式打开,在DDMS中可以看到device及其进程的信息,但是logcat中就是没有信息输出
  
  问题原因:一些rom默认关闭logcat  
  问题说明:ddms中设备名字显示为问号不影响,即adbget-serialno显示为问号不影响.  
  解决方法:  
  1.需要root权限(部分rom不需要)  
  2.打开logcat,并设置level,执行命令如下(android升级之后adb在platform-tools中,不在tools中)
  
  adbshell  
  echo1>/sys/kernel/logger/log_main/enable  
  说明:将1写入日志开关文件,1为开,0为关  
  echo2>/sys/kernel/logger/log_main/priority  
  说明:将代表level的2写入优先级文件
  
  3.重启adb,如果使用eclipse,先关闭eclipse,再重启adb,再启动eclipse  
  adbkill-server  
  adbstart-server
  
  4.此时logcat应该可以工作了,如果仍旧不工作,则更新adb  
  androidupdateadb
  
  5.重复第三步,此时logcat应该可以工作了,如果仍旧不工作,找到个人主目录下的android目录,如C:\\DocumentsandSettings\\Administrator\\.android  
  找到这个目录下的adb_usb.ini文件,其内容默认只有三行,全为注释,在后面添加一行,内容为0x12d1
  
  6.重复第三步,此时logcat应该可以工作了
参考技术A 有个小技巧,其实你可以在打印的时候加一串过滤的字符,这样就可以避免你说的这个问题,你所想看到的信息全是你自己LOG后的信息,一般企业里面都是用自己封装的LOG类,我这里也有几个封装好的LOG日志类,你如果需要的话可以直接找我要。
我使用logcat的方法是,所有自己打印的log的字符串中加上一串特定字符,比如:
log.w("xyz "+stringToLog);
所有的log前面都加"xyz "。
然后在搜索过滤框里输入xyz就行了,一般只会显示出自己打印的log。(xyz不要用java之类log中容易出现的字符串替换)。
包括在Eclipse里我也是这样用的。这样即使Filter设为No Filter也没问题。
参考技术B

好好

参考技术C 打印的时候前边自定义点字符串之类的, 然后就能很清楚的区分了

如何用android studio替换所有屏幕尺寸图像的可绘制图像?

在我的代码中,我有许多用于应用程序的图标。现在我想要更改所有大小的图标,如hdpi,xhdpi等。

如何以快捷方式更改所有尺寸的图标?请建议我。

答案

您可以使用此库使您更容易操作不同屏幕尺寸的drawable。 这是Library

您可以将高度和宽度放在SDP中,它将为所有屏幕管理自己

比如这样

<ImageView
    android:id="@+id/ivImage"
    android:layout_width="@dimen/_9sdp"
    android:layout_height="@dimen/_18sdp"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:src="@drawable/icon" />

要么

使用此代码,您可以获得运行时显示的宽度和高度

DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;

在视图中,您需要执行以下操作:

((Activity) getContext()).getWindowManager()
                         .getDefaultDisplay()
                         .getMetrics(displayMetrics);

您可以获取屏幕大小并自行管理。

另一答案

通过相同的图标名称,您有两个选择:

  1. Vector drawable:如果您有SVG图像格式,那么您可以直接在drawable文件夹中创建矢量drawable,它可以帮助您处理单个文件和多个屏幕尺寸图标。

要么

  1. 您可以使用图标生成器工具,从而拖放单个尺寸的图像,您可以获得具有多个尺寸的相同图像,然后将其替换为“在资源管理器中显示”选项
另一答案

如果要将现有图标图像转换为不同的dpi图像,可以使用以下方法。

File -> New -> Image Asset。它会打开一个如下所示的窗口。

enter image description here

  1. 在图标类型下拉列表中选择Action bar and tab icons
  2. 在资产类型中选择Image单选按钮。
  3. 在Path中提供具有透明背景的有效png图像的路径。
  4. 填写适合您的其他选项。

单击“下一步”后,将显示另一个预览窗口,“选择完成”,您的资源将导入到不同的可绘制文件夹中。

另一答案

使用此在线工具。您以良好的分辨率上传图标,该工具会导出所有必要的文件大小。

https://romannurik.github.io/AndroidAssetStudio/

以上是关于如何用好Android Studio的logcat的主要内容,如果未能解决你的问题,请参考以下文章

过滤文本,如 Android Studio/Eclipse logcat

android studio logcat视图怎么显示

如何用sdk下载android4.0

如何用android studio 查看jar包源码

Android Studio Logcat 过滤器精确标签

如何用android studio 编成app