【发布时间】:2011-03-02 05:12:19
【问题描述】:
我正在做一些关于智能手机开发的初步研究,我注意到 Android 和 Windows Mobile 都支持 c++ 进行应用程序开发。我很好奇是否有人有任何尝试管理 Android 和 Windows Mobile 之间共享文件的经验,以及可以在多大程度上共享代码?例如不能共享用户界面,但可以共享 Web 服务和业务逻辑类等。
【问题讨论】:
我正在做一些关于智能手机开发的初步研究,我注意到 Android 和 Windows Mobile 都支持 c++ 进行应用程序开发。我很好奇是否有人有任何尝试管理 Android 和 Windows Mobile 之间共享文件的经验,以及可以在多大程度上共享代码?例如不能共享用户界面,但可以共享 Web 服务和业务逻辑类等。
【问题讨论】:
我不能谈论 WinMo 方面的事情,但在 Android 方面,除了性能关键的处理算法之外,您真的应该真正避免使用本机代码。 JNI/NDK 的东西不能很好地与正常的 Dalvik 生命周期配合使用,并且可能成为各种丑陋、令人不快的错误和内存泄漏的根源。据我了解,也没有用于更复杂高级功能(如 HTTP)的板载 NDK 库(只是更基本/面向性能的库,如 libz 和 OpenGL),因此您可能必须编译这些东西并发布它也与应用程序一起使用。我绝对不推荐用 C++ 编写你的 Web 服务类,即使它在技术上是可行的;编写 C#/Java 会更少错误且更好,并且您应该能够做出几乎相同的架构决策以保持一致性。
也就是说,如果您有对性能至关重要的图像处理代码或类似代码,实际上可以相当简单地将其在 Android 上运行到其他平台(我已经看到它在某些图像上做得很好 -处理在 iPhone 应用中使用的 C 代码,然后通过 NDK 在 Android 应用中使用)。
查看 NDK 上的 documentation 了解它可以(和不能)做什么的详细信息,并查看类似的 SO 线程,如this one。
【讨论】: