Android

个人Android学习总结


gradle配置日志打印信息

<p>gradle中配置正式测试打印框架:</p> <p>我们知道在Android开发过程中为了调试代码经常在代码中添加一些日志信息,但是正式环境是不需要这些日志信息的,而且过得日志打印操作也会对App的性能有影响。</p> <p>一个比较好的办法就是在App的测试环境中打印日志信息,在正式环境中屏蔽日志信息,那么如何实现呢?通过代码么?通过代码也是可以实现的,但是这样显得太原始了,其实Android studio的gradle插件已经提供了这样的功能。</p> <p>那么如何通过gradle配置日志打印信息呢?</p> <pre><code class="language-java">buildTypes { debug { // 显示Log buildConfigField &amp;quot;boolean&amp;quot;, &amp;quot;LOG_DEBUG&amp;quot;, &amp;quot;true&amp;quot; //混淆 minifyEnabled false //Zipalign优化 zipAlignEnabled true // 移除无用的resource文件 shrinkResources true //加载默认混淆配置文件 proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro' //签名 signingConfig signingConfigs.debug } release { // 不显示Log buildConfigField &amp;quot;boolean&amp;quot;, &amp;quot;LOG_DEBUG&amp;quot;, &amp;quot;false&amp;quot; //混淆 minifyEnabled true //Zipalign优化 zipAlignEnabled true // 移除无用的resource文件 shrinkResources true //加载默认混淆配置文件 proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro' //签名 signingConfig signingConfigs.relealse } }</code></pre> <p>在Android studio的module的gradle配置文件中,在buildTypes节点下可以配置自定义参数,这里我们在debug版本中定义LOG_DEBUG为true,在release版本中定义LOG_DEBUG为false。这样在编译的时候就会在gradle的编译类BuildConfig中生成成员变量:</p> <p>LOG_DEBUG 1 若是正式环境则LOG_DEBUG的值为false</p> <p>若是测试环境则LOG_DEBUG的值为true</p> <p>所以这时候可以通过LOG_DEBUG变量的值控制日志是否打印。</p> <pre><code class="language-java">/** * 在Application的onCreate方法中初始化MLog日志框架 * 并根据apk环境判断是否显示日志信息 */ if (BuildConfig.LOG_DEBUG == true) { MLog.init(true); } else { MLog.init(false); }</code></pre> <p>我们实现的MLog框架的init方法</p> <p>若传入的值为true,则表示执行日志打印操作,也就是可以显示日志信息。</p> <p>若传入的值为false,则表示不执行日志打印操作,也就是不显示日志信息。</p> <p>这样我们就实现了在测试环境打印日志,在正式环境中屏蔽日志的操作。</p>

页面列表

ITEM_HTML