title: 使用ndk创建Android系统内的可执行程序
date: 2020-02-29 21:08:20
tags:
-
android
-
linux可执行文件
-
arm
-
C语言
使用ndk创建Android系统内的可执行程序
我们在用ndk的时候大多数是创建的so文件,然后在java层调用.但是今天我们要编写的是直接可以在Android系统上面执行的文件,也就是arm版本的elf文件
首先新建一个目录
我们就简单的写一个demo,目录的名字我就叫Calc,因为我们要用c写一个简单的计算器程序.
然后我们在Calc目录下面在建立一个jni目录
新建一个文件,Android.mk文件,内容如下
LOCAL_PATH := $(call my-dir) include $(CALEAR_VARS) LOCAL_ARM_MODULE := arm LOCAL_MODULE :=calc LOCAL_MODULE_FILENAME := calc LOCAL_SRC_FILES := main.c include $(BUILD_EXECUTABLE)
APP_PLATFORM := android-16 APP_ALLOW_MISSING_DEPS=true
#include <stdio.h> int add(int x, int y) { return x + y; } int sub(int x, int y) { return x - y; } int mul(int x, int y) { return x * y; } int div(int x, int y) { return x / y; } int main() { int x, y; int num; int rel = 0; int result = 0; do { printf("请输入第一个操作数: "); scanf("%d", &x); printf("请选择[ 1.+ 2.- 3.* 4./] :"); scanf("%d", &num); printf("请输入第二个操作数: "); scanf("%d", &y); switch (num) { case 1: { rel = add(x,y); } break; case 2:{ rel = sub(x,y); } break; case 3:{ rel = mul(x,y); } break; case 4:{ rel = div(x,y); } break; default:{ printf("错误的操作"); } } printf("结果:%d \n",rel); printf("是否继续: [0.退出 1.继续]"); scanf("%d",&result); } while (result); return 0; }
建立好以后,我们退回到Calc目录下面,执行ndk-build,这样就可以构建出我们想要的执行文件,对应的文件会在各个平台对应的文件夹内生成
然后建立我们的main.c文件,内容如下
因为上面的内容都是mk文件的基本设置,这里没什么好说的.
新建Application.mk文件,内容如下