【Android NDK 开发】在 C 代码中获取 Android 系统信息 ( NDK 项目创建 | NDK 配置 | 获取 Android 系统版本号 )(一)

简介: 【Android NDK 开发】在 C 代码中获取 Android 系统信息 ( NDK 项目创建 | NDK 配置 | 获取 Android 系统版本号 )(一)

I . 创建 NDK 项目


1. 创建支持 NDK 的项目 : 当前最新的 Android Studio 支持直接创建 支持 C/C++ 的带 NDK 配置的项目 ;


如果向现有项目加入 C/C++ 代码 , 首先要创建 cpp 代码文件 , 然后创建 CMakeList.txt 编译脚本 , 最后在 build.gradle 中配置该编译脚本 , 这里不再详细描述 ;


在菜单栏中选择 File -> New -> New Project , 在弹出的对话框中选择 Native C++ 项目 ;


image.png


2. 设置项目属性 : 输入项目名称 , 包名 , 选择项目位置 ;


image.png


3. 选择 C++ 版本 : 选择默认即可 ;



image.png



II . NDK 项目 相关配置


1. CMakeList.txt C/C++ 代码编译脚本 :


# For more information about using CMake with Android Studio, read the
# documentation: https://d.android.com/studio/projects/add-native-code.html
# 设置 CMake 编译 Native 库 需要的最小版本号
cmake_minimum_required(VERSION 3.4.1)
# 创建库并为其命名 , 设置该库类型 , 静态(.a) 或 动态 (.so) , 设置编译的源代码位置
# 可以在此定义不同的库 , 并且 CMake 会编译这些库
# Gradle 在 APK 中会自动打包并使用这些库
add_library( # 设置库的名称
             native-lib
             # 设置该库时静态库
             SHARED
             # 设置源代码的相对路径 , 路径是相对于该 CMakeList.txt 编译脚本的
             native-lib.cpp )
# 查找指定的预编译库 , 将查找到的库 当做变量 存储 起来 , 之后可以直接使用该变量链接 目标库 ;
# CMake 默认包含系统库 , 这里我们需要指定 想要添加的 公共 NDK 库 名称
# CMake 会在编译前验证该库是否存在
find_library( # 设置变量路径名称
              log-lib
              # 指定 你想要的 CMake 定位的 NDK 库名称
              log )
# 指定 CMake 要链接到目标库的 其它库 ;
# 你可以链接多种库 , 如 在该脚本中定义的库 , 预编译的第三方库 , 系统库 等 ;
target_link_libraries( # 指定目标库
                       native-lib
                       # 将 NDK 中的 log 日志库链接到目标库
                       ${log-lib} )


2. build.gradle 项目编译脚本配置 :


apply plugin: 'com.android.application'
android {
    ...
    //设置 CMake 的编译脚本位置 , 和 Cmake 的版本号
    externalNativeBuild {
        cmake {
            path "src/main/cpp/CMakeLists.txt"
            version "3.10.2"
        }
    }
}
dependencies {
    ...




目录
相关文章
|
1月前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
114 1
|
1月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
102 2
|
1月前
|
XML Java 数据库
安卓项目:app注册/登录界面设计
本文介绍了如何设计一个Android应用的注册/登录界面,包括布局文件的创建、登录和注册逻辑的实现,以及运行效果的展示。
151 0
安卓项目:app注册/登录界面设计
|
21天前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
在 Android 开发中,选择合适的架构模式对于构建中大型项目至关重要。常见的架构模式有 MVVM、MVP、MVI、Clean Architecture 和 Flux/Redux。每种模式都有其优缺点和适用场景,例如 MVVM 适用于复杂 UI 状态和频繁更新,而 Clean Architecture 适合大型项目和多平台开发。选择合适的架构应考虑项目需求、团队熟悉度和可维护性。
48 6
|
30天前
|
前端开发 JavaScript 测试技术
Android适合构建中大型项目的架构模式全面对比
Android适合构建中大型项目的架构模式全面对比
46 2
|
1月前
|
编译器 Android开发
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
|
JSON Android开发 数据格式
你想要的Android全量版本更新功能,我这儿都有!
你想要的Android全量版本更新功能,我这儿都有!
327 0
|
6天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
11天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
13天前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异和挑战
【10月更文挑战第37天】在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统扮演着主角。它们各自拥有独特的特性、优势以及面临的开发挑战。本文将深入探讨这两个平台在开发过程中的主要差异,从编程语言到用户界面设计,再到市场分布的不同影响,旨在为开发者提供一个全面的视角,帮助他们更好地理解并应对在不同平台上进行应用开发时可能遇到的难题和机遇。
下一篇
无影云桌面