Android NDK开发(一)生成指定平台的ndk及根据native接口生成jni接口

为了初步了解Android NDK开发,本文记录了Android Studio使用过程中的部分内容。


本专栏知识点是通过<零声教育>的音视频流媒体高级开发课程进行系统学习,梳理总结后写下文章,对音视频相关内容感兴趣的读者,可以点击观看课程网址:零声教育


CPU架构

Android⽬前⽀持以下7种ABIs(Application Binary Interface的缩写,即应⽤⼆进制接⼝):mips,mips64,X86,X86–64,arm64-v8a,armeabi,armeabi-v7a

CPU框架 描述 市场占有
arm64-v8a 第8代ARM,64位 ⽬前主流版本
armeabi-v7a 第7代ARM,32位 ⼀些⽼旧⼿机从2011年起⼤规模使⽤
armeabi 第5代ARM,32位,NDK r17不再⽀持 极少,可忽略
x86_64
X86
intel,64位/32位,可兼容arm的so库 1%以下
mips64/mips NDK r17不再⽀持 极少⽤于⼿机,可以忽略

Cpu架构会向下兼容

app->cpp->CMakeLists.txxt 内容注释:

cmake_minimum_required(VERSION 3.4.1)
add_library( 
		# 库名
        native-lib
        # 是否生成动态库
        SHARED
        # 源文件.
        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.
        native-lib
        # 自定义的变量,用的时候用${var}
        ${log-lib})

生成指定平台的ndk

修改app中的build.gradle,分为两种方法

externalNativeBuild {
            cmake {
                cppFlags ""
                //配置动态库 对so有影响
//                arguments '-DANDROID_STL=c++_shared'
//                abiFilters 'armeabi-v7a', 'arm64-v8a'//第一种方法
            }
        }
        ndk { //第二种方法
            abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86'
        }

javah根据native接口生成jni接口

JNI接⼝命名规则:Java_
javah工具设置:File -> settings ->Tools ->External Tools
在这里插入图片描述
使用:右键->External Tools
在这里插入图片描述

最近更新

  1. TCP协议是安全的吗?

    2024-05-14 17:48:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-14 17:48:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-14 17:48:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-14 17:48:06       20 阅读

热门阅读

  1. JVM8参数设置相关

    2024-05-14 17:48:06       14 阅读
  2. Python与FFmpeg:深入理解input参数的使用

    2024-05-14 17:48:06       10 阅读
  3. Stable Diffusion:原理、应用与未来展望

    2024-05-14 17:48:06       15 阅读
  4. 组件通信总结

    2024-05-14 17:48:06       14 阅读
  5. Flutter 中的 MaterialButton 小部件:全面指南

    2024-05-14 17:48:06       13 阅读
  6. oracle中保存点的使用

    2024-05-14 17:48:06       15 阅读
  7. 智能制造在未来制造业中的角色是什么?

    2024-05-14 17:48:06       10 阅读
  8. Python3 笔记:顺序结构

    2024-05-14 17:48:06       9 阅读
  9. 大数据项目流程中 hive优化

    2024-05-14 17:48:06       9 阅读
  10. 系列介绍:《创意代码:Processing艺术编程之旅》

    2024-05-14 17:48:06       13 阅读
  11. 设计模式:中介者模式

    2024-05-14 17:48:06       12 阅读
  12. 【Python】Python中的除法运算

    2024-05-14 17:48:06       14 阅读