NDK开发第一个可执行程序



一、安装配置NDK


 1.下载ndk之后配置环境变量

0.png


 2.验证是否安装成功,打开cmd输入 ndk-build -version 出现下方界面即表示成功

1.png


二、使用C语言编写第一个可执行的文件

 1.编译文件所需的配置文件:Android.mk和Application.mk

  C文件源码如下,打印一下HelloWord:

2.png


  Android.mk文件源码如下:

3.png


  Application.mk文件源码如下

4.png


 只要编译模块,就必须使用Android.mk和Application.mk两个文件,Application.mk文件内APP_ABI所配置的就是编译哪些指令集的文件.我这里配置的是两个所以会看到:

5.png


 编译命令执行后会出现一下界面:

6.png



  2.编译完成后丢入模拟器执行一下,类似雷电这种模拟器所属指令集为X86,我这里用的是安卓SDK自带的虚拟机,配置的是arm的指令集,所以我传的是arm下的文件

7.png



  看到了我们的Hell World. 如果编译so文件的话,在Android.mk文件内的修改 include $(BUILD_EXECUTABLE) 为 include $(BUILD_SHARED_LIBRARY)


  3.冒泡排序

8.png

#include <stdio.h>

int main(){
    int a[] = {900, 2, 3, -58, 34, 76, 32, 43, 56, -70, 35, -234, 532, 543, 2500};
    int n;  //存放数组a中元素的个数
    int i;  //比较的轮数
    int j;  //每轮比较的次数
    int buf;  //交换数据时用于存放中间数据
    n = sizeof(a) / sizeof(a[0]);  /*a[0]是int型, 占4字节, 所以总的字节数除以4等于元素的个数*/
    for (i=0; i<n-1; ++i)  //比较n-1轮
    {
        for (j=0; j<n-1-i; ++j)  //每轮比较n-1-i次,
        {
            if (a[j] < a[j+1])
            {
                buf = a[j];
                a[j] = a[j+1];
                a[j+1] = buf;
            }
        }
    }
    for (i=0; i<n; ++i)
    {
        printf("%d\x20", a[i]);
    }
    printf("\n");
    return 0;
}

9.png

10.png


  

以上就是冒泡排序的算法以及执行过程


NDK编译执行过程图解


编译可执行程序.png


在浏览的同时希望给予作者打赏,来支持作者的服务器维护费用.一分也是爱~