blob: 138d6ca96c9a454fa11a654ac4d0c8245dfe30f1 [file] [log] [blame]
page.title=Guía de prueba
page.image=images/cards/card-build_16x9_2x.png
page.keywords=recursos de la versión preliminar,androidm,pruebas,permisos
@jd:body
<div id="qv-wrapper">
<div id="qv">
<h2>Contenido del documento</h2>
<ol>
<li><a href="#runtime-permissions">Prueba de los permisos</a></li>
<li><a href="#doze-standby">Prueba de los modos Doze y App Standby</a></li>
<li><a href="#ids">Copia de seguridad automática e identificadores de dispositivos</a></li>
</ol>
</div>
</div>
<p>
Android M Developer Preview le brinda la oportunidad de garantizar que sus aplicaciones funcionen con la próxima versión de la plataforma.
Esta versión preliminar incluye diversas API y cambios en los comportamientos que pueden tener impactos en su aplicación, como se describe en las secciones <a href="{@docRoot}preview/api-overview.html">Información general de la API</a> y <a href="{@docRoot}preview/behavior-changes.html">Cambios en los comportamientos</a>.
Al probar su aplicación con la versión preliminar, se debe centrar en algunos cambios específicos del sistema para garantizar que los usuarios disfruten de una buena experiencia.
</p>
<p>
En esta guía, se describen qué y cómo probar las características preliminares con su aplicación. Debe priorizar la prueba de estas características específicas preliminares, puesto que podrían tener un alto impacto en el comportamiento de su aplicación:
</p>
<ul>
<li><a href="#runtime-permissions">Permisos</a>
</li>
<li><a href="#doze-standby">Modos Doze y App Standby</a>
</li>
<li><a href="#ids">Copia de seguridad automática e identificadores de dispositivos</a></li>
</ul>
<p>
Para obtener más información sobre cómo configurar dispositivos o dispositivos virtuales con una imagen del sistema de la versión preliminar para realizar pruebas, consulte la sección <a href="{@docRoot}preview/setup-sdk.html">Configurar el SDK de la versión preliminar</a>.
</p>
<h2 id="runtime-permissions">Prueba de los permisos</h2>
<p>
El nuevo modelo de <a href="{@docRoot}preview/features/runtime-permissions.html">permisos</a> cambia el modo en que el usuario asigna permisos a su aplicación.
En lugar de conceder todos los permisos durante el procedimiento de instalación, su aplicación debe solicitar al usuario los permisos individuales en el tiempo de ejecución.
Para los usuarios, este comportamiento ofrece más control granular sobre las actividades de cada aplicación, así como un mejor contexto para comprender por qué la aplicación está solicitando un permiso específico.
Los usuarios pueden conceder o revocar los permisos concedidos a una aplicación de forma individual en cualquier momento.
Es muy probable que esta característica de la versión preliminar tenga un impacto en el comportamiento de su aplicación y puede hacer que algunas características de su aplicación no funcionen o funcionen en un estado degradado.
</p>
<p class="caution">
Este cambio afecta a todas las aplicaciones que se ejecutan en la nueva plataforma, incluso a aquellas que no tienen como destino la nueva versión de la plataforma.
La plataforma ofrece un comportamiento de compatibilidad limitada para las aplicaciones heredadas, pero usted debe comenzar a planificar ahora la migración de su aplicación al nuevo modelo de permisos, con el objetivo de publicar una versión actualizada de su aplicación cuando se lance la plataforma oficial.
</p>
<h3 id="permission-test-tips">Consejos para pruebas</h3>
<p>
Use los siguientes consejos para pruebas como ayuda para planificar y ejecutar las pruebas de su aplicación con el nuevo comportamiento de permisos.
</p>
<ul>
<li>Identifique los permisos actuales de su aplicación y las rutas de códigos relacionadas.</li>
<li>Pruebe los flujos del usuario en los datos y servicios protegidos por permisos.</li>
<li>Realice pruebas con varias combinaciones de permisos concedidos/revocados.</li>
<li>Use la herramienta {@code adb} para administrar permisos desde la línea de comando:
<ul>
<li>Enumere los permisos y estados por grupo:
<pre>adb shell pm list permissions -d -g</pre>
</li>
<li>Conceda o revoque un permiso o más permisos utilizando la siguiente sintaxis:<br>
<pre>adb shell pm [grant|revoke] &lt;permission.name&gt; ...</pre>
</li>
</ul>
</li>
<li>Analice su aplicación para detectar servicios que utilizan permisos.</li>
</ul>
<h3 id="permission-test-strategy">Estrategia de prueba</h3>
<p>
El cambio en los permisos afecta la estructura y el diseño de su aplicación, además de la experiencia del usuario y los flujos que usted proporciona a los usuarios.
Debe evaluar el uso de los permisos actuales de su aplicación y comenzar a planificar los nuevos flujos que desea ofrecer.
La versión oficial de la plataforma proporciona un comportamiento de compatibilidad, pero debe prever la actualización de su aplicación y no depender de estos comportamientos.
</p>
<p>
Identifique los permisos que su aplicación verdaderamente necesita y utiliza, y luego busque las diversas rutas de códigos que utilizan los servicios protegidos por permisos.
Puede realizar esto mediante una combinación de pruebas en la plataforma nueva y análisis de códigos.
Al realizar las pruebas, debe centrarse en incluir permisos de tiempo de ejecución cambiando {@code targetSdkVersion} de la aplicación a la versión preliminar.
Para obtener más información, consulte la sección <a href="{@docRoot}preview/setup-sdk.html#">Configurar el SDK de la versión preliminar</a>.
</p>
<p>
Realice pruebas con diversas combinaciones de permisos revocados y agregados, a fin de destacar los flujos del usuario que dependen de permisos.
Cuando una dependencia no sea obvia ni lógica, debe considerar la opción de refactorizar o compartimentar ese flujo para eliminar la dependencia o aclarar por qué se necesita el permiso.
</p>
<p>
Para obtener más información sobre el comportamiento de los permisos de tiempo de ejecución, las pruebas y las mejores prácticas, consulte la página <a href="{@docRoot}preview/features/runtime-permissions.html">Permisos</a> de la versión preliminar para desarrolladores.
</p>
<h2 id="doze-standby">Prueba de los modos Doze y App Standby</h2>
<p>
Las características de ahorro de energía de los modos Doze y App Standby limitan la cantidad de procesamiento en segundo plano que puede realizar su aplicación cuando un dispositivo se encuentra en estado inactivo o mientras su aplicación no está en foco.
Entre las restricciones que el sistema puede imponer en las aplicaciones se incluyen el acceso limitado a la red o denegación de acceso, suspensión de las tareas en segundo plano, suspensión de notificaciones, y alarmas y solicitudes de reactivación ignoradas.
Para garantizar que su aplicación tenga un comportamiento correcto con estas optimizaciones de ahorro de energía, debe probar su aplicación simulando estos estados de bajo consumo.
</p>
<h4 id="doze">Cómo probar la aplicación en modo Doze</h4>
<p>Para probar el modo Doze con su aplicación, realice lo siguiente:</p>
<ol>
<li>Configure un dispositivo de hardware o un dispositivo virtual con una imagen del sistema de la versión preliminar de Android M.</li>
<li>Conecte el dispositivo a su equipo de desarrollo e instale la aplicación.</li>
<li>Ejecute su aplicación y déjela activa.</li>
<li>Simule la activación del modo Doze en el dispositivo ejecutando los siguientes comandos:
<pre>
$ adb shell dumpsys battery unplug
$ adb shell dumpsys deviceidle step
$ adb shell dumpsys deviceidle -h
</pre>
</li>
<li>Observe el comportamiento de su aplicación cuando se reactive el dispositivo. Asegúrese de que se recupere correctamente cuando el dispositivo salga del modo Doze.
</li>
</ol>
<h4 id="standby">Cómo probar aplicaciones en modo App Standby</h4>
<p>Para probar el modo App Standby con su aplicación, realice lo siguiente:</p>
<ol>
<li>Configure un dispositivo de hardware o un dispositivo virtual con una imagen del sistema de la versión preliminar de Android M.</li>
<li>Conecte el dispositivo a su equipo de desarrollo e instale su aplicación.</li>
<li>Ejecute su aplicación y déjela activa.</li>
<li>Simule la activación del modo App Standby en la aplicación ejecutando los siguientes comandos:
<pre>
$ adb shell am broadcast -a android.os.action.DISCHARGING
$ adb shell am set-idle &lt;packageName&gt; true
</pre>
</li>
<li>Simule la activación de su aplicación con el siguiente comando:
<pre>$ adb shell am set-idle &lt;packageName&gt; false</pre>
</li>
<li>Observe el comportamiento de su aplicación al reactivarse. Asegúrese de que se recupere correctamente del modo App Standby.
En particular, debe comprobar si los trabajos en segundo plano y las notificaciones de su aplicación continúan funcionando de la manera esperada.
</li>
</ol>
<h2 id="ids">Copia de seguridad automática para aplicaciones e identificadores específicos del dispositivo</h2>
<p>Si su aplicación continúa teniendo algún identificador específico del dispositivo, como la Id. de registro de Google Cloud Messaging, en el almacenamiento interno, asegúrese de seguir las mejores prácticas para excluir la ubicación de almacenamiento de la copia de seguridad automática, como se describe en la sección <a href="{@docRoot}preview/backup/index.html">Copia de seguridad automática para aplicaciones</a>.
</p>