android ndk 使“Java+C”的开发方式终于转正

网友分享于:2018-07-16 13:43 发表在 Android

 可能很多朋友对android ndk这个概念不是很了解,也不知道它具体运用在那个方面,但是对于android手机,相信很对人都有用过,android ndk就是支持 C 开发的开端,下面就由小编携手如果零 if0.CN介绍一下android ndk吧。

图片 1.png

android ndk

  NDK 产生的背景

  Android 平台从诞生起,就已经支持 CC++ 开发。众所周知,Android SDK 基于 Java 实现,这意味着基于Android SDK 进行开发的第三方应用都必须使用 Java 语言。但这并不等同于第三方应用只能使用 Java”。在Android SDK 首次发布时,Google 就宣称其虚拟机 Dalvik 支持 JNI 编程方式,也就是第三方应用完全可以通过 JNI 调用自己的 C 动态库,即在 Android 平台上,“Java+C”的编程方式是一直都可以实现的。

  不过,Google 也表示,使用原生 SDK 编程相比 Dalvik 虚拟机也有一些劣势,Android SDK 文档里,找不到任何 JNI 方面的帮助。即使第三方应用开发者使用 JNI 完成了自己的 C 动态链接库(so)开发,但是 so 如何和应用程序一起打包成 apk 并发布?这里面也存在技术障碍。比如程序更加复杂,兼容性难以保障,无法访问Framework APIDebug 难度更大等。开发者需要自行斟酌使用。

  于是 NDK 就应运而生了。NDK 全称是 Native Development Kit

  NDK 的发布,使“Java+C”的开发方式终于转正,成为官方支持的开发方式。NDK 将是 Android 平台支持 C 开发的开端。

  为什么使用 NDK

  代码的保护。由于 apk java 层代码很容易被反编译,而 C/C++ 库反汇难度较大。

  可以方便地使用现存的开源库。大部分现存的开源库都是用 C/C++ 代码编写的。

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

  便于移植。用 C/C++ 写得库可以方便在其他的嵌入式平台上再次使用。

图片 2.png

android ndk

  NDK 简介

  NDK 是一系列工具的集合,NDK 提供了一系列的工具,帮助开发者快速开发 C(C++)的动态库,并能自动将 so java 应用一起打包成 apk。这些工具对开发者的帮助是巨大的。

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

  NDK 可以自动地将 so Java 应用一起打包,极大地减轻了开发人员的打包工作。

  NDK 提供了一份稳定、功能有限的 API 头文件声明

  Google 明确声明该 API 是稳定的,在后续所有版本中都稳定支持当前发布的 API。从该版本的 NDK 中看出,这些 API 支持的功能非常有限,包含有:C 标准库(libc)、标准数学库(libm)、压缩库(libz)Log (liblog)

  关于android ndk的话题小编就说到这里了,android手机已经是占据我们手机市场的半壁江上了,android ndk就运用在我们的手机上,只不过我们没有了解太多而已,如果你想了解更多,那就关注如果零 if0.CN网吧。


推荐分类: 移动开发 Android Iphone Windows Mobile Symbian BlackBerry QT开发 Brew MeeGo 移动平台 移动软件开发 电信IT应用开发 移动应用
推荐标签: php websocket input navicat finereport
相关文章
最新发表
热门推荐