Is the SDK ready for 64 bit support?

5293
19
01-31-2019 12:46 PM
NathanMellor
Occasional Contributor

I got this message from Google Play about this:

Android Developers Blog: Get your apps ready for the 64-bit requirement 

I was unable to tell if the ArcGIS Android Runtime 100.4 is ready for 64 bit.

If it's not, apps with the ArcGIS Android Runtime will be kicked out of Google Playstore on August 1, 2019.

Given the length of development cycles in the SDK, I hope I have mentioned this in time.

I'm guessing these apps will depend on it also.

Android Apps by Esri on Google Play 

19 Replies
MarkBaird
Esri Regular Contributor

Don't worry we've got it planned.  The current 100.4 release doesn't support ARM64 v8a but this will be part of the 100.5 release which is due to be released in a few weeks time.

We already have the .so file for arm64-v8a in our daily builds so it is ready to go when we release.

ESRI apps which use ArcGIS Runtime for Android will be released against the version which support 64bit too.

The addition of this architecture of course means that you will need to consider how you build your APKs.  If you make an APK which has .so files for x86 (supplied for emulators), armabi-v7a and arm64-v8a you run the risk of your install topping the 100mb limit.  I'm currently writing an article which will be included in our guide doc to explain the approaches to address this.

0 Kudos
SpeciesAppSpeciesApp
New Contributor

Currently i am using the library version 10.2.9. Is there a possibility of getting 64 bit support for this version?

0 Kudos
MarkBaird
Esri Regular Contributor

10.2.9 is quite an old version of our SDK and we don't plan on releasing this with 64 bit support.  Your option will be to migrate your app to use the 100.5 release of ArcGIS Runtime for Android.

0 Kudos
NathanMellor
Occasional Contributor

It is now August and Google Play is rejecting my APK with 100.5 

I don't see any instructions on this. 

Did you make that document?

0 Kudos
MarkBaird
Esri Regular Contributor

Nathan,

We've had 64bit support for native Android development for some months.  100.5 and 100.6 releases have 64bit native binaries included in the SDK.

You need to set up your build script to use them.  There are various approaches such as ABI Filters and APK splits.  I've written the following page which introduces the subject. Reducing your APK size—ArcGIS Runtime SDK for Android | ArcGIS for Developers 

Follow the links to the Android developers site above which contain all the information you need on deploying apps to the store.

Does this help?

NathanMellor
Occasional Contributor
To clarify, the reducing APK size tip is mandatory, because Google Play won't allow x86 without x86-64.
If I make the change as you suggest, I get a warning from Google Play that some users won't be able to update, but I don't know if it is something to worry about.
My new APK says:
Native platforms
arm64-v8a, armeabi-v7a
Supported Android devices: 8465 devices
The older APK.
Native platforms
1 differentiating: x86 + 2 common: arm64-v8a, armeabi-v7a
Supported Android devices: 8466 devices
I have no way of telling what that one(1) device I am excluding and if it is real.
Pardon me for not knowing, but are there no real tablets/phones with Intel x86 Processors, 32 nor 64 bit?

Some years ago, Intel gave me an award and had me in one of their promotional videos, all because I compiled an app for x86 (which too only a few seconds). Did Intel never make it into the market?
0 Kudos
AmitTaparia
New Contributor II

Hi Mark,

I followed your article to reduce apk size(https://developers.arcgis.com/android/latest/guide/reducing-your-apk-size.htm

May be I am missing something but even after following your article my apk size is well beyone 100 MB.

Checking the content of the .apk file, I found this out :

 

1. Esri.ArcGISRuntime.dll - 67,646 KB

2. libruntimecore.so - 57,432 KB

 

So just these 2 files from ESRI is contributing to more than 100 MB.

Google does allow to upload apps to play store which are above 100 MB using "Expansion Files" but this concept is only applicable to high resolution images/resource files. I dont think I can use Expansion Files to download .dll/.so files.

I have posted this questions against this link - https://community.esri.com/message/875514

Can you guys point me to the right direction?

Thanks

Amit

0 Kudos
by Anonymous User
Not applicable

We are using ArcGIS Run time for Xamarin to create android apps .will 100.5 Xamarin Sdk support 64bit?

0 Kudos
MarkBaird
Esri Regular Contributor

Haider,

For Xamarin, we already support Arm v8 x64 in 100.4 see System requirements for 100.4.0—ArcGIS Runtime SDK for .NET | ArcGIS for Developers 

0 Kudos