Android App 发布版本带日志的问题

本文介绍了在Android App发布时如何处理日志信息,避免将敏感的日志数据带入发布包中。传统的通过ProGuard混淆工具删除Log API调用的方法在某些情况下可能不生效。原因是Android官方默认关闭了优化步骤,导致assumenosideeffects标识无法正常工作。为了解决这个问题,可以切换到proguard-android-optimize.txt配置,但作者建议不要轻易修改SDK默认设置。因此,提出了一个更灵活的解决方案,即创建一个Log的wrapper类,根据应用的发布版本状态决定是否调用Log输出。
摘要由CSDN通过智能技术生成

我们在进行Android App 开发的时候经常会使用 Log 这个类来进行 logcat 日志输出。但是这样的输出日志,如果带入发布包内对外发布出去了,会导致程序运行信息暴露给第三方。

一般情况下,大家在网上会查到一个通过 proguard 这个混淆工具来自动删除对 Log的 api 调用的代码。

proguard_rules.pro
-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(...);
}

但是最近发现这个方法在目前的工程中不生效了,从而导致发布包依然有这个问题。在网上翻越了包括 ProGuard Usage 的一些线上资料以后,在 StackOverflow 上找到了相关的解释。

From http://pro

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值