zoukankan      html  css  js  c++  java
  • AndroidStudio2.2 Preview3中NDK开发之CMake和传统 JNI在目录结构和配置文件上的区别(转载)

    自从AndroidStudio更新到2.2,就有了CMake和传统JNI两种开发NDK的方法,主要就是在目录结构和build.gradle上的区别,下面我们将分别介绍目录区别和build.gradle种配置的区别(提示:在第一次用CMake时,最好在新建项目时勾选Include C++ Support,这样这个项目的NDK开发就是CMake方式,这估计也是Android以后主推的方式,建好项目,熟悉CMake方式的目录结构,这样对以后建普通项目再转CMake开发NDK有很大帮助,后面会讲到普通项目转NDK开发)

    目录上的区别:

       传统JNI:

            

      CMake:

           

    这两种方式在目录上的区别就是两点:

        1.以前的jni目录改成cpp,位置不变  

        2.之前对c文件的编译配置Android.mk文件放在jni目录下,现在改成CMakeLists.txt文件

    (提示:其实Android.mk文件和CMakeLists.txt可以放在任意目录下,不过最好放在当前工程目录下任意位置。后面说build.gradle配置区别就知道了)

    build.gradle的区别:

      传统JNI:
          

        

      CMake:

            

         

        从上面两幅图可以发现,只有两个红框中的内容有区别,对于传统JNI,其实第二个红框中的内容可以不需要,它所有的配置都在

    ndk{
        moduleName "hello"
        abiFilters "x86"
    }

    里面配置,Android.mk文件中的内容都不会起作用(提示:但是却不能删除它,在下面普通Android项目转NDK开发就知道),这点有区别于Eclipse开发环境。还有一点,传统JNI开发,需要在项目根目录下的gradle.properties文件中配置

    android.useDeprecatedNdk=true

    否则Build项目的时候会报错。

    
    
    

    CMake的配置大部分都在CMakeLists.txt文件中配置,只有较少的一部分放到

    
    
    cmake {
        cppFlags "-std=c++11"
    }

    里面配置。CMake的语法规则可以百度。

    普通Android项目转NDK开发项目:

    对于普通Android项目,都可以通过鼠标右击选择Link C++ Project with Gradle转为NDK项目,

    通过选择CMake或者ndk-build使开发NDK采用CMake或者JNI方法,不过此种转化方法必须符合CMake或者JNI的目录

    结构,也就是说,在上图操作完成之前,必须先在项目中建好符合CMake或者JNI规则的目录,假如CMakeLists.txt

    文件中有对xx.cpp/xx.c的引用,那么必须在cpp目录下新建好对应的xx.cpp/xx.c,同理,android.mk文件要是引

    用cpp/c文件,那么就要在jni目录新建好对应得文件.(androidstudio2.2之后新建NDK项目只能得到CMake方式,

    所以要想JNI开发,只能普通项目转)。

    文章转自:http://blog.csdn.net/u012527560/article/details/51752070

  • 相关阅读:
    控制结构(Scala)
    《基于Spark的大数据访存行为跨层分析工具》学习笔记
    函数式对象(Scala)
    心脏病预测(SVM模型)
    类、对象、基础类型、操作(Scala)
    ElementUI对话框(dialog)提取为子组件
    ElementUI+命名视图实现复杂顶部和左侧导航栏
    ElementUI 复杂顶部和左侧导航栏实现
    Vue页面手动刷新,导航栏激活项还原到初始状态问题解决方案
    elementUI动态数据表格(带分页)
  • 原文地址:https://www.cnblogs.com/feijian/p/6307649.html
Copyright © 2011-2022 走看看