ndk开发(一)环境搭建

目录

1、配置NDK开发环境,本人开发环境(Artic Fox 2020.3.1 Patch 3)

遇到问题:

2、正常项目搭建

3、普通项目改造成ndk项目

在java同级目录创建cpp文件夹

在cpp目录new->C/C++ Source File native-lib

new->File CMakeList,添加CMakeList中的代码到此

添加build.gradle的代码


1、配置NDK开发环境,本人开发环境(Artic Fox 2020.3.1 Patch 3)

File->Settings->System Settings->Android SDK->右侧SDK tools->勾选NDK(side by side)、CMake

遇到问题:

dl.google.com被屏,导致不能获取到未下载的资源选项,找不到ndk和cmake,

此处获得解决方法

大概套路就是,查询dl.google.com的ip,从获取到的ip地址中ping一个可通的ip,配置到c->windosw->system32->drivers->etc下的hosts下,格式:ip地址 dl.google.com,例如:203.208.41.78 dl.google.com,添加进去即可,该问题得到解决,重启studio,获取到未下载的资源,勾选ndk、cmake,下载完毕确定。

2、正常项目搭建

file->new project->下拉找到Native C++->next ->改名->next。。。finish

成功后,项目中会自动在java同级目录生成cpp文件夹,

文件夹下自带CMakeList.txt(配置so库名字和其他属性的地方)、

native-lib.cpp(写native函数的地方),

build.gradle下多了两处代码:

android {
    ...
    defaultConfig {
        ...
        externalNativeBuild {
            cmake {
                cppFlags ''
            }
        }
    }

    externalNativeBuild {
        cmake {
            path file('src/main/cpp/CMakeLists.txt')
            version '3.10.2'
        }
    }
}

3、普通项目改造成ndk项目

有了正常创建项目多出来那几个文件,普通项目改造也就不难了

第一篇ndk开发项目看的这里,所以我是从改造项目学起的,大概步骤如下:

  • 在java同级目录创建cpp文件夹

  • 在cpp目录new->C/C++ Source File native-lib

  • new->File CMakeList,添加CMakeList中的代码到此

cmake_minimum_required(VERSION 3.10.2)

project("myjniproject")

add_library(
         # Sets the name of the library.
        myjniproject

        # Sets the library as a shared library.
        SHARED

        # Provides a relative path to your source file(s).
        native-lib.cpp)


find_library( # Sets the name of the path variable.
        log-lib

        # Specifies the name of the NDK library that
        # you want CMake to locate.
        log)


target_link_libraries( # Specifies the target library.
        myjniproject

        # Links the target library to the log library
        # included in the NDK.
        ${log-lib})
  • 添加build.gradle的代码

android {
    ...
    defaultConfig {
        ...
        externalNativeBuild {
            cmake {
                cppFlags ''
            }
        }
    }

    externalNativeBuild {
        cmake {
            path file('src/main/cpp/CMakeLists.txt')
            version '3.10.2'
        }
    }
}

改造完毕,接下来就是写native方法,跟java层交互了


扬帆

--

起航

猜你喜欢

转载自blog.csdn.net/qwildwolf/article/details/120727504
今日推荐