2010-12-15 10 views
11

Estoy esperando ansiosamente el lanzamiento de código abierto de StrictMode para la continuación de nuestro desarrollo de plataforma. La muestra en el Android blog entry sugiere que rodea a la llama con StrictModeDefinición de DEVELOPER_MODE para StrictMode

if (DEVELOPER_MODE) { 
    ... 
} 

Para el desarrollo SDK, yo esperaría que esta constante por definir localmente por cada aplicación. Sin embargo, para el desarrollo de la plataforma, ¿es la mejor manera de determinar si se activa esto? android.util.Config.DEBUG

+1

Supuse que era un booleano que solo definía un nombre arbitrario. – schwiz

Respuesta

16

Lo sentimos, DEVELOPER_MODE fue solo un nombre arbitrario que escogí para la entrada del blog y Javadoc. Tal vez debería dejar eso más claro en los documentos.

la gente que había imaginado harían su propia codificado,

private static final boolean DEVELOPER_MODE = false;

... que mantengan a mano, pero parece que Config.DEBUG habría sido algo mejor utilizar. ¡Ni siquiera sabía sobre eso! :)

+0

Noté en el código OpenSource Gingerbread que ninguna de las aplicaciones principales de Android está utilizando StrictMode. Esperaba ver cómo lo estaban usando para modelar cómo nuestro propio desarrollo de plataforma usaría StrictMode. ¿Puede proporcionar alguna información sobre cómo el equipo de desarrollo de plataformas de Android está habilitando/deshabilitando StrictMode durante su ciclo de desarrollo? –

+0

Dave, eso es porque TODOS están usando StrictMode. Lo activamos para todas las aplicaciones del sistema: –

+0

Vaya, solo comentarios de una sola línea (presiono Intro demasiado pronto). Ver http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=core/java/android/app/ActivityThread.java;h=78df78009ab9735393672a81a9b2960245cfc980;hb=refs/ heads/master y busca "conditionallyEnableDebugLogging", que es público pero una API oculta. –

4

Config.DEBUG no va a funcionar, ya que casi siempre se establece en falso. Es mejor mirar el atributo de depuración en el archivo AndroidManifest. Lo he documentado en una publicación de blog. Links are with this answer

1

Responde mi propia pregunta ... Como desarrollador de plataforma (uno que usa Android para crear un dispositivo), el Administrador de actividades en Android habilita automáticamente StrictMode en el hilo principal para todas las aplicaciones instaladas en la partición del sistema cuando el la plataforma está construida con un eng o userdebug construido. Estoy de acuerdo con Manfred en que Config.DEBUG no es apropiado para desarrolladores de SDK. Básicamente, los desarrolladores de plataformas que escriben aplicaciones que se cargan por defecto en la Partición del Sistema no tienen que hacer nada para aprovechar StrictMode, la plataforma lo hace por ellos.

+0

No obtuve exactamente lo que tenemos como desarrolladores de aplicaciones (es decir, no desarrolladores de plataformas). ¿Deberíamos ir con el oculto 'conditionallyEnableDebugLogging'? Compruebe el archivo AndroidManifest? O...? ejército de reserva – superjos

0

Es una vieja pregunta, pero me gustaría mencionar que la alternativa más cercana que puedo imaginar es BuildConfig.DEBUG para ingenieros de aplicaciones. Devuelve si se trata de una versión de depuración.

Cuestiones relacionadas