Android studio配置NDK

Android开发在对接一些三方功能或者算法时,常常涉及JNI的开发,一般只需要把so文件放入指定目录,然后写好对接接口,load入so库,就可以使用了。但在AS自己搞的时候,发现对JNI开发的步骤还是有点生疏,以此文记录下整个配置过程。

1.NDK的安装,NDK是JNI开发的工具,可以上Google官网下载,也可以直接在AS里下载,如下图,在SDK tools里勾选后直接apply,就开始下载了,过程比较久,耐心等待,下载完成后在SDK路径下会有个NDK的文件。


2.下载完NDK,需要在AS里配置NDK的路径,这个跟配置SDK路径一样:


3.配置NDK环境变量。为了方便使用,将NDK的路径配置到环境变量中,然后启动命令行,输入ndk-build,如下显示,则NDK安装成功且环境变量已经配置好了。

4.新建一个demo项目jnidemo来记录JNI开发流程,项目创建完毕,打开gradle.properties文件,输入android.useDeprecatedDdk=true,否者后面编译时会提示相关错误。

5.在包名下新建一个JniUtil.java文件,

package com.example.mr5.jnidemo;

public class JniUtil {
    static {
        System.loadLibrary("jnidemo");//名字必须和build.gradle中的moduleName一致
    }
    public static native String sayHello();
}

用AS自带的命令行,进入到项目文件夹目录,输入命令 javac JniUtil.java,将java文件编译成.class文件:


6.输入命令javah -jni com.example.mr5.jnidemo.JniUtil    (包名+类名)

如果报找不到该类的错误,用javah -classpath . -jni com.example.mr5.jnidemo.JniUtil。

此命令将生成与JniUtil类对应的.h文件。成功后将在包目录下生成一个com_example_mr5_jnidemo_JniUtil.h文件。



7.新建一个jni文件夹,将刚刚生产的.h文件剪切到jni文件夹下面,并创建一个C/C++文件hello.c。


hello.c的方法名必须跟.h文件中的方法名一致。这里的方法内容返回“HelloWorld!”


8.配置gradle,打开app的gradle,在defaultConfig下面加入NDK的编译配置,这里的moduleName跟loadLibrary的时候用的名字必须相同:


9.Build——>Make Project,运行完成后,文件目录切换成Project,可以看到生成了对应cpu类型的so库:


10.app中调用jni方法:

package com.example.mr5.jnidemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView textView = (TextView) findViewById(R.id.text);
        textView.setText(JniUtil.sayHello());

    }
}
运行结果如下:


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 1. 下载并安装NDK 首先,你需要从官网下载NDK。下载完成后,解压到你想要的目录下。 2. 配置NDK路径 打开Android Studio,选择File -> Project Structure,在左侧的菜单中选择SDK Location,然后在右侧的NDK location中输入你的NDK路径。 3. 创建jni目录 在你的项目根目录下创建一个名为jni的文件夹。 4. 创建C/C++文件 在jni目录下创建一个名为hello-jni.c的文件,并输入以下代码: #include <jni.h> #include <string.h> jstring Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv* env, jobject thiz) { return (*env)->NewStringUTF(env, "Hello from JNI!"); } 5. 创建Android.mk文件 在jni目录下创建一个名为Android.mk的文件,并输入以下代码: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := hello-jni LOCAL_SRC_FILES := hello-jni.c include $(BUILD_SHARED_LIBRARY) 6. 创建Application.mk文件 在jni目录下创建一个名为Application.mk的文件,并输入以下代码: APP_ABI := all 7. 构建项目 在Android Studio中选择Build -> Make Project,然后等待构建完成。 8. 运行项目 在Android Studio中选择Run -> Run 'app',然后等待应用程序启动。 以上就是Android Studio配置NDK的步骤,希望对你有所帮助。 ### 回答2: Android Studio是谷歌官方推出的一款Android开发工具,使用Android Studio开发Android应用程序可以大大提高开发效率和开发质量。Android Studio支持使用NDK进行开发,NDK全称是Native Development Kit,用于编写或调整已有的C/C++代码库,将这些库集成至Android中,以提高应用程序的性能或实现一些不便于使用Java或Kotlin语言实现的功能。下面是关于Android Studio配置NDK的步骤: 1. 下载和安装Android Studio,打开Android Studio后,在“welcome to Android Studio”窗口中点击“configure”,选择“SDK Manager”。 2. 在SDK Manager窗口中,选择“SDK Tools”标签页,勾选“NDK”选项。在“SDK Platforms”和“SDK Tools”标签页中,选择“Show Package details”选项,选择需要的NDK版本,下载并安装。 3. 创建一个新项目或打开已有的项目。在打开的项目中,打开“File”选项,选择“Project Structure”选项卡,选择“SDK Location”,查看“Android NDK location”选项卡,如果NDK路径没有被设置,则点击“…”按钮选择NDK路径。然后,点击OK保存更改。 4. 结束上一步后,还需要在Gradle文件中设置NDK的路径。找到“build.gradle(Module:app)”文件,然后在其中添加以下代码: ```c++ android { … externalNativeBuild { cmake { // Specifies the directory where the CMakeLists.txt file is located. path "src/main/cpp/CMakeLists.txt" // Specifies the ABI configurations of your native // libraries Gradle should build and package with your APK. abiFilters "armeabi-v7a", "x86" // Passes optional arguments to CMake. arguments "-DANDROID_STL=c++_static" } } … } ``` 以上是Android Studio配置NDK的步骤,如按照上述步骤操作仍然有问题,建议参考官方NDK文档,自行查找解决方法。 ### 回答3: Android Studio是目前最流行的Android开发工具之一,而Android NDK则是一个能够将C、C++代码与Java代码结合使用的开发工具。在某些情况下,为了提高应用程序的性能,我们可能需要使用NDK开发Android应用程序。接下来,我们将详细介绍如何在Android Studio配置NDK。 1. 首先,您需要先下载并安装NDK。您可以从Google开发者网站下载最新版的NDK。 2. 打开Android Studio,然后单击“File”菜单中的“Project Structure”选项。 3. 在左侧的面板中,单击“SDK Location”选项卡。然后,在“Android NDK location”文本框中输入您的NDK路径,并单击“OK”。 4. 下一步是在您的应用程序中配置NDK。为此,请打开您的项目的“build.gradle”文件,并添加以下代码: ``` android { // ... defaultConfig { // ... ndk { // 设置你的 ndk 的路径 abiFilters 'armeabi-v7a', 'x86' } } } ``` 在“abiFilters”中添加您想要支持的CPU指令集。例如,如果您想要支持armeabi-v7a和x86指令集,您可以像上面的代码一样设置。 5. 最后,在您的项目中添加C或C++代码。如果您还没有C或C++代码,可以通过创建一个具有指定名称和位置的文件夹来添加代码。例如,在您的 Android 项目根目录下创建名为“jni”的文件夹: ``` $ cd /path/to/your-project $ mkdir jni ``` 在这个文件夹中,您可以添加您的C或C++代码。 6. 在Android Studio中构建您的项目并运行它,以确认您已成功配置NDK。 现在,您已经学会了在Android Studio配置NDK。这将使您能够使用C或C++代码来实现更高的应用性能。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值