NDK开发—基础知识实战Demo

简介

前面写了几篇NDK相关的文章:

这个demo就是对这几篇文章中涉及内容的一个应用。其功能只是对数组进行排序。如果单纯使用Java来做十分简单,只需写个排序方法,或者将数组转化为集合,然后调用sort函数就ok了。
但我们的目的是练习JNI所以需要使劲的折腾一下,其中主要涉及了:

  • Java调用JNI函数
  • JNI调用Java函数
  • JNI中打印Android Log
  • JNI中调用c++函数库
  • JNI调用普通方法/静态方法
  • JNI全局变量使用
  • JNI数组的操作
  • JNI异常处理

演示图

点击按钮对数组排序:

这里写图片描述

排序成功:

这里写图片描述

Java代码:

Activity代码:

public class MainActivity extends AppCompatActivity {
   

    // 导入动态库
    static {
        System.loadLibrary("test");
    }

    // 本地排序方法
    public native boolean doSort(int [] array);

    private Button mOrderBtn;
    private TextView mResultText;

    // 需要排序的数组
    int[] orderArrays = {
  6,2,5,9,1,3,4,7,8,0,10};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 调用jni调用静态方法返回一个字符串(hello world?)
        Log.d("TestNDK", JNIHelper.getStringFromNative());

        mResultText = (TextView) this.findViewById(R.id.result);
        setResultText(orderArrays);

        m
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值