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/mipsNDK 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
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/688852.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB公式推导和导出Latex格式的方法

最近在推机械臂正逆运动学公式&#xff0c;那个旋转矩阵乘起来是真滴多&#xff0c;手算算的脑浆疼。突然想起来MATLAB还有符号计算这个功能&#xff0c;于是翻了翻手册&#xff0c; 找到了这个利用MATLAB帮助计算公式并且直接导出Latex格式的办法。 先定义符号变量&#xff0…

redis安装与群集

项目需求&#xff1a; 1.安装redis 2.测试redis性能&#xff0c;100个并发连接&#xff0c;100000个请求测试 3.在当前数据库下创建键值对 a11,a22,a33,a44&#xff0c;a55 4.查看键值对 5.将a1改名为a11,将a2删除 5.将a3移动到1号数据库 6搭建redis集群(可选) 测试环境…

软件测试之 接口测试 Postman使用

接口测试 URL HTTP协议 HTTP 请求部分 HTTP响应部分 Postman使用 界面介绍 这里 注意 如果你无法访问 那么 captchaImage这个打错了&#xff0c;给的资料中是错误的地址 https://kdtx-test.itheima.net/api/captchaImage登录接口 科大天下 第一个接口的登录设置 https://kd…

# 电脑突然连接不上网络了,怎么办?

电脑突然连接不上网络了&#xff0c;怎么办&#xff1f; 一、原因分析&#xff1a; 1、IP 地址冲突 2、DNS 解析出现问题。 3、无线网卡驱动损坏。 二、解决方法&#xff1a; 1、修改自动获取 IP 地址为手动设置 IP 地址&#xff1a; 1&#xff09;查看自己电脑自动获取…

掼蛋—开牌三步走

掼蛋是消遣也是一项脑力活动&#xff0c;除了牌运&#xff0c;还要掌握技巧。和大家一起分享一下掼蛋游戏中的“开牌三步走”技巧。 1、快速理牌 目的&#xff1a;潜力最大化 开局时可以快速查看一下自己的同花顺&#xff0c;优先保留不损害其他炸弹的同花顺&#xff0c;并及时…

Paper Digest | 基于原型学习的实体图谱预训练跨域推荐框架

欢迎大家在 GitHub 上 Star 我们&#xff1a; 分布式全链路因果学习系统 OpenASCE: https://github.com/Open-All-Scale-Causal-Engine/OpenASCE 大模型驱动的知识图谱 OpenSPG: https://github.com/OpenSPG/openspg 大规模图学习系统 OpenAGL: https://github.com/TuGraph-…

靠谱的知识竞赛活动公司怎么去找

搞知识竞赛活动&#xff0c;找一家靠谱的知识竞赛活动公司来承办是重中之重&#xff0c;他直接决定了竞赛活动的成败和效果。那么&#xff0c;如何去找这样一家公司呢&#xff1f; 知识竞赛活动一般包括两大部分内容&#xff0c;一部分是舞台及其包装&#xff0c;另一部分是知识…

WT32-ETH01作为TCP Client进行通讯

目录 模块简介WT32-ETH01作为TCP Client设置电脑作为TCP Server设置连接并进行通讯总结 模块简介 WT32-ETH01网关主要功能特点: 采用双核Xtensa⑧32-bit LX6 MCU.集成SPI flash 32Mbit\ SRAM 520KB 支持TCP Server. TCP Client, UDP Server. UDP Client工作模式 支持串口、wif…

【Java】高效解决 非降序数组合并 两种方法

欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持&#xff01; oj&#xff1a;https://leetcode.cn/problems/merge-sorted-array/submissions/ 合并两个有序数组是个经典问题&#xff0c;它不仅在算法学习中频繁出现&#xff0c;也在实际开发中经常遇到。合并数…

NLP 词嵌入向量即word embedding原理详解

文章目录 1. 前言2. 目标3. CBOW4. 训练结果5. 如何使用6. 延伸7. 参考 1. 前言 现在 NLP 相关的技术大概率会接触到词向量、word embedding&#xff08;词嵌入&#xff09;诸如此类的术语。然后网上一搜&#xff0c;哦&#xff0c;有一个 Word2Vec 的技术&#xff0c;能够把单…

租赁商城小程序基于ThinkPHP+FastAdmin+UniApp(源码搭建/上线/运营/售后/更新)

提供用户物品租赁服务的应用程序&#xff0c;方便客户搭建各种类型的租赁场景服务。通过小程序端多角色进行平台管理&#xff0c;用户租赁商品缴纳租金及押金&#xff0c;员工端可操作商品出库和归还&#xff0c;订单完成后押金原路退回。 ​在线预约和支付&#xff1a;用户可以…

构建内网yum仓库

1、环境介绍 系统&#xff1a;龙蜥os 7.9 2、安装epel源 yum install epel-release -y3、安装nginx服务器并启动 yum install nginx httpd -y配置 server {listen 80;server_name repo.wtown.com;root /usr/share/nginx/html/repo;index index.html index.htm;location / {…