I am studying Android NDK. What are the advantages and disadvantages of NDK? Are there any good references to study Android NDK?
The Android NDK is a toolset that lets you implement parts of your app in native code, using languages such as C and C++. For certain types of apps, this can help you reuse code libraries written in those languages.
For developers, there are fewer chances that they make app which is not already present. As all types of apps are already published in the app store so new companies and developers have difficult time entering the android market. If Google finds any issue in your app then it will behave very strictly and also terminate your developer account.
As android is a very large operating system that consumes lot of storage and some default apps also comes with operating system so low specification devices run slow. If you install many apps in these devices then your mobile will become unresponsive or heat up quickly. Android is not good at virus protection.
With the new OS, apps can restore and make backup of their data. This feature help apps to recover from any bad update or user behaviour. In the older version of Android, most apps always run in the background and come to foreground as they wish. But in new version of android apps cannot automatically come to foreground.
Have you read the official Android developer page regarding NDK?
Quote:
The Android NDK is a companion tool to the Android SDK that lets you build performance-critical portions of your apps in native code. It provides headers and libraries that allow you to build activities, handle user input, use hardware sensors, access application resources, and more, when programming in C or C++. If you write native code, your applications are still packaged into an .apk file and they still run inside of a virtual machine on the device. The fundamental Android application model does not change.
Using native code does not result in an automatic performance increase, but always increases application complexity. If you have not run into any limitations using the Android framework APIs, you probably do not need the NDK.
So, unless you're doing some very performance intensive stuff that will choke your application when programming in Java, I'd suggest you stay clear of NDK. It's messier and more difficult to write NDK code properly unless you really know what you're doing and have strong knowledge of C and/or C++.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With