Skip to content

This project is just the setup for the NDK in android, the communication Android project with C/C++ file. In this example we print only a text from C/C++ file to Android Project.

Notifications You must be signed in to change notification settings

NicosNicolaou16/FlutterAndroidProjectAndNDK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flutter Android Project and NDK

This project is just the setup for the NDK in android, the communication Android project with C/C++ file. In this example we print only a text from C/C++ file to Android Project. The communication between Android Native with Flutter, I used channel (check the references). But, if you need an extra example about the channel check my repository for more information. https://github.com/NicosNicolaou16/ExampleChannelNativeAndroidWithCustomData

NOTE: EXAMPLE ONLY FOR ANDROID

Similar project with (Dart Language)

https://github.com/NicosNicolaou16/AndroidProjectAndNDK

Versions

Flutter SDK version: 3.19.6
Dart Version: 3.3.4

Setup - Steps

  • Install the latest NDK and CMake version from Android Studio SDK Manager from the SDK Tools section.
  • Create the cpp package, add the CMake .txt and .cpp file. Some name below is base on .cpp file name.
# For more information about using CMake with Android Studio, read the
# documentation: https://d.android.com/studio/projects/add-native-code.html

# Sets the minimum version of CMake required to build the native library.

cmake_minimum_required(VERSION 3.4.1)

# Creates and names a library, sets it as either STATIC
# or SHARED, and provides the relative paths to its source code.
# You can define multiple libraries, and CMake builds them for you.
# Gradle automatically packages shared libraries with your APK.

add_library( # Sets the name of the library.
        message # based on .cpp file name

        # Sets the library as a shared library.
        SHARED

        # Provides a relative path to your source file(s).
        message.cpp) # based on .cpp file name

# Searches for a specified prebuilt library and stores the path as a
# variable. Because CMake includes system libraries in the search path by
# default, you only need to specify the name of the public NDK library
# you want to add. CMake verifies that the library exists before
# completing its build.

find_library( # Sets the name of the path variable.
        log-lib

        # Specifies the name of the NDK library that
        # you want CMake to locate.
        log)

# Specifies libraries CMake should link to your target library. You
# can link multiple libraries, such as libraries you define in this
# build script, prebuilt third-party libraries, or system libraries.

target_link_libraries( # Specifies the target library.
        message # based on .cpp file name

        # Links the target library to the log library
        # included in the NDK.
        ${log-lib})
  • Add the follow code in Gradle file.
android {

    //Other Gradle Code Here...

    externalNativeBuild {
        cmake {
            path = file("src/main/cpp/CMakeLists.txt")
            version = "3.22.1"
        }
    }
    ndkVersion = "26.1.10909125"

    //Other Gradle Code Here...
}
  • Load the C/C++ file.
companion object {
    /**
     * Load the C file
     * */
    init {
        System.loadLibrary("message")
    }
}
  • Initialize the method(s) from .cpp file.
private external fun message(): String 

Check my article

https://medium.com/@nicosnicolaou/ndk-setup-on-android-flutter-android-project-1571d9a3f5cb

References/Tutorials Follow

https://github.com/android/ndk-samples
https://developer.android.com/studio/projects/add-native-code
https://blog.mindorks.com/getting-started-with-android-ndk-android-tutorial/
https://medium.com/@shreebhagwat94/flutter-platform-channel-46578d21e69
https://blog.devgenius.io/use-flutter-screens-in-native-android-app-share-data-among-them-d97d670807a6

About

This project is just the setup for the NDK in android, the communication Android project with C/C++ file. In this example we print only a text from C/C++ file to Android Project.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published