Android学习基础,NDK入门

      当你在学习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开发可以称为上层开发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值