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

Android - NDK:编译可执行程序在android设备上运行

在android开发中,调试时会把C代码直接编译成可执行程序,运行在android设备上以确认其功能是否正常。

1、基于NDK编译可执行文件

2、push到 /data/local/tmp目录下

3、设置权限,执行。

push到设备上并执行
ndk工程中build.gradle设置


```groovy
plugins {id 'com.android.application'
}android {compileSdk 32defaultConfig {...ndkVersion "25.1.8937393"  // 指定 NDK 版本externalNativeBuild {cmake {cppFlags ''}}ndk {abiFilters 'arm64-v8a'   // 只编译arm64架构的}}externalNativeBuild {cmake {path file('src/main/cpp/CMakeLists.txt')version '3.18.1'}}
}

executable.cpp


#include <iostream>
#include <string>
#include "unistd.h"
int main(){std::cout << std::endl;std::cout << "start exectue." << std::endl;int count = 10;while(count -- > 0){std::cout << "exectue : count = " << count << std::endl;sleep(1);}std::cout << "end exectue." << std::endl;std::cout << std::endl;return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.18.1)project("broadcast")
# 生成可执行程序
add_executable(exec exec/executable.cpp)

可执行文件生成位置:app\build\intermediates\cmake\release\obj\arm64-v8a\exec

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

相关文章:

  • 快速上手:采用Let‘sEncrypt免费SSL证书配置网站Https (示例环境:Centos7.9+Nginx+Let‘sEncrypt)
  • shell技能树-扩展变量
  • 基于RedHat9部署WordPress+WooCommerce架设购物网站
  • LabVIEW瞬变电磁接收系统
  • Docker入门篇[SpringBoot之Docker实战系列] - 第534篇
  • Linux系统扩容根 (/) 文件系统空间
  • JavaScript之JQuery
  • JAVA学习记录2
  • 计算机网络、嵌入式等常见问题简答
  • 中华人民共和国预算法实施条例
  • 【养生--果蔬汁】
  • LLM架构从基础到精通之词向量1
  • 【SQL】Delete使用
  • KBQA前沿技术
  • 跨年烟花C++代码
  • centos服务器 /1ib64/libm.so.6: version “GLIBc 2.27’ not found 异常
  • 职场:如何快速适应职场新环境?
  • axios的替代方案onion-middleware
  • 设计模式——泛型单例类
  • 三维卷积( 3D CNN)
  • 【JAVA】Java开发小游戏 - 简单的2D平台跳跃游戏 基本的2D平台跳跃游戏框架,适合初学者学习和理解Java游戏开发的基础概念
  • 分享3个国内使用正版GPT的网站【亲测有效!2025最新】
  • CSDN Markdown编辑器设置视频居中完美解决方案
  • Java到底是值传递还是引用传递????
  • 初学stm32 --- 电源监控
  • Win10本地部署大语言模型ChatGLM2-6B
  • [ LeetCode 75 ] 1768. 交替合并字符串
  • (三)通过WebGL绘制一个简单的三角形来理解渲染管线
  • 医学图像分析工具02:3D Slicer || 医学影像可视化与分析工具 支持第三方插件
  • Ollama VS LocalAI:本地大语言模型的深度对比与选择指南