Search code examples
androidxamarinxamarin.formsxamarin.android

Which I give an apk to a person, what's the difference between the versions that Xamarin creates for distribution?


I am working with Xamarin Forms and I published the Android app ad-hoc to disc.

What I would like to do is to give the apk to some people to test by uploading it to a web site I have so they can download it. Here's what was created:

com.xx.xx-arm64-v8a.apk
com.xx.xx-armeabi-v7.apk
com.xx.xx-x86_64.apk
com.xx.xx-x86.apk
com.xx.xx.apk

My question is twofold. Why does it create four apps and which of those should I give to the person? I assume it's okay to give the last in the list but if that's the case then why are the others created?

I also heard something about a new feature with Android that would allow smaller builds and just let a person download the build that is needed for their device. Can someone tell me if I could use that with these apks and if so how I would do it.

Thanks

Here are the list of options that I have selected:

enter image description here


Solution

  • Please open your Android Options, If you enable the Generate one package (.apk) per selected ABI selection, you will get serveral .apk file. If you want to generate one .apk file, just unselect it like following screenshot. enter image description here

    If you want to enable the Generate one package (.apk) per selected ABIselection. you can give the .apk file by Users' device(CPU Architectures).

    Xamarin.Android supports the following architectures:

    armeabi – ARM-based CPUs that support at least the ARMv5TE instruction set. Note that armeabi is not thread-safe and should not be used on multi-CPU devices. Note

    As of Xamarin.Android 9.2, armeabi is no longer supported.

    armeabi-v7a – ARM-based CPUs with hardware floating-point operations and multiple CPU (SMP) devices. Note that armeabi-v7a machine code will not run on ARMv5 devices.

    arm64-v8a – CPUs based on the 64-bit ARMv8 architecture.

    x86 – CPUs that support the x86 (or IA-32) instruction set. This instruction set is equivalent to that of the Pentium Pro, including MMX, SSE, SSE2, and SSE3 instructions.

    x86_64 CPUs that support the 64-bit x86 (also referred as x64 and AMD64) instruction set.

    If you want to know more details about CPU Architectures, you can refer to this thread.

    https://learn.microsoft.com/en-us/xamarin/android/app-fundamentals/cpu-architectures?tabs=windows