永发信息网

android 怎样禁止禁止打印日志

答案:2  悬赏:80  手机版
解决时间 2021-02-26 02:23
  • 提问者网友:爱了却不能说
  • 2021-02-25 13:04
android 怎样禁止禁止打印日志
最佳答案
  • 五星知识达人网友:天凉才是好个秋
  • 2021-02-25 13:58
2)配置proguard-------修改proguard配置文件,
如:我的配置文件是:proguard-project.txt
配置为:
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}

-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}

-dontwarn android.support.**

-keepclassmembers class **.R$* {
public static ;
}
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String,int);
public static int v(...);
public static int i(...);
public static int w(...);
public static int d(...);
public static int e(...);
}

3)导出关闭日志的apk
proguard,在导出apk的时候才会优化代码,生成优化后的apk。(完成代码混淆也是在导出apk,proguard将代码混淆后生成apk)
通过如上两个步骤,配置project.properties文件和proguard.properties文件;那么项目就配置好了。可以直接导出签名apk,该apk不会输出日志,我们用LogCat是看不到该apk的日志。

assumenosideeffects

assumenosideeffects,proguard 配置文件里的参数。assume no side effects;假定无效;该属性也就是标识无效代码。我们就是通过这个参数来让proguard删除日志代码。
assumenosideeffects的官方解释:
In the optimization step, ProGuard will then remove calls to such methods, if it can determine that the return values aren't used.ProGuard will analyze your program code to find such methods automatically.It will not analyze library code, for which this option can therefore be useful.
In general, making assumptions can be dangerous; you can easily break the processed code. Only use this option if you know what you're doing!

如下:
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int v(...);
public static int i(...);
public static int w(...);
public static int d(...);
public static int e(...);
}
使用这个配置时,一定要注意-dontoptimize,配置。
don‘t optimize 不要优化;将会关闭优化,导致日志语句不会被优化掉。所以不能有这个配置
全部回答
  • 1楼网友:由着我着迷
  • 2021-02-25 14:53
1、常规的操作我们是创建log管理类来管理log日志打印 2、通过 配置gradle buildconfigfield("boolean", "enablelog", "false")来进行管理 第一种方法就不在演示了。在这里只做下第二种效果的设置,在此之前简单的了解下buildconfigfield 属性 buildconfigfield(string type,string name,string value);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯