Skip to content

Commit cd037c4

Browse files
committed
优化代码命名及代码写法
优化框架使用文档及 Demo 过滤 Android 11 上面非应用的日志 新增支持设置 Logcat 默认搜索关键字 新增支持设置 Logcat 默认日志等级 修正部分手机会读取重复日志的问题
1 parent cdd3bed commit cd037c4

30 files changed

+809
-367
lines changed

HelpDoc.md

Lines changed: 226 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,226 @@
1+
# 目录
2+
3+
* [Logcat 入口配置](#logcat-入口配置)
4+
5+
* [Logcat Activity 方向配置](#logcat-activity-方向配置)
6+
7+
* [设置 Logcat 显示的日志颜色](#设置-logcat-显示的日志颜色)
8+
9+
* [设置 Logcat 默认筛选条件](#设置-logcat-默认筛选条件)
10+
11+
* [设置 Logcat 日志过滤规则](#设置-logcat-日志过滤规则)
12+
13+
* [设置显示所有应用打印的日志](#设置显示所有应用打印的日志)
14+
15+
#### Logcat 入口配置
16+
17+
* 框架默认提供了两种入口
18+
19+
* 通知栏入口
20+
21+
* 悬浮窗入口
22+
23+
* 入口默认的规则:在有通知栏权限的情况下,会优先使用通知栏入口,否则则会显示悬浮窗入口
24+
25+
* 如何修改默认的规则?可在清单文件中加入以下配置即可
26+
27+
```xml
28+
<manifest>
29+
30+
<application>
31+
32+
<!-- 悬浮窗入口 -->
33+
<meta-data
34+
android:name="LogcatWindowEntrance"
35+
android:value="false" />
36+
37+
<!-- 通知栏入口 -->
38+
<meta-data
39+
android:name="LogcatNotifyEntrance"
40+
android:value="true" />
41+
42+
</application>
43+
44+
</manifest>
45+
```
46+
47+
#### Logcat Activity 方向配置
48+
49+
* `LogcatActivity` 默认是跟随手机屏幕方向的,如果你需要固定竖屏方向,那么需要在你的清单文件中加入此配置:
50+
51+
```xml
52+
<activity
53+
android:name="com.hjq.logcat.LogcatActivity"
54+
android:configChanges="orientation|screenSize|keyboardHidden"
55+
android:launchMode="singleInstance"
56+
android:screenOrientation="portrait"
57+
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
58+
tools:node="replace" />
59+
```
60+
61+
#### 设置 Logcat 显示的日志颜色
62+
63+
* 在项目的 `values/color.xml` 中加入你喜欢的配色,例如:
64+
65+
```xml
66+
<color name="logcat_level_verbose_color">#FFBBBBBB</color>
67+
<color name="logcat_level_debug_color">#FF33B5E5</color>
68+
<color name="logcat_level_info_color">#FF99CC00</color>
69+
<color name="logcat_level_warn_color">#FFFFBB33</color>
70+
<color name="logcat_level_error_color">#FFFF4444</color>
71+
<color name="logcat_level_other_color">#FFFFFFFF</color>
72+
```
73+
74+
#### 设置 Logcat 默认筛选条件
75+
76+
* 如果要修改框架默认筛选条件,只需在清单文件中加入以下配置即可
77+
78+
```xml
79+
<manifest>
80+
81+
<application>
82+
83+
<!-- 默认搜索关键字 -->
84+
<meta-data
85+
android:name="LogcatDefaultSearchKey"
86+
android:value="MainActivity" />
87+
88+
<!-- 默认日志等级 -->
89+
<meta-data
90+
android:name="LogcatDefaultLogLevel"
91+
android:value="E" />
92+
93+
</application>
94+
95+
</manifest>
96+
```
97+
98+
#### 设置 Logcat 日志过滤规则
99+
100+
* 在项目的 `values/string.xml` 中加入你要过滤的日志 TAG,例如:
101+
102+
```xml
103+
<string-array name="logcat_filter_list" tools:ignore="ExtraTranslation">
104+
<item>ActivityThread</item>
105+
<item>InputMethodManager</item>
106+
<item>OpenGLRenderer</item>
107+
<item>VideoCapabilities</item>
108+
<item>ViewRootImpl</item>
109+
<item>Settings</item>
110+
<item>Looper</item>
111+
<item>TextView</item>
112+
<item>TypefaceUtils</item>
113+
<item>MultiDex</item>
114+
<item>AudioManager</item>
115+
<item>ConnectivityManager</item>
116+
<item>NetworkSecurityConfig</item>
117+
<item>HwPolicyFactory:</item>
118+
<item>HwWidgetFactory:</item>
119+
<item>HwApiCacheMangerEx</item>
120+
<item>HwWechatOptimizeImpl</item>
121+
<item>HwSplineOverScrollerExImpl</item>
122+
<item>HwAppInnerBoostImpl</item>
123+
<item>HwCustConnectivityManagerImpl</item>
124+
<item>HwApsImpl</item>
125+
<item>HwPhoneWindow</item>
126+
<item>HwAutofillHelper</item>
127+
<item>hwbr_engine_mainprocess</item>
128+
<item>hwbr_engine_hwbr_event</item>
129+
<item>hwbr_engine_PathUtils</item>
130+
<item>hwbr_engine_AwContents</item>
131+
<item>hwbr_engine_cr_IMM</item>
132+
<item>hwbr_engine_LibraryLoader</item>
133+
<item>hwbr_engine_BrowserStartup</item>
134+
<item>hwbr_engine_cr_WebContentsImpl</item>
135+
<item>CrashReport</item>
136+
<item>CrashReportInfo</item>
137+
<item>CrashReport-Native</item>
138+
<item>LeakCanary</item>
139+
<item>Timeline</item>
140+
<item>AssistStructure</item>
141+
<item>EgretLoader</item>
142+
<item>OverScrollerOptimization</item>
143+
<item>HiTouch_PressGestureDetector</item>
144+
<item>HiTouch_HiTouchSensor</item>
145+
<item>FLTAG_SFM</item>
146+
<item>FLTAG_FM</item>
147+
<item>libEGL</item>
148+
<item>AwareLog</item>
149+
<item>AwareBitmapCacher</item>
150+
<item>AwareAppScheduleManager</item>
151+
<item>FeatureFactory</item>
152+
<item>WebViewFactory</item>
153+
<item>ConfigStore</item>
154+
<item>mali_winsys</item>
155+
<item>ZrHung.AppEyeUiProbe</item>
156+
<item>chatty</item>
157+
<item>stylus</item>
158+
<item>libc</item>
159+
<item>chromium</item>
160+
<item>Perf</item>
161+
<item>FeatureParser</item>
162+
<item>Binder:intercep</item>
163+
<item>cr_LibraryLoader</item>
164+
<item>cr_BrowserStartup</item>
165+
<item>DecorView</item>
166+
<item>DecorView[]</item>
167+
<item>ForceDarkHelper</item>
168+
<item>skia</item>
169+
<item>AdrenoGLES-0</item>
170+
<item>ViewContentFactory</item>
171+
<item>MiuiFrameworkFactory</item>
172+
<item>MIUIInput</item>
173+
<item>cr_media</item>
174+
<item>cr_CachingUmaRecorder</item>
175+
<item>TetheringManager</item>
176+
<item>MiuiFreeDragHelper</item>
177+
<item>MiuiFreeDragImpl</item>
178+
<item>ContentProviderMonitor</item>
179+
<item>ContentCatcher</item>
180+
<item>ApplicationLoaders</item>
181+
<item>RenderInspector</item>
182+
</string-array>
183+
```
184+
185+
#### 设置显示所有应用打印的日志
186+
187+
* 首先有一点,App 本身是无法获取其他 App 日志的
188+
189+
* 如果你有这个需要,也不是不能实现,在电脑端输入以下 adb 命令
190+
191+
```text
192+
// 给指定的应用授予读取 Log 的权限,com.hjq.logcat.demo 需要改成你的包名
193+
adb shell pm grant com.hjq.logcat.demo android.permission.READ_LOGS
194+
```
195+
196+
* 重启应用即可生效(有的手机会自动杀死进程),授权过后除非应用被卸载,否则不会消失
197+
198+
* 如果执行上面的命令失败了,并且提示以下信息
199+
200+
```text
201+
Exception occurred while executing 'grant':
202+
java.lang.SecurityException: grantRuntimePermission:
203+
Neither user 2000 nor current process has android.permission.GRANT_RUNTIME_PERMISSIONS.
204+
```
205+
206+
* 则需要前往开发者选项中开启 `USB 调试(安全)` 的设置选项
207+
208+
![](picture/usb_debugging_security_setting.jpg)
209+
210+
* 开启之后,如果还是一样的提示,证明没有生效,可以尝试以下操作
211+
212+
* 等待 5 分钟
213+
214+
* 重新拔插一下手机
215+
216+
* 检查 `USB 安装` 选项有没有开启
217+
218+
* 重新打开 `USB 调试(安全)`选项
219+
220+
* 重启一下 cmd 命令行终端
221+
222+
* 重启一下手机再试
223+
224+
* 换一台手机再试
225+
226+
* 作者建议如果没有这个需求,则不需要开启此项功能,因为这样会导致 Logcat 显示的日志变多,会增加日志的复杂度和查找的难度

0 commit comments

Comments
 (0)