当前位置: 首页 > news >正文

Android平台上执行C/C++可执行程序,linux系统编程开发,NDK开发前奏。

Android平台上执行C/C++可执行程序,linux系统编程开发,NDK开发前奏准备。

1.下载NDK,搭建NDK开发环境

下载地址

https://developer.android.com/ndk/downloads

下载过程中点击下面箭头的地方,点击鼠标右键,复制好下载链接地址,然后进入ubuntu中。

在这里插入图片描述

复制链接到ubuntu中使用wget命令下载

在这里插入图片描述

使用unzip命令解压

在这里插入图片描述

写段c语言的简单代码

在这里插入图片描述

编译一下

在这里插入图片描述

然后执行一下

在这里插入图片描述

执行成功输出我们的打印test,但是此时如果把这个可执行文件push到Android设备中是没法运行的,因为Android底层虽然也是Linux系统,但是是一个阉割版的,所以必须要通过NDK交叉编译,才能使得程序能够在Android设备中运行起来。

2.NDK链接Android设备执行C/C++代码

首先要安装cmake工具

在这里插入图片描述

搞一个文本文件,主要是用于使用NDK环境里面的工具链,这样编译的程序能在Android设备运行。

在这里插入图片描述

这里面写好脚本,注意project的名字要跟你自己的对应起来,前面我们用的main.c所以这里就是它

在这里插入图片描述

搞一个脚本文件,箭头处要放自己的NDK路径

在这里插入图片描述

执行

chmod +x build.sh 是一个命令行指令,用于给文件 build.sh 添加可执行权限。chmod 是一个用于修改文件权限的命令,+x 表示添加可执行权限,build.sh 是要修改权限的文件名。执行这个命令后,你就可以通过 ./build.sh 来执行 build.sh 文件了。

chmod +x build.sh
./build.sh

在这里插入图片描述

输出这个就是成功了

在这里插入图片描述

启动我们的模拟器把编译好的程序adb push到Android设备中 看看能不能正常运行。

在这里插入图片描述

pushNDK的工具库

adb push /home/android/ndk/android-ndk-r26b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/libc++_shared.so /data/local/tmp

在这里插入图片描述

进入shell环境执行程序

在这里插入图片描述

输出打印,,正确

http://www.lryc.cn/news/223982.html

相关文章:

  • elasticsearch 基本使用,ES8.10
  • pytorch中常用的损失函数
  • 申克SCHENCK动平衡机显示器维修CAB700系统控制面板
  • 【论文阅读】PSDF Fusion:用于动态 3D 数据融合和场景重建的概率符号距离函数
  • React 测试笔记 03 - 测试 Redux 中 Reducer 状态变化
  • xilinx primitives(原语)
  • 机器学习 - DBSCAN聚类算法:技术与实战全解析
  • kafka微服务学习
  • 5G网络切片,到底是什么?
  • linux安装nodejs
  • 第1天:Python基础语法(一)
  • ppt聚光灯效果
  • 图文解析 Nacos 配置中心的实现
  • P1918 保龄球
  • SAP-PP-报错:工作中心 7333_JQ 工厂 7331 对任务清单类型 N 不存在
  • MySQL -- 用户管理
  • IOS浏览器不支持对element ui table的宽度设置百分比
  • Vue+OpenLayers 创建地图并显示鼠标所在经纬度
  • 01-编码-H264编码原理
  • RxJava/RxAndroid的操作符使用(二)
  • 【C语法学习】20 - 文件访问顺序
  • Etcd 常用命令与备份恢复
  • 获取任意时间段内周、季度、半年的二级联动
  • 前端面试系列之工程化篇
  • 京东按关键词搜索商品列表接口:竞品分析,商品管理,营销策略制定
  • Microsoft Dynamics 365 CE 扩展定制 - 9. Dynamics 365扩展
  • 多篇论文介绍-Wiou
  • Django介绍,安装,创建
  • Java通过javacv获取视频、音频、图片等元数据信息(分辨率、大小、帧等信息)
  • flask和fastapi的区别以及demo实现