Android 项目中打印Log的优化

1. 项目上线后 Log 的问题

在Android开发中,我们使用android.util.Log来打印日志,方便我们的开发调试。但是这些代码不想在发布后执行,我们并不想在软件发布后调试日志被其他开发者看到,现在我的方法是设置一个全局变量,标记软件为Debug模式还是Release模式。来看下代码:

public class L {

    private static final String TAG = "TangYuan";
    public static boolean DEBUG = BuildConfig.DEBUG;

    public static void d(String msg) {
        if (DEBUG){
            Log.d(TAG, msg);
        }
    }

    public static void e(String msg) {
        if (DEBUG){
            Log.e(TAG, msg);
        }
    }
}

这样打包发布之前只要改下DEBUG=false就行了,但是每次在发布之前都要手动去改这个变量,不是很方便,而且不排除开发者忘记改的情况。那么有没有更好更方便的做法呢?

2.BuildConfig.DEBUG 的妙用

好在Google为我们提供了一种新的调试机制,即BuildConfig.DEBUG。

允许开发者只在Debug模式下运行部分代码。Builds会生成一个叫做BuildConfig的类,该类包含一个名为DEBUG的常量,其常量值会依据开发者的Build类型自动设定。如此,便可以利用BuildConfig.DEBUG来实现只在Debug模式下运行的代码。
在下面的目录里会自动生成 BuildConfig 文件

这里写图片描述


  public static final boolean DEBUG = Boolean.parseBoolean("true");
  public static final String APPLICATION_ID = "com.lizi.fast_fragment";
  public static final String BUILD_TYPE = "debug";
  public static final String FLAVOR = "";
  public static final int VERSION_CODE = 1;
  public static final String VERSION_NAME = "1.0";

}

这样只需要改动一行代码就ok了

public static final boolean DEBUG = Boolean.parseBoolean("false");

3.上线前关闭调试模式

android:debuggable="false"

4.混淆日志

平时开发中大家最常使用的就是Log日志,喜欢把一些重要数据通过日志打印出来方便查看,比如用户的账户密码打印出来,如果不关闭日志打印,这在上线后就非常容易导致敏感信息泄露。
一些程序员通过监控Log,就可以知道你这个app使用的一些关键信息。
有人说,我统一设置日志开关,上线时把日志关闭不就好了吗,其实这样做也不保险,因为逆向app的第一步就是先找Log的开关,找到开关之后,把它打开,再跑一遍程序,就很容易找到隐私信息,因此建议安全性较高的app,尽量还是通过混淆把Log的所有信息去掉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android 微信支付 SDK 的对调打印主要是指在开发过程,使用 SDK 提供的接口进行支付功能的调试和输出日志信息。 对调打印的目的是为了方便开发人员在开发过程进行调试和定位问题。在使用微信支付 SDK 进行支付功能开发时,可以通过在关键代码位置添加打印语句,用于输出相关的调试信息,以便于分析和调试。 在对调打印,可以根据需要打印的信息进行选择,如订单号、支付结果、微信支付 SDK 的版本等。一般来说,在支付请求发送之前和支付结果回调之后的关键阶段打印信息较多,可以通过打印语句输出相关的请求参数和回调结果,以便于了解支付流程和排查可能出现的问题。 在使用 Android 微信支付 SDK 进行对调打印时,需要注意以下几点: 1. 确保在正确的位置插入打印语句,一般在关键代码处添加,如支付请求发送前、支付结果回调等。 2. 打印的信息要具有可读性,可以输出关键参数的值、状态信息等,便于分析和定位问题。 3. 在实际发布应用之前,需要及时去除对调打印相关的代码,以避免信息泄露和代码冗余。 总之,通过对调打印的使用,开发人员能够更方便地进行支付功能的开发和调试,及时排查问题并优化代码,提高应用的支付体验。 ### 回答2: Android微信支付SDK是一种用于在Android应用程序集成微信支付功能的开发工具包。在进行对调打印时,主要有以下几个步骤: 首先,你需要确认你的开发环境已经配置好,包括Android Studio和相关的开发工具包。接下来,在微信开放平台注册一个开发者账号,并创建一个应用,获得相应的AppID和AppSecret。 然后,你需要下载并导入微信支付SDK到你的Android项目。可以通过在项目的build.gradle文件添加相关依赖来导入SDK。然后,在你的项目创建一个用于处理支付结果的回调类。 接着,你需要在你的应用添加调起微信支付的代码。首先,你需要获取一个用于支付的预支付订单号,并根据微信支付要求对订单进行签名处理。然后,你可以使用WXAPIFactory工厂类的createWXAPI方法创建一个WXAPI对象,并将AppID注册到该对象上。 最后,在调起支付的时候,你需要构建一个PayReq对象,并将必要的支付参数设置到该对象。然后,调用WXAPI的sendReq方法,将PayReq对象发送给微信客户端进行支付。支付结果将通过之前注册的回调类返回给你的应用。 总结起来,对调打印的过程包括了注册微信开放平台账号,导入微信支付SDK,实现支付结果回调,创建并注册WXAPI对象,构建并发送PayReq对象。通过以上步骤,你的Android应用就可以使用微信支付功能了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值