码迷,mamicode.com
首页 > 移动开发 > 详细

Android NDK应用原理

时间:2014-08-22 14:16:44      阅读:348      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   http   color   java   使用   io   文件   

转:http://shihongzhi.com/ndk/

那么首先看一下Android的系统框架:

bubuko.com,布布扣

 

最底层是Linux Kernel,然后上面是封装的库及Android runtime。再上面是Application Framework。最顶层的就是App了。

而App开发者最主要的就是专注于App层。但是由于某些原因要使用到NDK编程,所以会涉及到系统开发(中间层)的开发。系统开发的流程如下图所示:

bubuko.com,布布扣

 

Java App通过JNI(Java Native Interface)Java本地接口机制调用开发者自己添加的C或者C++本地原生库。

NDK类似于Android的系统开发,也是需要通过JNI来做中间调用的。NDK的全称是Native Developing Kit,当然官方还提供了一些NDK本地API供开发者调用。

下图为NDK应用的五大开发流程步骤:

bubuko.com,布布扣

 

应用程序调用流程如上图所示:Android App通过Java Framework调用Java SDK API, 通过JNI调用本地库文件,也就是NDK API

而具体的NDK调用过程如下图所示:

bubuko.com,布布扣

 

当然在了解了原理之后还是需要进行实际的代码测试。我选择了彩度转灰度图及高斯模糊这两个例子,分别用JAVA和NDK实现比较性能。在Android2.3系统模拟器,NDK的速度比JAVA快一倍。但是换成Android4.0之后的系统之后,JAVA的速度反而比NDK快了。可见在Android4.0系统之后,Google对JVM做了很大的优化啊。具体的测试代码我已经上传到GitHub上了。代码链接

Android NDK应用原理

标签:android   style   blog   http   color   java   使用   io   文件   

原文地址:http://www.cnblogs.com/wangle1001986/p/3929248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!