And*_*Eve 50 android release logcat android-logcat google-play
在将应用程序发布到市场之前关闭我自己的应用程序的LogCat输出是很简单的.我也知道如何根据标签和/或id有选择地过滤LogCat消息,以便我自己调试.
但是现在我对一些可能更难的事情感兴趣(也许是不可能的?):禁用所有LogCat输出,包括来自第三方服务(如TtsService,GoogleLoginService等)的输出.
这可能吗?
进一步澄清:我对自己过滤消息不感兴趣.对于从Android电子市场下载我的应用程序的用户,我很感兴趣禁用第三方邮件.这可能吗?
Dav*_*unt 186
通过告诉ProGuard假设没有问题,您可以使用ProGuard完全删除任何未使用返回值的行.
以下proguard.cfg块指示删除Log.d,Log.v和Log.i调用.
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** w(...);
public static *** v(...);
public static *** i(...);
}
Run Code Online (Sandbox Code Playgroud)
最终结果是这些日志行不在您的发行版apk中,因此任何具有logcat的用户都不会看到d/v/i日志.
Win*_*tet 10
如果你不使用proguard,你必须自己管理日志,并在清单文件中make dubuggable false
<application
android:name="MyApplication"
android:icon="@drawable/gift"
android:label="@string/app_name" android:debuggable="@bool/build_log">
Run Code Online (Sandbox Code Playgroud)
这是我的自定义日志类
public class Lol {
public static final boolean ENABLE_LOG = true & MyApplication.sDebug;
private static final boolean DEBUG = true & ENABLE_LOG;
private static final boolean VERBOSE = true & ENABLE_LOG;
private static final boolean TEMP = true & ENABLE_LOG;
private static final boolean WARNING = true & ENABLE_LOG;
private static final boolean INFO = true & ENABLE_LOG;
private static final boolean ERROR = true & ENABLE_LOG;
public static void obvious(String tag, String msg) {
if (DEBUG) {
msg = "*********************************\n" + msg
+ "\n*********************************";
Log.d(tag, msg);
}
}
public static void d(String tag, String msg) {
if (DEBUG)
Log.d(tag, msg);
}
public static void d(boolean bool, String tag, String msg) {
if (TEMP&bool)
Log.d(tag, msg);
}
public static void i(String tag, String msg) {
if (INFO)
Log.i(tag, msg);
}
public static void e(String tag, String msg) {
if (ERROR)
Log.e(tag, msg);
}
public static void e(boolean bool, String tag, String msg) {
if (TEMP&bool)
Log.e(tag, msg);
}
public static void v(String tag, String msg) {
if (VERBOSE)
Log.v(tag, msg);
}
public static void w(String tag, String msg) {
if (WARNING)
Log.w(tag, msg);
}
public static String getStackTraceString(Exception e) {
return Log.getStackTraceString(e);
}
public static void w(String tag, String msg, Exception e) {
if (WARNING)
Log.w(tag, msg,e);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36682 次 |
| 最近记录: |