是否有可能并且值得尝试使用
android NDK开发一些服务器应用程序,它将加密从普通的基于
Java的应用程序传递给它的数据(或者只是使用一些内置的
Linux加密库)?
我尝试使用Cipher库,但用AES加密2MB文件花了差不多一分钟.直到安卓2.3(?),才能在Cipher中使用blowfish.而且我怀疑它会更快.
我在Symbian上使用blowfish进行加密,速度要快得多(5-10秒以内),所以我认为在android中由于使用Java虚拟机而速度较慢,我想尝试本机应用程序.
以前有人做过吗?
编辑:NDK中的加密速度要快得多.在那里做. AES的相同答案也有类似的问题:AES decryption on Android too slow to be usable. Will NDK be faster? Other ideas?
解决方法
您正在测试哪个版本的Android?请记住,从Froyo开始,有一个跟踪JIT,它应该可以很好地用于加密库中的数学密集型循环.
对于旧版本,您可能想要使用NDK,是的.我不知道为什么你需要一台服务器 – 只需编译任何好的/快速的加密库并使用NDK围绕它创建一个包装器.然后,您可以简单地使用基于Java的应用程序中的包装器.