viernes, 14 de agosto de 2015

Las Opciones de Desarrollo en Android: Qué son y para qué sirven?


A partir de Android 4.0 (Ice Cream Sandwich) y oculto en la configuración de nuestros móviles Android, hay una serie de opciones que se utilizan para la depuración y el desarrollo de aplicaciones. Estas opciones también se conocen como Opciones de Desarrollador, Opciones Avanzadas u Opciones de Programador, pues son opciones avanzadas que generalmente son usadas por los desarrolladores con fines de experimentar y testear determinadas funciones, de ahí su nombre y el motivo de que vengan ocultas por defecto en el sistema, sin embargo algunas algunas de estas opciones son útiles para el usuario común o promedio, de ahí también la justificación de este Post.

Como les mencioné las Opciones de Desarrollo vienen ocultas por defecto, para poder activarlas y se muestren en los Ajustes del Sistema sigan la ruta Ajustes -> Acerca del teléfono -> Número de compilación. Una vez hayamos localizado esa última opción, pulsaremos 7 veces sobre ella hasta que nos salga un mensaje diciéndonos que hemos desbloqueado las Opciones de desarrollador, una vez hecho esto, sólo tendremos que volver al menú principal de los Ajustes y veremos que ya aparecen estas opciones.

¿Para qué sirven las Opciones de Desarrollo?
Estas opciones modifican diversos parámetros del equipo, además de permitir depuración de aplicaciones y del sistema a nivel avanzado, además de activar o desactivar algunas funciones, así que os explicaré brevemente en qué consiste cada una de las opciones que ofrece:
Nota: Por una cuestión de practicidad les pondré las funciones más usadas en primer lugar y luego las otras opciones

I. Opciones de Desarrollador más usadas:

- Depuración de USB:  Esta es una de las opciones de desarrollador más utilizadas por los usuarios. Permite a los programas de tu ordenador acceder a tu dispositivo mediante USB. Es un paso previo necesario para rootear nuestro dispositivo, desbloquearlo, instalar una ROM nueva, o hacer una copia de seguridad en nuestro ordenador (no necesita root). Si tenéis activada esta opción, asegúrense de conectar el dispositivo a USB seguros (evitar en lo posible ordenadores desconocidos o públicos). esto es lo que permite que el teléfono se comunique a través del puerto USB de su ordenador a través del puente de depuración Android (ADB, Android Debug Bridge). Necesitaremos habilitar esta opción para utilizar cosas como DDMS (Dalvik Debug Monitor Server) el monitor de depuración de la máquina virtual Dalvik, o utilizar los comandos ADB.

- Escalas de Animación: Este es conjunto de ajustes que aplico en cuanto estreno un dispositivo. Puedes desactivar completamente las animaciones y hacer que el teléfono cargue la aplicación tan rápido como su hardware lo permita, o hacer las animaciones el doble de rápidas. Yo uso esta última, ya que me gustan las animaciones y transiciones, por ejemplo al cargar una aplicación.
Nos vamos a las opciones de “Escala de animación de ventana”, “Escala de transición-animación” y “Escala de duración de animador”. Si queremos las animaciones más rápidas, ponemos las tres en 0,5x; y si queremos sin animaciones, las ponemos las tres en “Desactivada”. Si nuestro dispositivo tiene un buen procesador, veremos los tiempos de carga y el uso en general drásticamente mejorado.
- Escala animación ventana: ajusta la velocidad de reproducción de la animación de la ventana. Cuanto más bajo es el valor, más rápida será la animación.
- Escala de animación de transición: ajusta la velocidad de reproducción de la animación de transición. Una vez más, el valor más bajo significa más rápido.
- Escala de duración de animación: modificando este ajuste podremos determinar la duración de la animación. Nuevamente, menos es más.

- Tiempo de ejecución Android: Esta opción sólo la encontrarán en las ROM con Android KitKat 4.4 (4.4.2, 4.4.4), pues en esta versión de Android se introdujo en forma de beta el tiempo de ejecución ART (Android RunTime), ya que la máquina virtual por defecto siempre fue Dalvik. Aquí es donde podemos decidir entre utilizar la máquina virtual Dalvik o ART. ART está en fase experimental por lo que no os recomiendo activarlo a lo loco, a menos que sea con fines de desarrollo. En Android Lollipop 5.0+ ART viene por defecto. (Nota: En el caso del Optimus G con Android 4.4.2 oficial si bien pueden encontrar esta opción, ART no ha sido habilitada por parte de LG)

- Verifique aplicaciones a través de USB: Permite que Google escanee las aplicaciones instaladas a través de ADB para el comportamiento malicioso. Esta es una buena cosa.

- Forzar renderización GPU: Esta opción hace que la CPU le pase algunas de sus tareas a la GPU (en cuanto a animaciones se refiere). Cuando lo activamos notaremos una cierta mejora en el scroll de algunas aplicaciones, ya que la CPU y GPU trabajan a la vez. Aunque esta opción también provoca en algunas aplicaciones que se cierren, se quede la pantalla en negro o no funcionen, ya que no están hechas para trabajar con la GPU (por ejemplo la app Puffin Browser no permite el renderizado a través de GPU). Esta opción es solo recomendable si tu dispositivo va algo lento, aunque como hemos dicho puedes tener problemas con algunas aplicaciones.

- Informar de un error: al tocar esta opción el sistema prepara los archivos de registro actuales del dispositivo, los paquetes para enviárselos a quien nos apetezca. Tarda un minuto o dos después de tocar en ella, y nos mostrará una notificación una vez que esté listo. Toca en la notificación para que la envíe o desliza para cancelar.

- Contraseña de la copia de seguridad: podemos utilizar ADB para realizar copias de seguridad y restaurar cosas como las aplicaciones y sus datos asociados al ordenador o desde él. Esta opción nos obliga a utilizar una contraseña para esas copias de seguridad, que no se pueden restaurar sin ella.

- Activar4x MSAA: Esta opción te permite mejorar la calidad de los gráficos en los juegos y aplicaciones de OpenGL ES 2.0. Os aviso que esto demandará más rendimiento al hardware y consumirá la batería más rápido. Sin embargo, en algunos juegos y aplicaciones mejorará la imagen mediante el suavizado de los píxeles por Multi Sample Anti-Aliasing 4x.

- No mantener actividades: Esta opción fuerza el cierre total y todas y cada una de las aplicaciones tan pronto como salgamos de ellas. A pesar de lo que se diga en Internet, no es nada recomendable activarlo.

- Limitar procesos en segundo plano: permite una configuración personalizada de cuantos procesos pueden ejecutarse en segundo plano de manera simultánea. Mejor dejar la configuración por defecto.

- Activar Root: Esta opción sólo viene en las Custom ROMs basadas en AOSP como CM12, Slimkat, etc. desde donde se puede activar el acceso root, incluso nos da la opción para activar el root sólo para aplicaciones, sólo para ADB o los dos. 

II. Otras Opciones de Desarrollador:

- Revocar autorizaciones de depuración USB: Cuando se utiliza un ordenador para depurar a través de USB por primera vez, tenemos que autorizarlo y establecer un par de claves. Este ajuste revoca todos los permisos y nos obliga a hacerlo de nuevo.

- Incluir informes de errores en el menú de encendido: activa una opción en el menú que aparece cuando se mantiene pulsado el botón de encendido para recopilar y enviar un informe de error.

- Permitir ubicaciones falsas: este ajuste nos permitirá escribir manualmente la información de ubicación, por lo que el teléfono creerá que está en un lugar en el que realmente no está.

- Seleccionar una aplicación para depurar: esta opción nos permite elegir una aplicación para depurar. Prevendrá la aparición de mensajes de error en caso de cierre forzado de la aplicación. Si no entiendes la finalidad de esta función, probablemente es porque no la necesites, por lo que mejor no la toques.

- Esperar al depurador: esta configuración está desactivada a menos que hayamos mandado una aplicación a depurar. Simplemente impide que la aplicación elegida se inicie hasta que se adjunta el depurador.Es otro de los ajustes de depuración de aplicaciones que la mayoría de nosotros nunca va a necesitar.

- Mostrar toques: al seleccionar esta opción veremos un puntero allá donde toquemos, esta opción es útil cuando quieran hacer un grabación de pantalla con el fin de hacer un videotutorial.

- Ubicación del puntero: este ajuste muestra una barra de información en la parte superior de la pantalla que indica las coordenadas del último toque en esta.

- Mostrar actualizaciones de pantalla: hace que la pantalla parpadee cuando algún elemento de ella se actualiza. Molesto como un dolor de muelas.

- Mostrar límites de diseño: marca los bordes de todos los elementos de un cuadro de diálogo para que sepamos qué elementos pueden ser activados.

- Forzar diseño RTL: fuerza a la pantalla a disponerse de derecha a izquierda para adaptarse a diferentes configuraciones de idioma.

- Simular pantallas secundarias: Esta opción permite a los desarrolladores simular diferentes tamaños de pantalla. Es bastante poco estable.

- Registro de búsqueda de Bluetooth: A veces, un desarrollador (o especialista en seguridad) tendrá que capturar y analizar paquetes Bluetooth HCI (Host Controller Interface). La activación de esta opción los colocará en un archivo en la memoria interna del teléfono (/sdcard/btsnoop_hci.log) para su recuperación. A continuación, se pueden analizar con un programa como Wireshark.

- Estadísticas de procesos: Todo lo que necesitamos saber acerca de los procesos que se ejecutan en nuestro teléfono está aquí. Toca en la opción y luego en una de las entradas. Para los profano, son sólo un montón de números, pero para un desarrollador, esta información es esencial para poder depurar sus aplicaciones.

- Mostrar actualizaciones de vista GPU: con este ajuste, cualquier cosa que se dibuja con el hardware de la GPU crea una superposición de color rojo.

- Mostrar actualizaciones de capa de hardware: Este ajuste nos dirá cuando las capas de hardware se actualizan.

- Depurar superoposición GPU: la superposición se da cada vez que una aplicación solicita al sistema dibujar algo por encima de otra cosa. Este ajuste permite ver cuando y dónde está sucediendo para saber si causa problemas.

- Permanecer activo: al marcar esta casilla obligaremos a la pantalla a permanecer encendida mientras esté el móvil conectado a un cargador. No es muy recomendable utilizar esta opción a menos que sea rigurosamente necesario.

- Modo estricto: hace parpadear la pantalla cuando una aplicación utiliza el hilo principal para realizar operaciones largas e intensivas.

- Mostrar uso de la CPU: coloca una pequeña ventana en la parte superior derecha de la pantalla con información sobre la CPU y la forma en que se está utilizando.

- Perfil de renderización GPU: dibuja un gráfico en la pantalla o escribir en un archivo. El gráfico es una representación visual del trabajo de la GPU.

- Activar rastros de OpenGL: este ajuste recopila los errores de OpenGL y los coloca en un archivo de registro que escogió cuando se activó.

- Mostrar todos los ANR: esta opción hace que los procesos en segundo plano pueda mostrar un cuadro de diálogo “No responde” si se quedan enganchados, funciona incluso con procesos en segundo plano que el usuario no inició.

Aún con lo larga que es esta lista, se podrán encontrar con más o menos opciones dependiendo del terminal, de la ROM que instalen y del fabricante. De todos modos, las que se han enunciado aquí son las más comunes a todos los dispositivos.

Para finalizar, sólo decirles que tengan cuidado con lo que mueven o tocan en estas Opcones de Desarrollo, espero les sirva.

Fuentes:
http://adf.ly/1MHV5j
http://adf.ly/1MHV80

Post relacionados:
http://adf.ly/1MHV9V
http://adf.ly/1MHVBL

Tomado de: http://adf.ly/1MHVEa

2 comentarios: