如何用好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);
您可以获取屏幕大小并自行管理。
另一答案
通过相同的图标名称,您有两个选择:
- Vector drawable:如果您有SVG图像格式,那么您可以直接在drawable文件夹中创建矢量drawable,它可以帮助您处理单个文件和多个屏幕尺寸图标。
要么
- 您可以使用图标生成器工具,从而拖放单个尺寸的图像,您可以获得具有多个尺寸的相同图像,然后将其替换为“在资源管理器中显示”选项
另一答案
如果要将现有图标图像转换为不同的dpi图像,可以使用以下方法。
去File -> New -> Image Asset
。它会打开一个如下所示的窗口。
- 在图标类型下拉列表中选择
Action bar and tab icons
。 - 在资产类型中选择
Image
单选按钮。 - 在Path中提供具有透明背景的有效png图像的路径。
- 填写适合您的其他选项。
单击“下一步”后,将显示另一个预览窗口,“选择完成”,您的资源将导入到不同的可绘制文件夹中。
另一答案
使用此在线工具。您以良好的分辨率上传图标,该工具会导出所有必要的文件大小。
https://romannurik.github.io/AndroidAssetStudio/
以上是关于如何用好Android Studio的logcat的主要内容,如果未能解决你的问题,请参考以下文章