Android应用程序开发中的Java与原生编码
我计划创建一个SDK(涉及大量数据操作),它可以用于在Android上创建应用程序 我计划开发完整的SDK,包括Java中的库,因为如果我用本机语言(C++)实现我的库,Java和本机层之间的数据移动将涉及内存拷贝,并使我的应用程序看起来很慢 我计划稍后将同一SDK移植到其他平台,如Windows Mobile。在这种情况下,考虑到SDK的可移植性和性能,我对如何更好地编写代码感到有点困惑Android应用程序开发中的Java与原生编码,java,android,c++,Java,Android,C++,我计划创建一个SDK(涉及大量数据操作),它可以用于在Android上创建应用程序 我计划开发完整的SDK,包括Java中的库,因为如果我用本机语言(C++)实现我的库,Java和本机层之间的数据移动将涉及内存拷贝,并使我的应用程序看起来很慢 我计划稍后将同一SDK移植到其他平台,如Windows Mobile。在这种情况下,考虑到SDK的可移植性和性能,我对如何更好地编写代码感到有点困惑 输入将得到极大的赞赏。 < P> Windows Mobile支持本机代码(VisualC++,参见),因
输入将得到极大的赞赏。
< P> Windows Mobile支持本机代码(VisualC++,参见),因此使用Android NDK将是一个不错的选择。至少你不必从头开始写整件事。您可以使用C/C++编写公共代码库,并且只为Android编写Java包装器正如你所知,WindowsPhone7(WindowsMobile的继承者)使用C#,不管你在Android上采取什么方法,你都需要从头重写SDK。Windows Phone 7.x可能在将来某个时候支持本机代码(C/C++),但不是很快。我有点困惑。你是在抱怨要创建一个真正的SDK,就像谷歌已经提供的SDK一样,还是想创建一个框架,然后将其移植到其他平台(比如游戏引擎)?我想创建一个框架..谢谢,这就解决了可移植性问题。您能否就android中java和本机编码的性能发表评论?摘自:“使用本机代码不会导致性能自动提高,但总是会增加应用程序的复杂性。”因此,如果您仅使用java不会出现性能问题,您不需要本机代码。如果可移植性是一个主要问题,那么本机代码可以相对容易地移植到iOS,只需用目标C/C++包装器替换Java包装器即可。谢谢Mika,这很有帮助。