Android, does the log slow down the application?

In my application, I have as many log lines as Log.i (), Log.e (), and Log.d (). I use these magazines extensively in my application.

After starting my application, if I connect the device to Eclipse, I see hundreds of log lines. My question is, does this slow down the application speed?

==============

Update

Thanks to Frank for his suggestion. I added the proposed code to proguard.cfg, then exported a new APK file. It took a long time, but finally a new APK file appeared. However, when I test it on a real device, I still see the logs.

This is my proguard.cfg:

# This is a configuration file for ProGuard. # http://proguard.sourceforge.net/index.html#manual/usage.html -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -verbose # Optimization is turned off by default. Dex does not like code run # through the ProGuard optimize and preverify steps (and performs some # of these optimizations on its own). -dontoptimize -dontpreverify # Note that if you want to enable optimization, you cannot just # include optimization flags in your own project configuration file; # instead you will need to point to the # "proguard-android-optimize.txt" file instead of this one from your # project.properties file. -keepattributes *Annotation* -keep public class com.google.vending.licensing.ILicensingService -keep public class com.android.vending.licensing.ILicensingService # For native methods, see http://proguard.sourceforge.net/manual/examples.html#native -keepclasseswithmembernames class * { native <methods>; } # keep setters in Views so that animations can still work. # see http://proguard.sourceforge.net/manual/examples.html#beans -keepclassmembers public class * extends android.view.View { void set*(***); *** get*(); } # We want to keep methods in Activity that could be used in the XML attribute onClick -keepclassmembers class * extends android.app.Activity { public void *(android.view.View); } # For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -keepclassmembers class **.R$* { public static <fields>; } # The support library contains references to newer platform versions. # Don't warn about those in case this app is linking against an older # platform version. We know about them, and they are safe. -dontwarn android.support.** # Hesam - Remove all logs -assumenosideeffects class android.util.Log { public static int v(...); public static int d(...); public static int i(...); public static int w(...); public static int e(...); } #-libraryjars /libs/gcm.jar #-libraryjars /libs/libGoogleAnalytics.jar #-libraryjars /libs/twitter4j-core-android-2.2.6.jar #-libraryjars /libs/universal-image-loader-1.5.4.jar -dontwarn javax.management.** -dontwarn java.lang.management.** -dontwarn org.apache.** -dontwarn org.slf4j.** -dontwarn org.json.* -keep class com.google.** { *; } -keep class twitter4j.** { *; } -keep class com.nostra13.** { *; } 
+4
source share
1 answer

The answer is obvious, yes.

But there is a solution, you can ask Proguard to delete the journal entries of any level that you want. Similarly, your users will not suffer from detailed logging, which they do not see in any case.

Add Proguard to your configuration:

 -assumenosideeffects class android.util.Log { public static *** d(...); public static *** v(...); public static *** i(...); public static *** w(...); public static *** e(...); public static *** wtf(...); } 

This will delete the LOG.d and LOG.v statements, which you can extend as you like.

+6
source

Source: https://habr.com/ru/post/1443932/


All Articles