七达网是国内最新、最齐、最安全的软件下载基地!

关于我们最近更新热门排行

首页 软件 游戏 应用 文章 专题

新闻资讯软件应用软件教程编程开发 操作系统游戏攻略安卓应用安卓游戏
当前位置:首页 ›› 编程开发 ›› Android NDK开发之NDK相关介绍

Android NDK开发之NDK相关介绍

2015-01-25 16:55   作者:Shamoo   来源:CSDN   浏览:413   评论:0  

在学习Android开发的时候,总是听到有人提起NDK,究竟NDK是什么东西?

在网上查了一下,有相关的说明:

NDK全称:Native Development Kit。

1、NDK是一系列工具的集合。

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

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

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

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

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

也就是说,Android是支持用C、C++开发的。但不是说有了NDK之后,我们开发Android应用就可以完全抛弃Java,毕竟Android的SDK都是基于Java的。不过从NDK r5版本开始,Android完全支持C/C++开发应用。对于纯C/C++是否适合开发Android,这个还有待考证。

使用NDK的作用:
1、支持Android应用Java+C开发
2、提高代码的执行效率,Java编译出来的字节码在JVM上执行是边解析边编译的,效率会比C编译出来的机器码慢很多。C的执行效率会比Java高10~100倍
3、屏蔽程序的逻辑实现。因为Java编译出来的字节码是可以反编译,而且现在Java的反编译工具特别强大,几乎可以看到100%的源码。而C编译出来的机器码只能反汇编,汇编代码超级难看懂,这个大家都知道的,从而保护了程序的逻辑实现,在很多商业项目都会用到

NDK的缺点:
1、NDK是本地实现的,对平台有一定要求
2、NDK不像SDK有各种方便的UI、服务相关的类库,像消息事件的传递和监听

查过相关的资料,发现NDK不仅仅支持C/C++开发,还可以内联汇编(更加依赖平台),也就是说Android应用的开发支持Java + C/C++ + 汇编开发...很爽有木有!另外NDK除了JNI的接口外,还支持ASNI C和GNU C以及原生线程、OpenGL ES...学习Linux C开发的或者OpenGL ES开发的就爽了。

Tags:责任编辑:7down
    1. Jetbrains 2018Jetbrains 2018

      本站为打击提供了Jetbrains全家桶软件中文汉化版下载,包含有IDES、AppCode、CLion、DataGrip、GoLand、IntelliJ IDEA、PhpStorm、PyCharm、Rider、RubyMine、WebStorm中文汉化版免费下载!...

    软件评论

    请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!

        登录   注册
    猜你喜欢