我的工作包括将 iPad 应用程序移植到 Android(从 Objective-C 到 Java)。我在 Android 环境中开发过,但从未在 iOS 环境中开发过。目前我正在寻求建议——我想知道是否有一种方法、方法或过程可以帮助我更轻松地做到这一点。
2 回答
在这个阶段,答案通常是否定的,但我有一些建议可能会有所帮助。
广泛使用 UIWebView/Webkit - 除了任何 HTML5 媒体(和 SVG),渲染 HTML 时几乎不需要移植。通常,您在一个中渲染的内容在另一个上渲染得很好。
如果您的 iOS 应用程序是基本的显示-编辑-那种风格的应用程序,您可能会发现 PhoneGap、jQuery Mobile、Titanium 或新的 Adobe 套件是更好的时间投资。
由于 Android 缺乏一致的设备基础,这使得开发富含动画的 UI 变得困难,您可能会发现没有 1-1 的 UI 比较。相反,请考虑您提供的功能,以及它们的基础数据和视图模型。
您应该能够创建类似的 UIViewController/Activity 结构,尽管幕后的绑定逻辑将是特定于平台的。将其映射到一些纸上 - 它为您的 UI 框架制定了一个非常好的下一步计划。
更喜欢“输入数据”和“输出数据”之间的中间抽象,这样您就可以交换解析器/工具包/apis/框架,而无需将所有内容都破解成比特。
如果您有自定义绘制例程和图形,请确保您有填充渐变或颜色。Android 使用盒子模型来支持多种屏幕尺寸 - iOS 只有 4 种分辨率需要担心。重新创建相同的外观可能需要太多时间 -对比柔和的颜色是一个很好的占位符,直到您可以证明制作艺术品的合理性。
没有太多可以说的,以前没有说过的。
希望这可以帮助!
几点建议:
- 在大多数情况下,您需要将 UI 重新设计为 iPad,作为平板电脑并且与大多数 Android 设备相比具有更大的屏幕。建议:检查是否有专门用于 iPhone 的应用程序版本,因为它在重新设计阶段可能非常有用。
- 检查 iPad 代码是否包含除 Objective-C 代码之外的 C/C++ 代码。如果有大量代码,您可以考虑使用 Android NDK,它允许 C/C++ 代码与 Java 一起使用。
- 如果 iPad 应用程序使用基于 HTML5/CSS/JavaScript 组合的流行跨平台框架之一(例如 PhoneGap),您可能能够重用大部分代码。负责呈现 HTML5 的 iPad 和 Android 浏览器/ui 元素都基于相同的引擎 (WebKit),并且通常会产生相似的体验。注意:一些框架允许自定义访问本机功能,这几乎在所有情况下都需要重写。
- 如果与用户界面指南冲突,请勿尝试在 Android 上创建完全相同的 UI。您可能知道这些指南可在以下网址获得:http: //developer.android.com/guide/practices/ui_guidelines/index.html Android 用户习惯于某些界面,他们应该获得与其他适用于 Android 的应用程序类似的体验。此外,为 iPad 上存在的 Android 创建类似的控件可能会非常痛苦。如果有压力要做出相同的“外观和感觉”,这里有一篇文章解释了如何抵御这种压力:将 iPhone 应用程序移植到 Android?如何说服他们不要
- iPad 上存在的许多功能在 Android 上将不可用(例如,仅使用图像的 Android 应用程序启动屏幕)。因此分析 iPad 应用程序并将其分解为一组功能。拥有它们后,您可以将它们映射到 Android API 并开始编码。
- 目前还没有 Objective-C 到 Java 的转换器(这可能会在未来发生变化)但是为了总体感觉 Objective-C 和 Java 之间有什么区别,您可能需要阅读 Theresa Ray 的“将 Objective-C 移植到 Java”张量信息系统公司