首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android拔高十六篇之使用NDK把彩图转换灰度图

2012-08-29 
Android提高十六篇之使用NDK把彩图转换灰度图http://blog.csdn.net/hellogv/archive/2010/12/23/6094127.a

Android提高十六篇之使用NDK把彩图转换灰度图
http://blog.csdn.net/hellogv/archive/2010/12/23/6094127.aspx
       在Android上使用JAVA实现彩图转换为灰度图,跟J2ME上的实现类似,不过遇到频繁地转换或者是大图转换时,就必须使用NDK来提高速度了。本文主要通过JAVA和NDK这两种方式来分别实现彩图转换为灰度图,并给出速度的对比。

先来简单地介绍一下Android的NDK使用步骤:

以NDK r4为例,或许以后新版的NDK的使用方法略有不同。
1、下载支持C++的android-ndk-r4-crystax,支持C++的话可玩性更强......
2、下载cygwin,选择ftp://mirrors.kernel.org这个镜像,搜索  Devel Install 安装 gcc 和 make 等工具;


在搜索框里分别搜索gcc和make,必须是 Devel Install 栏的。
3、Cygwin安装目录下,找到home/username的目录下的.bash_profile文件,打开文件在最后加上:
    NDK=/cygdrive/d:cygwin/android-ndk-r4-crystax
   export NDK
PS:假设安装在D:\cygwin\android-ndk-r4-crystax。
4、运行cygwin,通过cd命令去到NDK\samples\例子目录\,运行$NDK/ndk-build来编译该目录下的Android.mk

以下是个人习惯.......
5、安装Eclipse的CDT,官方下载cdt安装包,解压缩后把plugins和feagures 复制覆盖到eclipse文件夹下即可
6、去到系统属性->环境变量->Path添加"D:\cygwin\bin"(假设cygwin安装在D:下)和"D:\cygwin\android-ndk-r4-crystax",重启计算机,然后就可以在Eclipse里面建立基于cygwin的C/C++工程了,先通过这一步来验证NDK的程序能够编译成功,然后再通过第4步来生成SO文件。

接下来看看本文程序运行的效果:


从转换灰度图的耗时来说,NDK的确比JAVA所用的时间短不少。

main.xml源码如下:


主程序testToGray.java的源码如下:

封装NDK函数的JAVA类LibFuns.java的源码如下:

Android.mk的源码:
LOCAL_PATH:= $(call my-dir)  include $(CLEAR_VARS)  LOCAL_MODULE    := ImgToGray  LOCAL_SRC_FILES := ImgToGray.cpp  include $(BUILD_SHARED_LIBRARY)  

热点排行