[Update: Confirmed]  Google puede eliminar el acceso a API no documentadas/ocultas en Android P

Google puede eliminar el acceso a API no documentadas/ocultas en Android P

[Update: Confirmed] Google puede eliminar el acceso a API no documentadas/ocultas en Android P

Actualización 28/02/18: Google ha publicado una publicación de blog hoy que confirma los cambios. Más detalles al final del artículo.

Mientras que algunos entusiastas de Android son especulando qué postre llevará el nombre de la próxima versión de Android, hay algunos desarrollos interesantes detrás de escena. Hemos detectado algunas próximas características dignas de mención en Android P, pero un descubrimiento más reciente en el Proyecto de código abierto de Android (AOSP) ha demostrado ser mucho más interesante. De acuerdo con estas confirmaciones recientes, es posible que se restrinja el acceso de las aplicaciones a las API que no están documentadas en el SDK de Android (como las API marcadas con el atributo @hide de javadoc).


por qué esto importa

El kit de desarrollo de software (SDK) de Android proporciona a los desarrolladores las bibliotecas y herramientas de API que necesitan para probar y crear nuevas aplicaciones de Android. Con cada nueva versión de Android viene una gran cantidad de nuevas API que están disponibles para los desarrolladores a través del SDK de Android. Las API que están disponibles para una aplicación dependen de qué compileSDKVersion establezca el desarrollador. Es por eso que los nuevos requisitos de Play Store de Google son tan importantes, que obligarán a las aplicaciones a actualizarse y migrar para usar nuevas API.

Google aloja páginas de documentación para cada clase y todos sus métodos que están disponibles en cada nivel de API. Estos son el conjunto de API documentadas que están disponibles en el SDK oficial de Android. Puede navegar por la lista de clases fácilmente usando una aplicación de Android, como la aplicación Android SDK Search lanzada recientemente por Android Engineer. jake warton.

Búsqueda SDKBúsqueda SDK Descargar Código QRBúsqueda SDK Desarrollador: jake warton Precio: Gratis

Sin embargo, no todas las API que están disponibles en cada versión de Android están documentadas por Google o están disponibles en el SDK oficial de Android. A menudo, hay API útiles que no están documentadas, pero que, sin embargo, son muy útiles. No se recomienda que los desarrolladores construyan sus aplicaciones utilizando API no documentadas u ocultas, pero muchos lo hacen porque simplemente no hay alternativa si quieren ofrecer una función determinada. Los desarrolladores que usan API ocultas o no documentadas también pueden obtener una ventaja competitiva, ya que pueden ofrecer funciones que sus competidores, que se apegan a las API que ofrece el SDK de Android, no pueden.

Si bien no puedo proporcionar una lista de aplicaciones que utilizan API no documentadas (los desarrolladores probablemente no compartan cuáles usan porque les daría una ventaja a sus competidores), la lista probablemente sea bastante grande. Por lo tanto, concluiría que prohibir el acceso a las API ocultas sería importante. Mark Murphy, fundador de Commonsware, está de acuerdo:

Estoy de acuerdo con la evaluación de que la prohibición masiva del acceso a los elementos anotados con @hide será un gran problema, si eso sucede. Con suerte, pocas aplicaciones acceden a estos elementos como parte de la funcionalidad clave. Sin embargo, sospecho que muchas aplicaciones de marca los usan en ocasiones, directamente o a través de una biblioteca.


¿Qué está pasando en Android P?

Estos próximos cambios fueron notados por primera vez por el desarrollador reconocido sénior de XDA rovo89, el desarrollador de Xposed Framework. Me señaló dos compromisos, uno de los cuales se ha fusionado, lo que introduce una nueva herramienta de compilación llamada ‘hiddenapi’. Esta herramienta modifica los indicadores de acceso de todos los miembros de la clase dentro de un archivo DEX si sus firmas aparecen en una lista negra o gris de entrada y, de ser así, los métodos marcados se tratarán como API internas con acceso restringido. El otro compromiso describe cómo funciona la lista negra de API; impide el acceso a los métodos y campos de la clase de arranque marcados por el ‘hiddenapi’ mencionado anteriormente a los que los desarrolladores pueden acceder mediante enlaces estáticos, reflexión y JNI.

Según rovo89, el resultado final de estos dos cambios en Android P es el siguiente:

Si estas confirmaciones se fusionan, significaría que las aplicaciones ya no pueden usar/acceder a las API ocultas, es decir, clases, métodos y campos que están anotados con @hide en AOSP y, por lo tanto, no forman parte del SDK oficial. Esto no sería un problema para los módulos Xposed, ya que podría revertir fácilmente esas confirmaciones o permitir que los módulos también accedan a estas API. Pero hay muchas aplicaciones que aprovechan las API ocultas y fallarán en el futuro.

De hecho, más compromisos muestran que esto puede ser lo que Google está planeando. Este compromiso establece lo siguiente:

android p

Si bien esta confirmación en particular no se fusionó, ya que se abandonó en favor de 3 confirmaciones más pequeñas, el mensaje de confirmación describe el propósito de estos cambios. Otro conjunto de compromisos muestra que Google sugerirá alternativas a los desarrolladores que buscan usar API no públicas:

android p

Sin embargo, a menudo no hay alternativas a ciertas API ocultas. En XDA podemos hablar aquí por experiencia, ya que desafortunadamente este cambio puede significar el final de algunas aplicaciones innovadoras, o puede requerir que algunas aplicaciones de renombre reduzcan su funcionalidad. Este próximo cambio parece similar en espíritu a la reciente represión de los Servicios de Accesibilidad (que afortunadamente se detuvo mientras Google evaluaba los usos innovadores). Si bien la mayoría de las aplicaciones que utilizan API no documentadas lo hacen por razones benignas, puede haber algunas aplicaciones que las hayan usado indebidamente con fines nefastos.

Debido a esto, Google puede estar bloqueando el acceso a todas las API ocultas en Android P para proteger a los usuarios de los pocos que abusan de ellos. Es difícil decir cuánto impacto puede tener esto en los usuarios, pero si usted es un desarrollador que esté considerando buscar en AOSP para encontrar un uso innovador de una API oculta, es posible que desee reconsiderarlo.


Actualización: Google confirma

En una publicación de blog publicada hoy, 28 de febrero, Google ha confirmado estos cambios. Citando los riesgos de bloqueo para los usuarios y, posteriormente, obligando a los desarrolladores a implementar soluciones de emergencia, Google afirma que la compañía ha ido cambiando gradualmente para disuadir a los desarrolladores de acceder a interfaces que no son SDK. A partir de Android P, las restricciones se expandirán para cubrir las interfaces de lenguaje Java del SDK.

La compañía afirma que “algunos métodos y campos que no pertenecen al SDK estarán restringidos”, aunque no dieron más detalles sobre cuáles estarían restringidos. Inicialmente, la restricción se centrará en las interfaces que se utilizan con poca frecuencia y, durante un tiempo, la empresa permitirá a los desarrolladores seguir utilizando métodos y campos que no sean SDK en los que la transición a un método SDK sea técnicamente desafiante. Sin embargo, eventualmente las restricciones se ampliarán, por lo que los desarrolladores de aplicaciones que usan métodos que no son SDK deben hacer la transición lo antes posible para prepararse para Android P. En cuanto a los métodos sin una alternativa de SDK, Google solicita a los desarrolladores que publiquen más información en su rastreador de errores.

La próxima vista previa para desarrolladores, que aparentemente llegará pronto, permitirá a los desarrolladores probar las aplicaciones existentes contra la lista negra o la lista gris antes del lanzamiento final.

Similar Posts

Leave a Reply