Android Studio中使用cmake开发JNI实战

这篇具有很好参考价值的文章主要介绍了Android Studio中使用cmake开发JNI实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

JNI学习大纲

一、JNI编程入门

二、Android Studio中使用cmake开发JNI实战

第一章节我们介绍了JNI的开发步骤,那这一章节我们就开始在Android Studio中实战一下吧,Let's Start。

1. Android Studio中安装CMake插件

  • AS中菜单栏选择Tools>SDK Manager
  • 在Android SDK中选择SDK Tools,安装CMake和NDK。

Android Studio中使用cmake开发JNI实战,JNI开发,Android,android studio,c++,android

2. JNI开发

2.1 编写JNI代码

在项目工程下的src/main创建cpp目录,编写native-lib.cpp(JNI代码实现文件)和对应的CMakeLists.txt(JNI代码编译配置)。文章来源地址https://www.toymoban.com/news/detail-628628.html

// native-lib.cpp

#include <jni.h>
#include <android/log.h>
#include <string>

extern "C" JNIEXPORT jstring JNICALL
Java_com_jni_test_JNITestService_stringByJNI(
        JNIEnv *env, jobject /* this */) {
    std::string hello = "hello JNI from C++";
    return env->NewStringUTF(hello.c_str());
}
// CMakeLists.txt

# Sets the minimum version of CMake required to build the native library.
cmake_minimum_required(VERSION 3.10.2)

# Declares and names the project.
project("jnitest")

# Creates and names a library, sets it as either STATIC
# or SHARED, and provides the relative paths to its source code.
# You can define multiple libraries, and CMake builds them for you.
# Gradle automatically packages shared libraries with your APK.
set(project_root_dir ${CMAKE_CURRENT_SOURCE_DIR}/../../../..)
include_directories(${project_root_dir}/common)

add_library( 
    # Sets the name of the library.
    jnitest

    # Sets the library as a shared library.
    SHARED

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

# Searches for a specified prebuilt library and stores the path as a
# variable. Because CMake includes system libraries in the search path by
# default, you only need to specify the name of the public NDK library
# you want to add. CMake verifies that the library exists before
# completing its build.

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
)

# Specifies libraries CMake should link to your target library. You
# can link multiple libraries, such as libraries you define in this
# build script, prebuilt third-party libraries, or system libraries.

target_link_libraries( 
    # Specifies the target library.
    jnitest
    
    # Links the target library to the log library included in the NDK.
    ${log-lib}
)

2.2 gradle中编译配置

android {
    ...
    defaultConfig {
        ...
        externalNativeBuild {
            // 设置生成so的arm架构
            cmake {
                cppFlags ''
                abiFilters 'arm64-v8a'
            }
        }
    }

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

到了这里,关于Android Studio中使用cmake开发JNI实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android Studio 进行NDK开发,实现JNI,以及编写C++与Java交互(Java调用本地函数)并编译出本地so动态库

    1.首先认识一下NDK。 (1)什么是NDK? NDK全称是Native Development Kit,NDK提供了一系列的工具,帮助开发者快速开发C/C++的动态库,并能自动将so和java应用一起打包成apk。NDK集成了交叉编译器(交叉编译器需要UNIX或LINUX系统环境),并提供了相应的mk文件隔离CPU、平台、ABI等差异,

    2024年02月11日
    浏览(48)
  • Android studio配置OpenCV的JNI接口,实现C++代码编程

    目录 一、下载OpenCV-android-sdk 二、新建项目 三、导入OpenCV包  四、配置OpenCV的JNI接口,拷贝OpenCV所需的头文件和库文件 五、修改Cmake文件  六、配置app的build.gradle文件  七、测试 OpenCV官网地址:https://opencv.org/  点击Library--Releases,下载Android版本,解压得到 OpenCV-android-sdk文件

    2024年02月10日
    浏览(49)
  • 利用android studio 生成 JNI需要的动态库so文件 图文详解

    到官网下载,此处不再陈述 JNI 是JDK里的内容,电脑上正确安装并配置JDK即可。 直接在Android studio下载(File----Settings) 工具一: AndroidStudio下载安装cmake(调试Native时会使用到LLDB,请一同勾选下载安装) 工具二: 用NDK的脚本工具使用ndk-build 新建项目,选择Native C++,如下图所

    2024年02月09日
    浏览(87)
  • 【环境配置】Android-Studio-OpenCV-JNI以及常见错误 ( 持续更新 )

    最近一个项目要编译深度学习的库,需要用到 opencv 和 JNI,本文档用于记录环境配置中遇到的常见错误以及解决方案 解决办法: 删除文件 .idea/gradle.xml 和 .idea/workspace.xml , 重新编译; 解决办法:Invalid Gradle JDK configuration found 原因是NDK版本过高,跟当前的AndroidStudio版本不匹配

    2024年02月11日
    浏览(45)
  • OpenCV(一):Android studio jni配置OpenCV(亲测有效,保姆级)

    目录 1.下载OpenCV的SDK 2.创建Android Native C++项目 3.Android项目中导入OpenCV工程 4.导入OpenCV的库文件 5.实现opencv高斯模糊图像处理的demo 要在Android Studio中配置使用OpenCV库的C++方法,需要完成以下步骤: 1.下载OpenCV的SDK 首先,您可以从OpenCV官方网站(Releases - OpenCV )下载适用于And

    2024年02月03日
    浏览(51)
  • 《Android Studio开发实战》学习(八)- 点击按钮切换图片

    在前一篇文章 1 中实现了使用Android Studio开发一个图片展示App,熟悉了简单控件ImageView的使用 2 ,在这里继续研究Android Studio的使用方法。本文的目的是介绍如何开发一个图片切换App,实现点击按钮,在窗口中切换不同的图片。 现在想要设计一个图片切换工具,页面布局是 图

    2024年02月09日
    浏览(38)
  • Android Studio开发实战:从零基础到App上线

    第1章  Android开发环境搭建 1     1.1  Android开发简介 1         1.1.1  Android的发展历程 1         1.1.2  Android Studio的发展历程 2     1.2  搭建Android Studio开发环境 2         1.2.1  计算机配置要求 2         1.2.2  安装Android Studio 3         1.2.3  下载Android的S

    2024年02月20日
    浏览(47)
  • Android Studio开发之使用内容组件Content获取通讯信息讲解及实战(附源码 包括添加手机联系人和发短信)

    运行有问题或需要源码请点赞关注收藏后评论区留言 在实际开发中,普通App很少会开放数据接口给其他应用访问。内容组件能够派上用场的情况往往是App想要访问系统应用的通讯数据,比如查看联系人,短信,通话记录等等,以及对这些通讯数据及逆行增删改查。 首先要给

    2024年02月09日
    浏览(64)
  • Android Studio App开发之网络通信中使用GET方式调用HTTP接口的讲解及实战(附源码 超详细必看)

    运行有问题或需要源码请点赞关注收藏后评论区留言~~~ Android开发采用Java作为编程语言,也就沿用了Java的HTTP连接工具HttpURLConnection,不管是访问HTTP接口还是上传或下载文件都是用它来实现。它有几个关键点 1:HttpURLConnection默认采取国际通行的UTF-8编码,中文用GBK编码 2:多数

    2024年02月05日
    浏览(109)
  • Android Studio App开发之通知推送Notification的讲解及实战(给用户推送信息实战)

    运行有问题或需要全部资源请点赞关注收藏后评论区留言~~~ 在APP的运行过程中,为了让用户及时收到某些消息,有必要由App主动向用户推送消息通知,以免错过有价值的信息。 在手机屏幕的顶端下拉会弹出通知栏,里面存放的便是App主动推给用户的提醒消息,消息通知的组

    2023年04月08日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包