cordova build releases 5 apk which to upload - android

I am trying to build an android app using cordova 8. As soon as cordova build android --release with keystore.
It releases 5 apk file in 5 folder, but I am not sure, which one to upload:-
arm64
armeabi
armv7
x86
x86_64
Now, I am not sure, which one to release and upload for google play after signing.

Are you using a plugin containing native libraries? (I'm still using version 6 of Cordova and have only one apk, so either it's new in earlier versions or it's something to do with your project).
The different APKs you're seeing are to support different processors on the devices.
Most devices use armv7 so that's probably the one you want to upload first, but you can upload all the apks to google play.
It you upload only one (ore some) of the APKs, your app will be compatible only with device using corresponding kind of processor.

Related

Dealing with phone architectures and processor types on Android APK file

I've generated a release apk of my Android project in order to do some internal testing via the Developer Console.
Upon generating it, I clicked to analyze the APK file. From the picture I see most of my APk allocations go to libraries and assets.
I'm focusing on the architectures of ARM X86 and X64. I believe they are processor speeds on phones and
upon the APK being installed on a phone the Play Store will determine the phones processor and architectures and then download my APK based on that scenario.
My question is that with Android migrating to 64 bit architecture apps can't I get rid of the ARM architectures that aren't 64 bit based.
I'm unsure of what do do and would like to get rid of these extra architectures if possible to reduce APK size.
Please see the picture provided
Today, the vast majority of Android devices today are arm. The Device Catalog on the Play Console reports 98% of devices supported by Play are running on ARM. Although this number does not take into account devices not supported by Play or the number of users on each device, it still gives you an idea of the proportions.
That being said, regardless of the architectures you choose to support, when publishing to Play, you should always add support for 64 bits of that architecture. For example, if you want to support arm, you must have the libraries for arm64-v8a and if you want to support x86, you must have the libraries for x86_64.
However, to reduce APK size, there is now a better way: publishing an Android App Bundle. Play introduced this new publishing format to solve that exact problem: you publish a single App Bundle to Play, and Play takes care of generating the APKs optimized for each device, containing only the files needed for their device architecture, screen density and language (customizable).
All it takes is to enroll in Play App Signing in the Play Console (so that Play can sign the APKs it generates on your behalf), and select "Build Android App Bundle" in Studio instead of "Build APKs". -- If you use Gradle, gradlew bundleRelease instead of gradlew assembleRelease.
Hope that helps,

Which Flutter APK to use for installation from apk/release/ folder

When I build apk via command
flutter build apk --spli-per-abi
It generates 3 apk in: \build\app\outputs\apk\release directory
I want to know which of the APKs we will use for uploading on play store or for installing on different devices.
In addition to this, few android devices are capable of running apk named v8a and few are running v7a is there anything to do with building an apk for different versions of android? means I do i need to config SDKs so that It will run on all android versions starting from Jelly Beans 4.1
Thanks
You need to upload the 3 apk files to the Play Store.
When a client download you app, Google will provide the correct apk for the phone making the request.
please refer to this post :
How to build signed apk from Android Studio for Flutter
it will generate fully signed apk reales and u can upload it to google play store to work on all devices

Android: how to test for 64-bit device compatability

I was getting this warning in google play. This release is not compliant with the Google Play 64-bit requirement. The following APKs or App Bundles are available to 64-bit devices, but they only have 32-bit native code
I noticed that my apk had only x86, x86_64, armeabi_v7a folders. So I updated the gradle build script and now I have arm64-v8a folder as well. I see all the .so in armeabi-v7a generated in arm64 too.
How can I validate that this will support 64 bit devices
You can create an emulator with 64 bit image, to see that the app works on it.
Also, in your build variants, you can choose which active abi to use:

How do you convert a 32bit android apk to a 64bit apk without the original code?

Google now requires all apks to support 64bit and we've got an issue due to that.
We only have the apk that was once developed for us and we use a script that includes apktool to brand it and update the version control number, when we receive an update (which we don't get anymore).
Now in the lib folder, that appears when you profile/debug APK, we see three folders:
x86
arm64-v8a
armeabi-v7a
Our understanding is that arm64-v8a is the 64 bit version, but we still get the notice that we're not 64bit compliant when uploading to the google play console. Including the error that the API level is 27 and not 28, can this also be modified when you only have the apk?

Merge 64 Bit and 32 bit android APK as per new android requirement

We created 64-bit version of my app as per the android link.
Now we get two folders with 32-bit apk and 64-bit apk which is fine.
Now I want to know, how to merge both this 32/64 bit apk. Is it possible to merge them or we need to upload both 32 bit and 64-bit apk separately in google play store?
You can upload two APKs in the same release as long as the APK targeting 64-bit has a higher version code than the APK targeting 32-bit (Google Play will complain if you don't do that). All the documentation on this topic can be found at: https://developer.android.com/google/play/publishing/multiple-apks
A simpler alternative is to upload a single Android App Bundle in place of an APK, and Google Play will take care of generating the APKs for each of the native architecture your app supports. The documentation can be found at: https://developer.android.com/platform/technology/app-bundle
It is ok to have multiple APKs for single app split by resources or NDK libs, because it reduces APKs sizes. You can upload multiple APKs as single app at Android Play Store, it will select appropriate APK for user before installation.
https://developer.android.com/studio/build/configure-apk-splits
https://stackoverflow.com/a/42336433/3858030

Categories

Resources