试用 Android NDK 成效
本文来自 CSDN 博客。x
就不打算用 Java 语言重写了计划通过 JNI Java Nativ Interfac JA VA 中调用 C 语言的代码, liigo 以前的围棋 SGF 棋谱解析器是使用 C 语言开发的为了省事和加快移植。自然的 Android NDK 就派上用场了此前只是对 NDK 稍有耳闻,历来没用过。上周末抽了大概一天的时间实战试用 Android NDK 初见效果,收获不小。略加记录,以备后用。
装置 cygwin 问题上费了一些周折,一开始当然是先下载 NDK 发现 android.com 已在墙内了阅读其官方使用文档。文档中提到 NDK Window 下需要依赖 Cygwin 却没有指导性操作提示)去 cygwin.com 下载一 setup.ex 为在线下载装置顺序。由于 NDK 没有相关说明。经过网络搜索,装置顺序配置界面指定装置 devel 类别,设定为 Install 见下图)以便确保下载装置得到其中的 gcc 和 make 顺序。下载过程可能比较漫长,耐心等待吧。 Devel 里可能有许多不是 NDK 所必需的内容(导致 cygwin 装置目录大幅膨胀)多了就多了吧,总比缺胳膊少腿好。装置完成后,尝试在 cygwin 控制台运行 gcc 和 make 命令,有恰当输出反馈说明装置胜利了可以满足 NDK 需要)如果有 SB command not found 之类错误提示(这里借用一网友语气)说明你还得考虑重新下载装置 cygwin
也糊涂了 NDK 文档似乎没有说怎么把两者结合起来使用。因为发现 NDK 中的 ndk-build shell 脚本,需要 linux 环境才干运行,初步想到去 cygwin 控制台命令行执行 ndk-build 命令,结果进去一看,全是 /home, NDK 和 Cygwin 都有了接下来怎么办。 /usr, /dev 之类 Linux 目录, NDK window 系统中的 D 盘呀,怎么访问到又是借助于网络搜索,知道了 cygwin 内 /cygdriv 就可以访问当前 Window 系统下的磁盘各分区,如 /cygdrive/c 表示 C 盘, /cygdrive/d 表示 D 盘。 OK 依照 NDK 文档,执行命令: