美文网首页
AndroidStudio下开发NDK基于CMAKE方式笔记

AndroidStudio下开发NDK基于CMAKE方式笔记

作者: siriusF | 来源:发表于2017-06-03 22:00 被阅读0次

      1、开发环境


    1)在Mac Os下安装64位的AndroidStudio

    2)配置好Android开发环境采用JDK1.8,适用的SDK

    3)在官网或者用Android studio安装其中包括CMake,以及LLDB如下图所示:

    2、NDK开发实例

    示例内容为Android应用层定义一个Button,点击后弹出一个Toast显示内容来自native层,内容为“Hi,I  come from native”。

    1)开启Android studio选择“start a new Androidstudio project”

    2)命名application name为“SimpleNdkDemo”同时勾选“include C++ support”,下一步,依据自己的SDK级别,选择,这里选择最小SDK为19,再下一步,最后为了方便,我们选择“Empty Actvity”接着一直下去,采用默认,然后完成基本工程的创建。

    3)完成好的目录结构如下:

    完成好的目录结构我们发现多了一个cpp文件夹,其实这个是我们选择编写jni实现的地方,该文件夹可以删除,同级创建一个jni目录,功能是一样的,只是最后编写CMakeLists.txt的路径不同。

    4)我们先简单完成应用层的基础页面和调用如下:

    5)开始写JNI方法,不采用上来就直接在MainActivity中定义的方式,我们定义一个新包名字为“jnibridge”并在该包下声明一个类为“JNIHandler”,结构如图所示。

    6)实现JNIHanlder类如下所示:

    此时看到提示,我们将光标防盗括号前如图所示

    采用快捷键“Alt+Enter”创建这个JNI方法,会自动在cpp原有路径下的cpp文件中创建方法如下图所示

    “native-lib.cpp”为创建工程时候所自行创建我们可以修改他,重命名为“native-message-lib.cpp”如图所示

    如果此时直接就去完成后面的配置,那么你会发现此事还可能通不过,提示你没有实现你的jni方法,我们需要做的是如下图所示添加“extern“C””如下图所示:

    7)修改native-message-lib.cpp,将return value修改为“Hi,I come from native”,如下图所示:

    是因为C++是面向对象的,要实现面向过程的需要用C的方式,至此native jni的实现已经完成,下面讲添加如何配置。

    3、NDK配置

    1)CMakeList.txt,完成库的指定和编译,该文件定义在cpp路径中,如下图所示:

    由于我们静态引入的库为“test-native”最后实现后你会发现其实是libtest-native.那么CMakeLists.txt定义些什么呢,如图所示:

    具体什么意思,可以百度,不赘述。

    2)App下的build.grale配置如下图所示:

    可以照着配置,具体每个task或者属性为什么意思,可以网络搜索,答案将更详细。

    3)MainActivity中的调度如下:

    至此所有配置已经完成,那么掩饰效果是什么样子的呢?

    4、编译结果

    至此实现完成,

    5、共享库的分享

    相关文章

      网友评论

          本文标题:AndroidStudio下开发NDK基于CMAKE方式笔记

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