NDK 開発の開始

プロジェクトで C/C++ の介入が必要な場合、Android プロジェクトは NDK (ネイティブ開発キット) 開発を使用します


1. 新しいプロジェクトを作成する
2. 既存のプロジェクトに NDK 開発を新規に追加する2 つのケースがあります。

新しいプロジェクトを作成

Android Studio を使用してプロジェクトを作成する場合、NDK 開発プロジェクトを選択できます。エディタが自動的に環境を構成し、サンプル コードも用意されています。手順は次のとおりです。

最初の一歩
ここに画像の説明を挿入
次へをクリック
ここに画像の説明を挿入

After the creation is complete, the project directory structure is as following. デフォルトでは、
ここに画像の説明を挿入
C++ コードを格納するためのメイン ディレクトリに cpp が作成され、キーの CmakeLists.txt ファイルもここにあります.
CmakeLists ファイルにはこの名前が必要です.内容は以下の通りです。

ここに画像の説明を挿入
中身を説明

add_library( # 设置so库的名称,随意起名
    myndkapplication

    # 设置lib的权限.
    SHARED

    # 关连c++文件.这里必须是绝对路径,跟标签是CMakeLists.txt存放位置,由于此时位置和native-lib.cpp同级,所以这里直接名称即可
    native-lib.cpp)

キーはadd_libraryです。後者の2つはAndroidライブラリを使用する場合に必要です。関連するログライブラリは次のとおりです。あまり使用されていません。ログは十分です。説明はありません

生成された native-lib.cpp ファイルは、ネイティブ コード C++ ファイルを記述します
ここに画像の説明を挿入
使用方法:
最初に so ライブラリを静的にインポートします

 companion object {
    // Used to load the 'myndkapplication' library on application startup.
    init {
        System.loadLibrary("myndkapplication")
    }
}

ライブラリ名は CmakeLists ファイルで定義された名前です

次に、ネイティブ メソッドを定義します。

external fun stringFromJNI(): String

これはkotlinで定義されており、以下はJavaの定義方法です

public static native String stringFromJNI();

次に、Android コードでネイティブ メソッドを直接呼び出すことができます。
ここに画像の説明を挿入

後で追加する必要があるメソッド、同じプロセス
たとえば、getUserName メソッドを定義するには、まず
ここに画像の説明を挿入
Android コードで最初にネイティブ メソッドを定義し、次に alt+enter ショートカット キーをクリックして、C++ メソッドを自動的に作成します。
ここに画像の説明を挿入

ネイティブ メソッドを既存のプロジェクトに追加する

既存の NDK 以外のプロジェクトが C++ コードに介入したい場合は、最初に開発環境を構成します。

ここに画像の説明を挿入
NDK と CMake をダウンロード

CMakeLists.txt ファイルを作成します。
ファイル名はこの名前にする必要があり、場所は app ディレクトリのどこにでも配置できます。ただし、gradle が構成されている場合、パスはここの保存場所に対応している必要があります。同じディレクトリに配置します
。アプリとして。

ここに画像の説明を挿入
グラドル構成

	  externalNativeBuild {
    cmake {
        path = file("CMakeLists.txt")
    }
}

CMakeLists.txt を src ディレクトリに配置すると、

	  externalNativeBuild {
    cmake {
        path = file("src/CMakeLists.txt")
    }
}

C++ クラス ファイルの作成

ここでは、main の下に cpp ディレクトリを作成し、そのディレクトリに c++ ファイルを配置して、
ここに画像の説明を挿入
構成情報を書き込む CMakeLists ファイルを作成します。

cmake_minimum_required(VERSION 3.10.2)//添加版本

	
add_library(
myndkapp//自己定义的名称
 SHARED//so的类型
src/main/cpp/firstNdk.cpp
) 

環境が構成されたら、C++ メソッドを記述します。これは上記で紹介されており、繰り返されません。

おすすめ

転載: blog.csdn.net/ligaoyuan8030/article/details/123575306