Android Question B4A and 64bit apps for new Android versions

moster67

Expert
Licensed User
Longtime User
They are talking about NATIVE CODE i.e. normally written in c or c++ and implemented in so-libraries (jni):
new apps and app updates that include native code are required to provide 64-bit versions

Normal apps created with B4A is converted to JAVA and there are no issues with such code. It is the same code as Android Studio produces.:
Many apps are written entirely in non-native code (e.g. the Java programming language or Kotlin) and do not need code changes.

If you are using 3rd party libs and wonder if they use native code, you can check by unzipping the jar (or aar) you have in your extra-lib folder and then look for a folder which contains so-libs.
Inspect your APK or app bundle for native code. You can check for .so files using APK Analyzer. Identify whether they are built from your own code or are imported by an SDK or library that you are using. If you do not have any .so files in your APK, you are already 64-bit compliant.

Normally you can identify if a lib is 64 by looking at the platform directory name:
upload_2019-1-28_21-4-37.png


Hope this clarifies things.
 
Upvote 0

DonManfred

Expert
Licensed User
Longtime User
https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit.html

Get your apps ready for the 64-bit requirement
15 January 2019
Posted by Vlad Radu, Product Manager, Play and Diana Wong, Product Manager, Android 64-bit CPUs deliver faster, richer experiences for your users. Adding a 64-bit version of your app provides performance improvements, makes way for future innovation, and sets you up for devices with 64-bit only hardware. We want to help you get ready and know you need time to plan. We’ve supported 64-bit CPUs since Android 5.0 Lollipop and in 2017 we first announced that apps using native code must provide a 64-bit version (in addition to the 32-bit version). Today we’re providing more detailed information and timelines to make it as easy as possible to transition in 2019.
The 64-bit requirement: what it means for developers
Starting August 1, 2019:
  • All new apps and app updates that include native code are required to provide 64-bit versions in addition to 32-bit versions when publishing to Google Play.
  • Extension: Google Play will continue to accept 32-bit only updates to existing games that use Unity 5.6 or older until August 2021.
Starting August 1, 2021:
  • Google Play will stop serving apps without 64-bit versions on 64-bit capable devices, meaning they will no longer be available in the Play Store on those devices.
  • This will include games built with Unity 5.6 or older.
The requirement does not apply to:
  • APKs or app bundles explicitly targeting Wear OS or Android TV, which are form factors that do not currently support 64-bit code.
  • APKs or app bundles that are not distributed to devices running Android 9 Pie or later.
We are not making changes to our policy on 32-bit support. Play will continue to deliver apps to 32-bit devices. This requirement means that apps with 32-bit native code will need to have an additional 64-bit version as well.
Preparing for the 64-bit requirement
We anticipate that for most developers, the move to 64-bit should be straightforward. Many apps are written entirely in non-native code (e.g. the Java programming language or Kotlin) and do not need code changes. All developers: Here is an overview of the steps you will need to take in order to become 64-bit compliant. For a more detailed outline of this process refer to our in-depth documentation.
  • Inspect your APK or app bundle for native code. You can check for .so files using APK Analyzer. Identify whether they are built from your own code or are imported by an SDK or library that you are using. If you do not have any .so files in your APK, you are already 64-bit compliant.
The last sentence is the most interesting one.
 
Upvote 0

JohnC

Expert
Licensed User
Longtime User
Thank you both :)

So, if my apk contains an .so, its not 64-bit and I need to find out what lib or sdk needs updating.
 
Upvote 0

Computersmith64

Well-Known Member
Licensed User
Longtime User
Thank you both :)

So, if my apk contains an .so, its not 64-bit and I need to find out what lib or sdk needs updating.
No - if there is a .so you need to check whether it is already 64bit compliant. It may have already been updated.

- Colin.
 
Upvote 0

JohnC

Expert
Licensed User
Longtime User
Understood.
 
Upvote 0

JohnC

Expert
Licensed User
Longtime User
No, simply rename the .apk to .zip and you can explore it just as a normal ZIP file.
 
Upvote 0

DavideV

Active Member
Licensed User
Longtime User
Hi JohnC, thanks for the fast answer.
I did it before write here, I don't have any of the listed folders in my apk... Could it be correct?

Annotazione 2019-06-29 164320.png
 
Upvote 0

JohnC

Expert
Licensed User
Longtime User
You need to look in each folder and all subfolders for .so "files" (not .so folders).

And as Colin mentions in post #24, even if you have an .so file, you just need to check with whoever created the lib that is associated with that .so and ask them if it's 64bit compatible.
 
Upvote 0
Top