IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Native开发工具之使用CMake构建工具(四),android最新面试题及答案 -> 正文阅读

[移动开发]Native开发工具之使用CMake构建工具(四),android最新面试题及答案

2.环境搭建

安装NDK开发所需的工具

在SDK Tools中安装以下组件:

Cmake:NDK构建工具

LLDB:NDK调试工具

NDK:NDK开发工具集

创建NDK项目

在创建项目时,勾选【Include C++ support】选项,然后一路下一步,到达【Customize C++ Support】设置页:

可以看到三个选项:

1.C++ Standard:C++标准,选择【Toolchain Default】会使用默认的CMake配置。

2.Exceptions Support:支持C++异常处理,标志为 -fexceptions。

3.Runtime Type Information Support:支持运行时类型识别,标志为
-frtti,程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型。

在这里我们使用默认C++标准,不勾选下面的两个选项,点击【Finish】按钮进入下一个环节。

3.NDK项目

看下项目目录:

上图中用红框标识了NDK项目与普通项目的不同之处,下面分别来看看:

首先来看下build.gradle配置:

apply plugin: ‘com.android.application’

android {
compileSdkVersion 26
defaultConfig {
applicationId “com.yl.ndkdemo”
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName “1.0”
testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner”
externalNativeBuild {
cmake {
cppFlags “”
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’
}
}
externalNativeBuild {
cmake {
path “CMakeLists.txt”
}
}
}

dependencies {
// 引用一些库
}

可以看到build.gradle配置中多了两个externalNativeBuild配置项:

defaultConfig里面的:

主要配置了Cmake的命令参数,例如在创建项目时,如果勾选了【Exceptions Support】和【Runtime Type Information Support】选项,是这样配置的:

externalNativeBuild {
cmake {
cppFlags “-fexceptions -frtti”
}
}

更多命令参数可以查看Android NDK CMake文档

defaultConfig外面的:

主要定义了CMake的构建脚本CMakeLists.txt的路径。

CMake的构建脚本CMakeLists.txt

CMakeLists.txt是CMake的构建脚本,作用相当于ndk-build中的Android.mk,看下CMakeLists.txt:

设置Cmake最小版本

cmake_minimum_required(VERSION 3.4.1)

编译library

add_library( # 设置library名称
native-lib

设置library模式

SHARED模式会编译so文件,STATIC模式不会编译

SHARED

设置原生代码路径

src/main/cpp/native-lib.cpp )

最后

下面是辛苦给大家整理的学习路线,有需要的可以点击这里免费获取

E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)
[外链图片转存中…(img-jGdlmT0r-1645108956448)]

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:17:18  更:2022-02-19 01:17:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:57:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码