Desactivar LogCat Salida COMPLETAMENTE en la versión de Android app?
Cerrar la salida de LogCat de mi propia aplicación antes de lanzar una aplicación al mercado es sencillo. También sé cómo filtrar selectivamente el mensaje de LogCat por etiqueta y / o id para mi propia conveniencia de depuración.
Pero ahora estoy interesado en algo que puede ser mucho más difícil (tal vez imposible?): Deshabilitar todos los resultados de LogCat, incluyendo y especialmente los que vienen de servicios de terceros como TtsService, GoogleLoginService, etc
- Mensajes de registro processIncoming, handlePacket, sendBufferedRequest se repite un LOT - android
- ¿Esta advertencia es causada por mi aplicación? - "Las intenciones implícitas con startService no son seguras"
- Explicación para "Scoller runner", se transmite a través de LogCat
- Habilitar mensajes de registro de dispositivo real en Logcat
- Nombre del paquete no mostrado en Logcat en ICS
es posible?
Para aclarar más: No estoy interesado en filtrar mensajes por mí mismo. Me interesa más desactivar los mensajes de terceros para quien descargue mi aplicación del Android Market. es posible?
- Logcat no puede detectar nombres de aplicaciones o paquetes
- Android Studio falta excepción stacktrace en Logcat
- ¿Por qué tengo "Setting airplane_mode_on se ha movido de android.provider.Settings.System " en el logcat cuando mi aplicación no tiene nada que ver con eso?
- ¿Deshabilitar la salida de LogCat en la versión apk?
- ¿Cómo filtrar el logcat de Android por aplicación?
- Ver android logcat sin eclipse
- Generación de claves RSA en Android en formato PKCS # 1 en Android
- Mostrar Logcat en Terminal?
Puede utilizar ProGuard para eliminar completamente cualquier línea donde no se utilice un valor de retorno, diciéndole a ProGuard que asuma que no habrá problemas.
El siguiente proguard.cfg chunk instruye para quitar las llamadas Log.d, Log.v y Log.i.
-assumenosideeffects class android.util.Log { public static *** d(...); public static *** w(...); public static *** v(...); public static *** i(...); }
El resultado final es que estas líneas de registro no están en su release apk, y por lo tanto cualquier usuario con logcat no verá los registros de d / v / i.
Si no usas proguard, tienes que administrar el registro tú mismo y en el archivo de manifiesto hacer dubuggable false
<application android:name="MyApplication" android:icon="@drawable/gift" android:label="@string/app_name" android:debuggable="@bool/build_log">
Aquí mi clase de registro personalizada
public class Lol { public static final boolean ENABLE_LOG = true & MyApplication.sDebug; private static final boolean DEBUG = true & ENABLE_LOG; private static final boolean VERBOSE = true & ENABLE_LOG; private static final boolean TEMP = true & ENABLE_LOG; private static final boolean WARNING = true & ENABLE_LOG; private static final boolean INFO = true & ENABLE_LOG; private static final boolean ERROR = true & ENABLE_LOG; public static void obvious(String tag, String msg) { if (DEBUG) { msg = "*********************************\n" + msg + "\n*********************************"; Log.d(tag, msg); } } public static void d(String tag, String msg) { if (DEBUG) Log.d(tag, msg); } public static void d(boolean bool, String tag, String msg) { if (TEMP&bool) Log.d(tag, msg); } public static void i(String tag, String msg) { if (INFO) Log.i(tag, msg); } public static void e(String tag, String msg) { if (ERROR) Log.e(tag, msg); } public static void e(boolean bool, String tag, String msg) { if (TEMP&bool) Log.e(tag, msg); } public static void v(String tag, String msg) { if (VERBOSE) Log.v(tag, msg); } public static void w(String tag, String msg) { if (WARNING) Log.w(tag, msg); } public static String getStackTraceString(Exception e) { return Log.getStackTraceString(e); } public static void w(String tag, String msg, Exception e) { if (WARNING) Log.w(tag, msg,e); } }
La gran respuesta proporcionada por David Caunt no parece funcionar para las reglas definidas en proguard-android-optimize.txt
.
En lugar de utilizar el comodín ***
, las versiones actuales de ProGuard parecen esperar el parámetro de retorno del tipo de calificador:
-assumenosideeffects class android.util.Log { public static int d(...); public static int w(...); public static int v(...); public static int i(...); public static int wtf(...); }
- Visión por ordenador – filtración de cascos convexos y defectos de convexidad con OpenCV
- No se puede ver el árbol de dependencias con gradlew OR gradle