安卓jni入门

一、NDK是什么:
  1、NDK是一系列工具的集合,他提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk

  2、NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。

二、为什么:

  1、安全,都知道,由于我们是使用JAVA来编写的APP,导致了我们的APP很容易被反编译(smail语法),而使用而C/C++库反汇难度较大。

  2、提高程序的执行效率。将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。

三、怎么做(重点)

  在我们创建项目时,我们可以选择加入加入C/C++的支持

  如图:

  

ps:由于安卓studio在2.2之后支持了CMake形式的NDK开发,所以就以CMake的形式集成

在创建项目时我们还要加入相应的支持库

  

项目创建好后,可以发现给出了一个例子,,我们可以仿照例子自己写一个,熟悉流程

 第一步、创建一个我们需要创建一个C/C++文件

  

  第二部、将创建的C/C++文件在CMakeLists.txt中的add_library中添加依关系,编译

  

  第三步,编写调用C/C++的java文件

  

  第四步:编写C/C++代码(注意:C/C++方法名必须是Java_调用该方法的java文件的包名_java文件名_调用该放法的方法名)

  

  至此,就可以使用自己的C/C++方法

  

posted @ 2017-11-12 21:20  大洋葱VS小土豆  阅读(178)  评论(1编辑  收藏  举报