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

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

2012-08-26 
Android提高十六篇之使用NDK把彩图转换灰度图? 在Android上使用JAVA实现彩图转换为灰度图,跟J2ME上的实现

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

? 在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 等工具;

Android增高十六篇之使用NDK把彩图转换灰度图在搜索框里分别搜索gcc和make,必须是 Devel Install 栏的。

3、Cygwin安装目录下,找到home/username的目录下的.bash_profile文件,打开文件在最后加上:
??? NDK=/cygdrive/d/android-ndk-r4-windows/android-ndk-r4
?? export NDK
PS:假设安装在d:\android-ndk-r4-windows\android-ndk-r4。
4、运行cygwin,通过cd命令去到NDK\samples\例子目录\,运行$NDK/ndk-build来编译该目录下的Android.mk

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

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

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

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

main.xml源码如下:

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

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

Android.mk的源码:

view plaincopy to clipboardprint?

  1. LOCAL_PATH:=?$(call?my-dir)????
  2. include?$(CLEAR_VARS)????
  3. LOCAL_MODULE????:=?ImgToGray??LOCAL_SRC_FILES?:=?ImgToGray.cpp??
  4. ??include?$(BUILD_SHARED_LIBRARY)

热点排行