Android studio4.2 ndk 环境搭建

23 篇文章 2 订阅
12 篇文章 0 订阅
本文详细介绍了Android Native Development Kit (NDK) 的使用步骤,包括下载NDK、配置环境、创建JNI目录、编写Android.mk和Application.mk文件、生成头文件、使用javah命令、通过ndk-build编译生成SO库,以及在Android应用中调用本地方法进行测试。整个过程涵盖了Android原生代码开发的关键环节。
摘要由CSDN通过智能技术生成

1下载NDK

      。。。。。。。。。。。。。。。

2配置

local.properties 文件中加入

ndk.dir=E\:\\android_sdk\\ndk\\android-ndk-r22

3创建JNI目录

4 创建 Android.mk 

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := jnidemo.cpp //你编写的c文件
LOCAL_MODULE := xl  //编译之后生成的so文件名
include $(BUILD_SHARED_LIBRARY)

5 创建 Application.mk

APP_PLATFORM := android-16
APP_ABI :=all
AndroidManifest.xml文件中加入
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="30"></uses-sdk>

6 创建本地方法

public class JniDemo {
    public static native String getString();
}

7 生成头文件

 查看手机架构 adb shell getprop ro.product.cpu.abi

  • 执行javah:
  • 进入app/src/main目录:cd app/src/main
  • 执行javah命令:javah
javah -d jni -classpath ./Java com.it.myapplication.JniDemo

-d jni 头文件生成到jni文件夹(当前在<Project>\app\src\main目录下,所以.h所在的目录为<Project>\app\src\main\jni )

 

8 复制生成的头文件 更改为jnidemo.cpp   cd jni   执行 ndk-build  生成 so库

 

9测试 build配置

 

android {
    

    defaultConfig {
       

        ndk {
            //moduleName "JniLib"
            abiFilters "armeabi-v7a","arm64-v8a" //输出指定abi下的so库
        }


    }



    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }

}

 

public class MainActivity extends AppCompatActivity {


    static {
        System.loadLibrary("xl");
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         String name=new JniDemo().getString();
        Log.e("===",name+"------------------------------");
        Toast.makeText(this, "--"+name, Toast.LENGTH_SHORT).show();
    }


    //创建本地方法
    public native  String showData();
}

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值