Android development using C and C++

  • I am a C, C++ developer. I am interested in mobile development. I want to know how can I develop Android apps using C and C++, I have read that they are providing a kit for C, C++ developers but it does not have all functions as of Java kit. Should I go for C/C++ development kit or it's better to learn java as they may not provide all the functionality in future?

  • Klaim

    Klaim Correct answer

    9 years ago

    Short version : working with C++ on Android is possible and easier with each Android SDK/NDK version, but it's harder than working with Java.


    Long version :

    For each version, Google adds more functionalities to Android Native Development Kit and makes it more and more independant on the Java code.

    Read http://developer.android.com/sdk/ndk/overview.html for more details:

    Write a native activity, which allows you to implement the lifecycle callbacks in native code. The Android SDK provides the NativeActivity class, which is a convenience class that notifies your native code of any activity lifecycle callbacks (onCreate(), onPause(), onResume(), etc). You can implement the callbacks in your native code to handle these events when they occur. Applications that use native activities must be run on Android 2.3 (API Level 9) or later. You cannot access features such as Services and Content Providers natively, so if you want to use them or any other framework API, you can still write JNI code to do so.

    The problem is just that if you use the most recent NDK, you'll not be able to deploy and a lot of not-recent Android versions.

    Anyway even with previous NDK versions, you can have minimal Java code (for interacting with the OS) and the full application code in C++ or anything native.

    There are also efforts in helping native developers to work fully in C or C++ via IDE plugins like this Vs-Android that is a plugin for Visual Studio 201x hiding all the compilation and generation process from you : http://code.google.com/p/vs-android/

    Also, if you plan do port your application to other OS, going with C++ for the core of your application (maybe with a scripting language on top) is a good idea. It's just more expensive on development time than other alternatives - for reasons specific to C++ and it's available dev tools implementations, for example too much compilation times can kill your effective productivity.

    That being said, that is not the most easy way to work on mobile apps.

License under CC-BY-SA with attribution


Content dated before 6/26/2020 9:53 AM