プロジェクトで 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++ メソッドを記述します。これは上記で紹介されており、繰り返されません。