安卓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++方法