Android NDK系列(一)手动搭建Native Project

    使用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用于配置项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值