美文网首页Android开发
NDK开发之初入门-Hello Word

NDK开发之初入门-Hello Word

作者: 4bb984fe9183 | 来源:发表于2018-01-09 19:07 被阅读0次

    CSDN链接

    在我们日常的App开发中都是使用基本的SDK开发,那么什么时候使用NDK开发呢?NDK开发用什么用呢?

    要了解NDK,首先需知道Jni,那么Jni是什么呢?Jni是Java和C沟通的入口,啥意思呢?我们使用Java语言进行Android开发,众所周知Android的安全性一直是一个热议的话题,为了防止被反编译,我们需要用C/C++编写重要核心的内容增大系统的安全。另一方面Android的底层一些驱动,硬件,音视频,图片处理,等都是用C实现的,而且使用C可以极大的提高程序效率,所以在开发中可能就需要Java和C进行交互,Jni就是干这个的。NDK提供了一系列的工具,可以帮助我们生成C/C++的库,NDK+Jni就实现了Java和C沟通的桥梁。


    下面来实现我们的第一个NDK程序:

    1.新建Android项目,命名为NDKHelloWord

    新建项目NDKHelloWord

    2.新建一个访问本地C/C++方法的java类

    java与c交互的本地类

    3.定位到MyJni目录下,执行javac MyJni.java命令,生成MyJni类的.Class文件

    编译MyJni生成class文件

    编译完成后会在ndkhelloword目录下生成MyJni.class文件

    MyJni.class

    4.切换到com的上层目录,执行javah -jni com.voyagesun.ndkhelloword.MyJni命令,使用javah命令生成.h文件。

    javah命令主要用于在JNI开发的时,把java代码声明的JNI方法转化成C\C++头文件,以便进行JNI的C\C++端程序的开发。

    javah生成.h文件

    此时便在java目录下生成h文件,为我们进行Jni开发的头文件

    生成.h文件

    5.main下右键按钮new -> Foler -> JniFolder,新建jni包

    6.jni包下new ->C/C++ SourceFile,出来弹层,起个文件名

    新建c文件 建成后文件目录

    7.拷贝com_voyagesun_ndkhelloword_MyJni.h头文件下的所有内容至myc.c, 并修改方法返回值

    修改C文件方法返回值为hello word

    8.配置build.gradle

    ndk {

    moduleName "FirstJniLibrary" //生成的so库名称

        abiFilters"armeabi","armeabi-v7a","x86" //生成的不同cpu

    }

    配置gradle.properties,新增:android.useDeprecatedNdk=true

    配置build.gradle 配置gradle.properties

    好咧,所有的配置已完成,接下来就是见证奇迹的时刻:

    Build ->Rebuild Project项目,成功后会在build-intermediates-ndk-debug-lib下生成我们需要的so库

    Rebuild生成so库

    这就是我们需要的So库,拷贝So库至libs目录下,并在Activity中调用测试!

    效果图

    至此,第一个NDk项目运行完成!

    相关文章

      网友评论

        本文标题:NDK开发之初入门-Hello Word

        本文链接:https://www.haomeiwen.com/subject/lwdgnxtx.html