Когда проект требует вмешательства C/C++, проект Android использует разработку NDK (Native Development Kit).
Возможны два случая
: 1. Создать новый проект.
2. Добавить разработку NDK в существующий проект.
создать новый проект
При использовании Android Studio для создания проекта вы можете выбрать проект разработки NDK, редактор автоматически настроит для вас среду, а также будет образец кода, шаги следующие:
После завершения создания структура каталогов проекта выглядит следующим образом.По
умолчанию в основном каталоге создается cpp для хранения кода C++, здесь же находится ключевой файл CmakeLists.txt.Файл
CmakeLists должен иметь такое имя, которое исправлено, и содержание выглядит следующим образом
объясни что внутри
add_library( # 设置so库的名称,随意起名
myndkapplication
# 设置lib的权限.
SHARED
# 关连c++文件.这里必须是绝对路径,跟标签是CMakeLists.txt存放位置,由于此时位置和native-lib.cpp同级,所以这里直接名称即可
native-lib.cpp)
Ключ add_library, последние два нужны при использовании библиотеки 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.
Имя файла должно быть этим именем, а местоположение может быть размещено в любом месте в каталоге приложения. Однако при настройке gradle путь должен соответствовать месту хранения здесь. Поместите его в тот же
каталог как приложение.
конфигурация градиента
externalNativeBuild {
cmake {
path = file("CMakeLists.txt")
}
}
Если файл CMakeLists.txt находится в каталоге src, он
externalNativeBuild {
cmake {
path = file("src/CMakeLists.txt")
}
}
Создать файл класса С++
Здесь создайте каталог cpp в main, а затем поместите файл c++ в
файл каталога CMakeLists, чтобы записать информацию о конфигурации.
cmake_minimum_required(VERSION 3.10.2)//添加版本
add_library(
myndkapp//自己定义的名称
SHARED//so的类型
src/main/cpp/firstNdk.cpp
)
После того, как среда настроена, пришло время написать метод c++, который представлен выше и повторяться не будет.