Android学习基础,NDK入门

    作者:课课家教育更新于: 2016-11-25 14:50:44

      当你在学习Android的时候,或者会问,为什么要用NDK:我们都知道,java它是半解释型语言,将会是很容易被反汇编后拿到源代码文件,在开发一些重要协议时,一般为了安全起见,是使用C语言来编写这些重要的部分,来去增强系统的一个安全性。本文将带想学习安卓开发的朋友们来学习一下关于Android的NDK的学习。

    Android学习基础,NDK入门_Android开发_移动开发_AndroidNDK_课课家

      到底什么是Android-NDK?

      Android-NDK(NativeDevelopmentKit)它是一套工具集合,并且是允许开发者用像C/C++语言那样实现应用程序的一部分。同时的话AndroidNDK对于AndroidSDK它只是一个组件,它可以是帮我们生成的JNI兼容的共享库可以在大于Android1.5平台的ARMCPU上运行,可以将生成的共享库拷贝到合适的程序工程路径的位置上,这样来去保证它们自动的添加到你的apk包当中。

      何时使用NDK?

      了解Google它是在极少数情况下建议去使用NDK,但以下的场景将会使用:

      1.必须是提高性能(比如:对大量数据进行排序的时候)。

      2.当使用第三方库。比如:现在很多第三方库它都是由C/C++语言编写,一般Android应用程序它需要使用现有的第三方库,比如Ffmpeg、OpenCV这样的库。

      3.底层的一些程序设计(例如:应用程序不依赖DalvikJava的虚拟机)。

      NDK开发的优点是什么?

      1.它的运行效率高

      2.可以是利于充分发挥软硬件优势

      3.有利于代码的一个复用

      4.可以降低版本控制的一个成本

      5.主要是可以降低开发的一个成本

      NDK开发有什么难度?

      1.NDK的开发难度相对较高

      2.它的调试难度相对较高

      3.在一定程度上是会增加开发团队规模

      Android-NDK系统文件的结构如下:

      1.ndk-build:需要知道的是该shell脚本,它是Android-NDK构建系统的起始点。

      2.ndk-gdb:这个shell脚本它是允许用GUN调试器调试原生的一些组件。

      3.ndk-stackshell脚本可以帮助分析原生组件崩溃时的堆栈追踪。

      4.build:这个目录是包含了Android-NDK构建系统的所有的一些模块。

      5.platforms:该目录是包括了支持不同Android目标版本的头文件和库文件。Android-NDK构建系统会根据具体的Android版本自动引用这些文档。

      6.samples:这个目录是包含了一些示例的应用程序,程序可以体现Android-NDK的性能。这也是有利于学习如何使用AndroidNDK的特性。

      7.sorces目录包含了可供开发人员导入到现有的Android-NDK项目的一些共享模块。

      toolchains:一般该目录是包含目前AndroidNDK支持的不同目标机体系结构的交叉的编译器。AndroidNDK它目前是支持ARM、X86和MIPS机体系结构。AndroidNDK构建系统它会是根据选定的体系结构,而去使用不同的交叉的编译器。

      以上是关于Android-NDK的一个使用介绍说明,如果有在学习安卓的朋友们,可以参考学习一下,学习安卓,有很多相似的概念是需要搞清楚的,不要被JDK、NDK这些概念所混淆了。简单来说利用NDK,可以开发纯C&C++的代码,然后编译成库,让利用Android-SDK开发的java程序调用。NDK开发的可以称之为底层开发或者jni(java native interface)层开发,SDK开发可以称为上层开发。

Android 更多推荐

课课家教育

未登录