Принимает ли Log.x () какой-либо процессор, если отладка по USB не проверена? - PullRequest
2 голосов
/ 16 октября 2011

Я знаю, что для ускорения работы и устранения потерь ресурсов процессора при выпуске приложения я могу просто экспортировать его с proguard.cfg, содержащим:

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

Но ... если в целях удобной минимизации жонглирования между версией отладки и выпуском (которая всегда требует полной деинсталляции одной перед установкой другой), я хочу всегда запускать отладочную версию, без подключения через USB и без проверки Settings => Applications => Development => USB debugging , выполняется ли какое-либо из Log.v (), Log.i () и т. д. вообще?

Я не могу подключить DDMS через USB, чтобы проверить это сам ... так что, спасибо за любой совет.

Ответы [ 2 ]

2 голосов
/ 16 октября 2011

Он по-прежнему будет записывать ваше сообщение журнала во внутренний буфер журнала.

И на Маркете есть несколько приложений, которые могут отображать этот буфер, одно из них называется Системная информация Android или что-то в этом роде, AFAIR.

1 голос
/ 16 октября 2011

Согласно руководству ProGuard (http://proguard.sourceforge.net/index.html#/manual/usage.html):

-assumenosideeffects class_specification

Определяет методы, которые не имеют побочных эффектов (кроме, может быть, возврата значения). На этапе оптимизации ProGuard удалит вызовы таких методов, если сможет определить, что возвращаемые значения не используются. Обратите внимание, что ProGuard проанализирует код вашей программы, чтобы автоматически найти такие методы. Он не будет анализировать библиотечный код, для которого эта опция может быть полезна. Например, вы можете указать метод System.currentTimeMillis (), чтобы любые неактивные вызовы к нему были удалены. Обратите внимание, что ProGuard применяет эту опцию ко всей иерархии указанных методов. Применяется только при оптимизации. В общем, предположения могут быть опасными; Вы можете легко сломать обработанный код. Используйте эту опцию, только если вы знаете, что делаете!

Таким образом, вызовы Log.v (), Log.i () и т. Д. Даже не существуют в APK.

...