Advertisement

Android应用中常见的C代码调用问题

阅读量:

在安卓系统中进行应用开发,普遍采用的语言为 Java 。然而,对于那些从其他平台迁移至安卓的项目、产品,或者习惯使用 C/C++ 进行编程的开发者而言,他们更倾向于复用已有的 C/C++ 代码。安卓平台为此提供了利用 Native 代码的途径,并配备了编译 C 代码所需的环境与工具链:NDK 。NDK 是一套完整的工具链,借助它,C 语言在安卓上的使用成为可能。实际上,安卓最初是基于 Linux 系统构建的,并在其上搭建了 Java 环境。若说不能使用 C 语言才令人难以置信,只是 Google 并未完全开放相关功能(说实话,至今我都觉得奇怪,为何不让 C 程序员在安卓平台上更加自如地开发呢?这简直像是人为设置障碍)。

在安卓平台上利用 C 代码的方式主要有两种:

  1. JNI
  2. 原生 C 可执行程序

JNI 方式

JNI 最初是 Java 提供的一种用于调用 C 代码的机制。安卓在此基础上进行了扩展,在服务框架中引入了 AIDL ,并开发了一套工具链。当使用 Android.mk 进行编译时,可以根据 AIDL 文件自动生成对应的 Java 代码并完成编译。

通过 JNI 的方式主要是在将 C 代码编译为动态库后,在 Java 层进行调用。具体操作步骤如下:

  1. 在 Java 层声明 native 方法
  2. 在 JNI 层(这部分用于连接 C 代码的部

全部评论 (0)

还没有任何评论哟~