我想将用C++编写的应用程序移植到android.将应用程序从C++转换为Java将需要大量工作,我更愿意使用该应用程序来更好地使用该平台,而不是修复转换错误和解决重构问题.
NDK似乎是一个很好的途径,但实际上我不想错过一个平台(如果它是相当大的市场份额)只是因为NDK不支持或不支持它.
Android声称支持MIPS,ARM,X86和其他......但实际上我见过的所有实现都只在ARM(或arm兼容)上.我在这个网站上查了一下:http: //www.pdadb.net/
使用NDK会不是很糟糕?
是否有任何运行或将运行Android的非ARM设备?
我在哪里可以找到更多相关信息?
提前致谢!
我有一个游戏,它使用std :: wstring作为其基本字符串类型在数千个地方以及使用wchar_t及其函数进行操作:wcsicmp()wcslen()vsprintf()等.
问题是R5c不支持wstring(此写入时最新的ndk).
我无法改变代码使用std :: string因为国际化而且我会破坏许多游戏使用的游戏引擎......
我有哪些选择?
1 - 用我自己的字符串类替换字符串和wstring
这将使我更好的平台独立性,但它是荒谬重新实现车轮.我已经开始使用字符串的COW实现了.我需要它是COW,因为我将它们用作hash_maps中的键.这当然是很多工作和容易出错......但似乎这是我能做的事情.
2 - 尝试使用我自己的C标准库(wcslen,mbstowcs ...)的宽字符串函数实现来修复NDK重新编译STLPort
这将是更好的方式......但我不知道该怎么做:(
如何在libstdc ++.a或libstlport_static.a中替换函数(比如说wcslen)?(不确定它们在哪里:()
而且我不确定我需要重新实现哪些功能,我知道wcslen没有工作所以我猜他们应该全部......
3 - 你还有其他想法吗?
我不能等待正式的修复,如果我不知道如何做#2,我将不得不选择#1选项.
我已经读到某个地方,如果你的目标是2.3你可以使用wstrings,但我应该定位Android 2.1.
PS:忘了说我当然需要使用STL,但没有RTTI,我可以无异常地生活.
提前致谢!