在android开发中,调试时会把C代码直接编译成可执行程序,运行在android设备上以确认其功能是否正常。
1、基于NDK编译可执行文件
2、push到 /data/local/tmp目录下
3、设置权限,执行。
ndk工程中build.gradle设置
bash
```groovy
plugins {
id 'com.android.application'
}
android {
compileSdk 32
defaultConfig {
...
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
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
bash
cmake_minimum_required(VERSION 3.18.1)
project("broadcast")
# 生成可执行程序
add_executable(exec exec/executable.cpp)
可执行文件生成位置:app\build\intermediates\cmake\release\obj\arm64-v8a\exec