Android开发之向您的项目添加C/C++代码

  1. 我们为什么要想Android项目中添加C/C++代码?

    众所周知我们使用Java或Koltin语言开发Android项目简单,快捷,那么在什么情况下使用C/C++代码呢?

    1. 复用之前的C/C++代码。 在一个有传承的项目中留下来一些经过验证、高效、正确的代码库

    2. C/C++代码做一些图像、算法或者复杂的逻辑时效率会提高很多。

    3. 如果在一些内存受限的平台开发,使用C++会在内存利用率上提高很多。因为java使用虚拟机来管理内存。C/C++需要认为去控制。

    基于以上原因,我们需要在项目中使用C/C++代码,并且使用jni作为Java和C/C++的代码交互桥梁。

  2. 我们如何在代码中添加C/C++代码呢?

    Goggle官网这篇https://developer.android.google.cn/studio/projects/add-native-code文章讲述了下载、安装必须的开发工具,以及向Android项目添加C/C++代码。本文和这篇文章有些许冲突,但是本文会更快更简单的带领新手进入Java与C/C++代码交互的世界。

  3. 开发环境

    OS: Windows 10

    Development Tool: Android Studio 3.0

    JDK : jdk1.8

  4. 下面进入正题:

    1. 首先我们在Android Studio中创建一个的Module(该Module我已上传至Github,感兴趣的童鞋请前往下载https://github.com/powerzhang/NativeInterface),如下图:

      Android开发之向您的项目添加C/C++代码

    2. src/main目录下创建一个cpp目录,然后在对应路径下创建一个java代码与原生代码交互的接口文件NativeInterface.java,如下图:

      Android开发之向您的项目添加C/C++代码

    3. 在Android Studio中打开Terminal,使用javah 生成对应的.h文件,首先我们进入java目录下,然后使用javah命令,参数为包名+类名:命令如下:C\Users\qustzj\Downloads\Application\app\src\main\java>javah com.example.qustzj.application.Natlvelnterface.然后在目录下可以找到一个对应的.h文件。我们将该.h文件移到cpp目录下,并修改名字为Interface.h,如下图:

      Android开发之向您的项目添加C/C++代码

    4. 创建.h文件对应的cpp文件,并实现其对应的方法。由于在C++层需要用到日志输出结果,我们创建一个LogUtils.h文件用于辅助日志打印。

    5. 我们需要修改module的build.gradle文件,以及在app/目录下添加一个CMakeLists.txt文件。如下图:

      Android开发之向您的项目添加C/C++代码

      Android开发之向您的项目添加C/C++代码

      如果对CMake语法不熟悉的童鞋,可以参考下面链接学习https://github.com/carl-wang-cn/demo/tree/master/cmake以及其他资料另行学习。

    6. 最后,我们进行测试,我们使用XiaoMi 6进行测试.
      我们在MainActivity进行调用,如下图:

      Android开发之向您的项目添加C/C++代码

      测试结果如下:

      Android开发之向您的项目添加C/C++代码

    到这里就结束了,下一篇将是在C++层使用TinyXML2对xml文件的解析.

    以上所有的代码都托关于github.本人水平有限,所有的代码都会经过测试,然后上传到github.文中有不对的地方,请提出宝贵有意见.

相关文章:

  • 2022-12-23
  • 2021-11-22
  • 2021-12-08
  • 2021-12-25
  • 2021-05-20
  • 2021-10-27
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-09-24
  • 2021-11-02
  • 2022-12-23
  • 2021-07-10
  • 2022-01-20
  • 2021-11-23
  • 2021-04-22
相关资源
相似解决方案