我知道在应用程序发布时加快速度并消除CPU浪费,我只需使用proguard.cfg
导出它包含:
-assumenosideeffects class android.util.Log {
public static *** v(...);
public static *** i(...);
public static *** d(...);
public static *** w(...);
public static *** e(...);
}
但是......如果为了方便地最小化Debug和Release版本之间的混乱(在安装另一个版本之前总是需要完全卸载一个),我想总是运行调试版本,没有通过USB和Settings => Applications => Development => USB debugging
未选中进行连接,是否执行任何Log.v(),Log.i()等等?
我无法通过USB连接DDMS来自行检查...所以,谢谢你的任何提示。
答案 0 :(得分:2)
它仍然会将您的日志消息写入内部日志缓冲区。
市场上有一些可以显示此缓冲区的应用程序,其中一个称为Android系统信息,或类似的东西,AFAIR。
答案 1 :(得分:1)
根据ProGuard手册(http://proguard.sourceforge.net/index.html#/manual/usage.html):
-assumenosideeffects class_specification
指定没有任何副作用的方法(除了可能返回值)。在优化步骤中,如果ProGuard可以确定不使用返回值,则会删除对此类方法的调用。请注意,ProGuard将分析您的程序代码以自动查找此类方法。它不会分析库代码,因此该选项对此有用。例如,您可以指定方法System.currentTimeMillis(),以便删除对它的任何空闲调用。请注意,ProGuard将该选项应用于指定方法的整个层次结构。仅适用于优化时。一般来说,做出假设可能是危险的;您可以轻松破坏已处理的代码。如果您知道自己在做什么,请仅使用此选项!
因此,在APK中甚至不存在对Log.v(),Log.i()等的调用。