1page.title=Guía de prueba 2page.image=images/cards/card-n-guide_2x.png 3meta.tags="preview", "testing" 4page.tags="preview", "developer preview" 5 6@jd:body 7 8<div id="qv-wrapper"> 9 <div id="qv"> 10 <h2>En este documento</h2> 11 <ol> 12 <li><a href="#runtime-permissions">Prueba de los permisos</a></li> 13 <li><a href="#doze-standby">Prueba de los modos Descanso y App Standby</a></li> 14 <li><a href="#ids">Copia de seguridad automática e identificadores de dispositivos</a></li> 15 </ol> 16 </div> 17</div> 18 19<p> 20 Android N te brinda la oportunidad de garantizar que tus aplicaciones funcionen con la próxima versión de la plataforma. 21 Esta versión preliminar incluye diversas API y cambios en los comportamientos que pueden 22tener impactos en tu 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>. 23 Al probar tu aplicación con la versión preliminar, te debes centrar en algunos cambios específicos del sistema para garantizar que los usuarios disfruten de una buena experiencia. 24 25 26</p> 27 28<p> 29 En esta guía, se describen qué y cómo probar las características preliminares con tu aplicación. Debes priorizar la prueba de estas características específicas preliminares, puesto que podrían tener un alto impacto en el comportamiento de tu aplicación: 30 31 32</p> 33 34<ul> 35 <li><a href="#runtime-permissions">Permisos</a> 36 </li> 37 <li><a href="#doze-standby">Modos Descanso y App Standby</a> 38 </li> 39 <li><a href="#ids">Copia de seguridad automática e identificadores de dispositivos</a></li> 40</ul> 41 42<p> 43 Para obtener más información sobre cómo configurar dispositivos o dispositivos virtuales con una imagen 44 del sistema de la versión preliminar para realizar pruebas, consulta la sección <a href="{@docRoot}preview/setup-sdk.html">Configurar el SDK de Android N</a>. 45 46</p> 47 48 49<h2 id="runtime-permissions">Prueba de los permisos</h2> 50 51<p> 52 El nuevo modelo de <a href="{@docRoot}preview/features/runtime-permissions.html">permisos</a> cambia el modo en que el usuario asigna permisos a tu aplicación. 53 En lugar de conceder todos los permisos durante el procedimiento de instalación, tu aplicación debe solicitar al usuario los permisos individuales en el tiempo de ejecución. 54 55 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. 56 Los usuarios pueden conceder o revocar los permisos concedidos a una aplicación de forma individual en cualquier momento. 57 Es muy probable que esta característica de la versión preliminar tenga un impacto en el comportamiento de tu aplicación y puede hacer que algunas características de tu aplicación no funcionen o funcionen en un estado degradado. 58 59 60</p> 61 62<p class="caution"> 63 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. 64 La plataforma ofrece un comportamiento de compatibilidad limitada para las aplicaciones heredadas, pero debes comenzar a planificar ahora la migración de tu aplicación al nuevo modelo de permisos, con el objetivo de publicar una versión actualizada de tu aplicación cuando se lance la plataforma oficial. 65 66 67</p> 68 69 70<h3 id="permission-test-tips">Tips para pruebas</h3> 71 72<p> 73 Usa los siguientes tips para pruebas como ayuda para planificar y ejecutar las pruebas de tu aplicación con el nuevo comportamiento de permisos. 74 75</p> 76 77<ul> 78 <li>Identifica los permisos actuales de tu aplicación y las rutas de códigos relacionadas.</li> 79 <li>Prueba los flujos del usuario en los datos y servicios protegidos por permisos.</li> 80 <li>Realiza pruebas con varias combinaciones de permisos concedidos/revocados.</li> 81 <li>Usa la herramienta {@code adb} para administrar permisos desde la línea de comando: 82 <ul> 83 <li>Enumera los permisos y estados por grupo: 84 <pre>adb shell pm list permissions -d -g</pre> 85 </li> 86 <li>Concede o revoca un permiso o más permisos utilizando la siguiente sintaxis:<br> 87 <pre>adb shell pm [grant|revoke] <permission.name> ...</pre> 88 </li> 89 </ul> 90 </li> 91 <li>Analiza tu aplicación para detectar servicios que utilizan permisos.</li> 92</ul> 93 94<h3 id="permission-test-strategy">Estrategia de prueba</h3> 95 96<p> 97 El cambio en los permisos afecta la estructura y el diseño de tu aplicación, además de la experiencia del usuario y los flujos que proporcionas a los usuarios. 98 Debes evaluar el uso de los permisos actuales de tu aplicación y comenzar a planificar los nuevos flujos que deseas ofrecer. 99 La versión oficial de la plataforma proporciona un comportamiento de compatibilidad, pero debes prever la actualización de tu aplicación y no depender de estos comportamientos. 100 101 102</p> 103 104<p> 105 Identifica los permisos que tu aplicación verdaderamente necesita y utiliza, y luego busca las diversas rutas de códigos que utilizan los servicios protegidos por permisos. 106 Puedes realizar esto mediante una combinación de pruebas en la plataforma nueva y análisis de códigos. 107 Al realizar las pruebas, debes centrarte en 108 incluir permisos de tiempo de ejecución cambiando {@code targetSdkVersion} de la aplicación a la versión preliminar. Para 109 obtener más información, consulta la sección <a href="{@docRoot}preview/setup-sdk.html#">Configurar el SDK de Android N</a>. 110 111</p> 112 113<p> 114 Realiza pruebas con diversas combinaciones de permisos revocados y agregados, a fin de destacar los flujos del usuario que dependen de permisos. 115 Cuando una dependencia no sea obvia ni lógica, debes considerar la opción de refactorizar o compartimentar ese flujo para eliminar la dependencia o aclarar por qué se necesita el permiso. 116 117 118</p> 119 120<p> 121 Para obtener más información sobre el comportamiento de los permisos de tiempo de ejecución, las pruebas y las mejores prácticas, consulta la página <a href="{@docRoot}preview/features/runtime-permissions.html">Permisos</a> de la versión preliminar para desarrolladores. 122 123 124</p> 125 126 127<h2 id="doze-standby">Prueba de los modos Descanso y App Standby</h2> 128 129<p> 130 Las características de ahorro de energía de los modos Descanso y App Standby limitan la cantidad de procesamiento en segundo plano que puede realizar tu aplicación cuando un dispositivo se encuentra en estado inactivo o mientras tu aplicación no está en foco. 131 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. 132 133 Para garantizar que tu aplicación tenga un comportamiento correcto con estas optimizaciones de ahorro de energía, debes probar tu aplicación simulando estos estados de bajo consumo. 134 135 136</p> 137 138<h4 id="doze">Cómo probar la aplicación en modo Descanso</h4> 139 140<p>Para probar el modo Descanso con tu aplicación, realiza lo siguiente:</p> 141 142<ol> 143<li>Configura un dispositivo de hardware o un dispositivo virtual con una imagen del sistema Android N.</li> 144<li>Conecta el dispositivo a tu equipo de desarrollo e instala tu aplicación.</li> 145<li>Ejecuta tu aplicación y déjala activa.</li> 146<li>Simula la activación del modo Descanso en el dispositivo ejecutando los siguientes comandos: 147 148<pre> 149$ adb shell dumpsys battery unplug 150$ adb shell dumpsys deviceidle step 151$ adb shell dumpsys deviceidle -h 152</pre> 153 154 </li> 155 <li>Observa el comportamiento de tu aplicación cuando se reactive el dispositivo. Asegúrate de que se recupere correctamente cuando el dispositivo salga del modo Descanso. 156</li> 157</ol> 158 159 160<h4 id="standby">Cómo probar aplicaciones en modo App Standby</h4> 161 162<p>Para probar el modo App Standby con tu aplicación, realiza lo siguiente:</p> 163 164<ol> 165 <li>Configura un dispositivo de hardware o un dispositivo virtual con una imagen del sistema Android N.</li> 166 <li>Conecta el dispositivo a tu equipo de desarrollo e instala tu aplicación.</li> 167 <li>Ejecuta tu aplicación y déjala activa.</li> 168 <li>Simula la activación del modo App Standby en la aplicación ejecutando los siguientes comandos: 169 170<pre> 171$ adb shell am broadcast -a android.os.action.DISCHARGING 172$ adb shell am set-idle <packageName> true 173</pre> 174 175 </li> 176 <li>Simula la activación de tu aplicación con el siguiente comando: 177 <pre>$ adb shell am set-idle <packageName> false</pre> 178 </li> 179 <li>Observa el comportamiento de tu aplicación al reactivarse. Asegúrate de que se recupere correctamente del modo App Standby. 180 En particular, debes comprobar si los trabajos en segundo plano y las notificaciones de tu aplicación continúan funcionando de la manera esperada. 181</li> 182</ol> 183 184<h2 id="ids">Copia de seguridad automática para aplicaciones e identificadores específicos del dispositivo</h2> 185 186<p>Si tu 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úrate 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>. 187 188 189 190 </p> 191