What are the implications of portability of using NDK?

I need some operations that must be performed on large long [] s in order to be very fast. The only option I see is to use the Android NDK. Can someone give a summary of what the NDK does with my application, in terms of which devices can use the application and what are the consequences for maintaining my application?

I saw that you need to specify which architecture you want to compile for your C code, for example ARM and Intel. What happens when new architectures for Android arrive? Do I need to update the application every time a new architecture appears?

+7
java android android-ndk
source share
1 answer

Can someone give a summary of what the NDK does with my application, with which devices can use the application

Only applications running on a processor for which you have NDK .so will be able to run your application.

and what are the implications for maintaining my application?

Testing on multiple processor architectures may require hardware for each architecture. I say “maybe” because ...

What happens when new architectures for Android arrive?

... we really have no idea. Besides adding support for ARM7, the NDK has not changed its objectives.

There are currently two major non-ARM platforms for Android, which I can think of:

  • Intel Atom used by Google TV devices. At the time of this writing, the NDK does not support this. However, you also cannot send applications for Google TV. Thus, it is possible that the NDK will be updated by the time we can write Google TV applications.
  • MIPS At the time of this writing, the NDK does not support this. I have no idea what plans might be in this area.

Emulators are supposed to emulate these processors. In the end, the existing Android emulator mimics the ARM5. However, if and until this happens, you will need test equipment for each architecture that you intend to support.

Do I need to update the application every time a new architecture appears?

Only to support the new architecture. Until there is a critical mass of devices that can access your application, any new architecture will not be very important. The "critical mass" may be from the general sales of devices, or it may be because you are making a deal with OEM so that your application is connected to someone else's device.

The code is simple, although it will work on all arches.

Watch your concept.

+7
source share

All Articles