Hoy os traemos un artículo bastante técnico pero muy interesante para conocer la arquitectura de procesador
de nuestro dispositivo Android. Conforme pasa el tiempo cada vez
tenemos una mayor variedad de arquitecturas de procesador en nuestros
dispositivos Android, los desarrolladores de apps pueden tener la necesidad de detectar qué tipo de procesador utiliza el dispositivo en el cual se está ejecutando su app y en base a esto actuar de una u otra forma.
La forma más sencilla de conocer la
arquitectura de procesador del dispositivo en el que se ejecuta una app,
es utilizando las propiedades del objeto android.os.Build. A
continuación vamos a intentar explicaros su uso, dependiendo de la API
level que utilizamos o lo que es lo mismo de la versión de Android con
la que trabajemos.
Cómo identificar qué tipo de arquitectura tiene tu Android
API Level < 21
Si tu app utiliza API Level menor a 21 (Lollipop), la propiedad que debes consultar es android.os.Build.CPU_ABI, la
cual te regresa un String con el valor de la arquitectura de procesador
principal en el dispositivo (“x86”, “x86_64”, “armeabi-v7a”, “armeabi”,
“arm64-v8a”, “mips”, “mips64”).
Además de la arquitectura de procesador
principal, algunos dispositivos pueden soportar instrucciones para otras
arquitecturas de procesador. Por ejemplo, en el caso de dispositivos
Intel, su arquitectura principal es x86 pero también soportan
instrucciones para ARM v7 por medio de traducción binaria. Es por ello
que también existe la propiedad android.os.Build.CPU_ABI2 la cual indica
la arquitectura secundaria soportada por el dispositivo.
El siguiente listado muestra un ejemplo de código donde se invocan las propiedades CPU_ABI y CPU_ABI2.
La siguiente imagen muestra el resultado
de ejecutar esta app en un dispositivo Asus Fonepad 7, que tiene
procesador Intel Atom Z2560 de doble núcleo a 1.6 GHz. Como vemos la
arquitectura principal que nos muestra en x86, mientras que la
secundaria es armeabi v7a.
API Level > 21
Vamos ahora a ver cómo podemos hacerlo a partir de la última versión de Android. Con la llegada de los 64 bits a los dispositivos Android, habrá dispositivos que puedan soportar incluso más de 2 ABIs.
Por ejemplo, un dispositivo Intel de 64 bits como el Intel Atom Z3580 del ASUS Zenfone 2 soportaría
principalmente x86_64, pero también x86 de 32 bits y ARM v7. Es así que
a partir de Android Lollipop, las propiedades android.os.Build.CPU_ABI y
android.os.Build.CPU_ABI2 quedan deprecadas, y ahora se recomienda
utilizar la propiedad android.os.Build.SUPPORTED_ABIS. Esta regresa un arreglo de Strings con la lista de arquitecturas de procesador soportadas, en orden de prioridad.
Detección por medio de ADB
Con el Android Debug Bridge (ADB)
también puedes detectar el valor de estas propiedades en dispositivos
conectados a tu computadora. Las propiedad que debes buscar
es ro.product.cpu.abi, ro.product.cpu.abi2 (en el caso de dispositivos
con Android < 5.0) y ro.product.cpu.abilist (en el caso de
dispositivos con Android >= 5.0).
Os mostramos dos imágenes de cómo sería el resultado al ejecutar este comando en dos dispositivos distintos, en concreto el Asus Fonepad 7 y Sony Xperia Z1s.
Son dos formas distintas de descubrir qué arquitectura
tiene tu dispositivo Android. Hay muchas más formas distintas aparte de
conocer la arquitectura para optimizar las aplicaciones y aprovechar
toda la potencia que ofrece cada tipo de procesador.
Más información Zona de desarrolladores
No hay comentarios:
Publicar un comentario