Issue
I'm maintaining a (relatively) old Android application that uses NDK built library for some functions. It was originally built for NDK platform level 9.
I've been trying to modernize the build infrastructure and as part of that I'm using updated SDK and NDK releases, which dropped support for NDK platform 9 (the minimal version is now 16).
Is there any advantage to not updating the target NDK we build against, and/or not updating to the latest NDK platform level (currently 28), or is it always a good idea to update the NDK target platform level when a new NDK is released?
Solution
The only disadvantage to increasing your NDK API level is that this is equivalent to your minSdkVersion
. If you increase your minSdkVersion
, you're dropping support for older devices.
The NDK itself only drops support for API levels only when they have a trivial number of users. API levels 16 and up account for over 99% of all users. If for some reason your application's usage numbers show a significant number of users on Gingerbread or ICS, you'll need to stick to an older NDK to keep supporting those devices.
The advantage to upgrading your minSdkVersion
is that you have access to more APIs and have fewer configurations to test against (given that the older devices will likely have more problems, that could be a significant reduction in required engineering effort).
The right API level will vary by app (although amusingly there's a twitter account that gives a reasonable suggestion). Check your usage numbers and see where your users are and balance that against the difficulty imposed by supporting older releases. If your application is something like a high fidelity game, odds are Jelly Bean devices won't be able to run your app with any reasonable performance anyway, so there's no sense in supporting those devices.
Answered By - Dan Albert
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.