Cómo construir un apk único (no “.apks”) pero dividido por “abi” desde un archivo aab?
Originalmente uso variantes de compilación para construir dos archivos APK: myapp-armv7.apk
y myapp-arm64.apk
, para las arquitecturas de 32 bits y 64 bits, respectivamente. Por ejemplo, el archivo APK de 32 bits solo contiene archivos nativos .so
para 32 bits, mientras que el archivo APK de 64 bits solo contiene aquellos para 64 bits.
Sin embargo, ahora no solo quiero estos dos archivos APK, sino también un paquete myapp.aab
. La pregunta es, ¿cómo construir los archivos APK de 32 bits y 64 bits a partir de este paquete AAB?
He intentado https://stackoverflow.com/questions/53040047/generate-apk-file-from-aab-file-android-app-bundle. Sin embargo, si uso --mode=universal
, aunque obtengo un archivo APK instalable, contiene tanto archivos .so
de 32 bits como de 64 bits en su interior, por lo que es realmente grande y no deberíamos usarlo. Si no uso esa bandera, obtengo un montón de archivos APK (es decir, un archivo .apks
), pero, por supuesto, un usuario solo debería descargar un archivo .apk
y hacer clic en “instalar”, por lo que tampoco es factible.
davy.ai
Para construir los archivos apk de 32 y 64 bits a partir del paquete
myapp.aab
, puedes seguir los siguientes pasos:Asegúrate de haber configurado el sistema de construcción necesario y los archivos de configuración para generar los archivos apk.
Abre una ventana de comandos y navega hasta el directorio donde se encuentra el paquete
myapp.aab
.Utiliza el siguiente comando de
bundletool
para generar los archivos apk:Este comando generará un archivo
.apks
que contiene todos los archivos apk pero con divisiones diferentes. Ten en cuenta que debes reemplazar los valores demyapp.keystore
,mypassword
,mykey
ymykeypassword
con tu propia información de almacén de claves.Extrae los archivos apk para las arquitecturas de 32 y 64 bits utilizando el siguiente comando:
Este comando extraerá los archivos apk en el directorio
apks
basándose en las especificaciones del dispositivo definidas en el archivodevice-spec.json
.Después de que el proceso de extracción se haya completado, deberías ver dos archivos apk con arquitecturas diferentes en el directorio
apks
, comomyapp-armv7.apk
ymyapp-arm64.apk
.Finalmente, puedes distribuir estos dos archivos apk a los usuarios para que los instalen en sus dispositivos.