使用NDK编写的本地代码具有高性能等特性,在游戏、图形处理等领域有广泛应用,下面介绍如何手动搭建一个纯C++版的Android项目,通过该项目可以理解Android的项目结构。
一、创建settings.gradle
Android项目是基于Gradle构建的,首先得有settings.gradle文件,正常情况下该文件主要用于配置子模块,但是这里没有子模块,只配置了插件管理和依赖的远程仓库,内容如下:
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
二、创建build.gradle
build.gradle 是Gradle的构建脚本,它用于定义项目的构建配置和依赖关系,可以指定项目的编译版本、依赖库、插件等信息,以及定义构建任务和构建流程。本示例的build.gradle内容如下。
plugins {
id 'com.android.application' version '7.2.2'
}
android {
compileSdk 29
ndkVersion "25.1.8937393"
buildToolsVersion = "30.0.3"
namespace 'com.sino.nativesample'
defaultConfig {
applicationId "com.sino.nativesample"
minSdkVersion 28 // for Vulkan, need at least 24
versionCode 1
versionName "1.0"
externalNativeBuild {
cmake {
cppFlags '-std=c++17'
arguments "-DANDROID_STL=c++_shared"
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
res.srcDir 'res'
}
}
buildTypes {
release {
minifyEnabled false
}
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
}
build.gradle主要内容如下:
1、使用插件com.android.application构建Android应用程序。
2、配置Android应用的构建信息,这里的信息大部分与Android Studio自动生成的信息,不一样的是sourceSets用于指定AndroidManifest.xml文件和resource目录,这里分别使用根目录的AndroidManifest.xml和res目录。
3、本示例使用使用C++语言开发,在externalNativeBuild指定CMakeLists.txt文件路径,这里使用根目录的CMakeLists.txt。
三、创建AndroidManifest.xml
AndroidManifest.xml用于配置项目