|
| 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 | + |
| 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