以实际案例咨询j2objc
Consulting on j2objc with a practical case
我计划将 android 应用程序移植到 IOS(ipad 等...),在研究 google 期间我发现了 j2objc。有很多关于 j2objc 的讨论,我无法弄清楚它是如何工作的以及有什么可能。
(我知道,从头开始移植一个应用程序可能是最好的,然后相信一个神奇的转换器,它可以完成这项工作。但我也想看看这个:-))
我想通过展示了解它的工作原理。 (摘要级别)
转换器 help/work 是否适用于以下情况?
我有 java 访问 SQLite 数据库并将数据加载到 ArrayList JavaClass 实例 (Tasks.java) 的代码:
- 程序加载数据(); (loader.java)
ArrayList<Task> alTask=new ArrayList<Task>();
Cursor c = sqlitedatabase.rawQuery(sSQL, null);
c.moveToFirst();
while (!c.isAfterLast()) {
Task t=new Task();
t.setname(c.getString(0));
..
..
alTask.add(t);
}
return alTask;
Class 任务 (Task.java)
Class任务{
字符串 sName="";
..
..
ArrayList alSubtasks;
}
如果我想在 IOS 应用程序列表中显示任务,我可以只转换我的 java 类,将它们绑定到我的 IOS应用程序以某种方式使用转换后的 loaddata() 来使用新的 Array(IOS 语法) 在 IOS UI-List 中显示它?
(UI-列表我将从头开始在 IOS 中编写代码。)
您的总体思路是正确的,但不幸的是 SQLite 是一个糟糕的例子,因为您使用的是不可移植的 android.database API。
还有一个request for a portable SQLite library,还没有实现。如果您希望在可用时收到通知,请单击星形图标。
问题在于,一个功能齐全的库需要大量本机代码,但在实践中,大多数应用只使用少数几个方法。 Here's an email thread on a way for a developer to implement just the necessary SQLite support methods.
最简单的方法是使用一些可在 Android 和 iOS 平台之间移植的 SQLite 实现。开箱即用的 j2objc 工具集\库不支持它。
所以当我遇到这个问题时,我开发了一些解决方案:https://github.com/vals-productions/sqlighter。
可以在 java 中编码并转换为 objective c,或者进行 "parallel" 编码,这在两种语言中看起来非常相似。自述文件包含一些示例。
我还没有太多制作时间,但足够简单,到目前为止对我来说很管用。
我计划将 android 应用程序移植到 IOS(ipad 等...),在研究 google 期间我发现了 j2objc。有很多关于 j2objc 的讨论,我无法弄清楚它是如何工作的以及有什么可能。 (我知道,从头开始移植一个应用程序可能是最好的,然后相信一个神奇的转换器,它可以完成这项工作。但我也想看看这个:-))
我想通过展示了解它的工作原理。 (摘要级别)
转换器 help/work 是否适用于以下情况?
我有 java 访问 SQLite 数据库并将数据加载到 ArrayList JavaClass 实例 (Tasks.java) 的代码: - 程序加载数据(); (loader.java)
ArrayList<Task> alTask=new ArrayList<Task>();
Cursor c = sqlitedatabase.rawQuery(sSQL, null);
c.moveToFirst();
while (!c.isAfterLast()) {
Task t=new Task();
t.setname(c.getString(0));
..
..
alTask.add(t);
}
return alTask;
Class 任务 (Task.java)
Class任务{ 字符串 sName=""; .. .. ArrayList alSubtasks; }
如果我想在 IOS 应用程序列表中显示任务,我可以只转换我的 java 类,将它们绑定到我的 IOS应用程序以某种方式使用转换后的 loaddata() 来使用新的 Array(IOS 语法) 在 IOS UI-List 中显示它? (UI-列表我将从头开始在 IOS 中编写代码。)
您的总体思路是正确的,但不幸的是 SQLite 是一个糟糕的例子,因为您使用的是不可移植的 android.database API。
还有一个request for a portable SQLite library,还没有实现。如果您希望在可用时收到通知,请单击星形图标。
问题在于,一个功能齐全的库需要大量本机代码,但在实践中,大多数应用只使用少数几个方法。 Here's an email thread on a way for a developer to implement just the necessary SQLite support methods.
最简单的方法是使用一些可在 Android 和 iOS 平台之间移植的 SQLite 实现。开箱即用的 j2objc 工具集\库不支持它。
所以当我遇到这个问题时,我开发了一些解决方案:https://github.com/vals-productions/sqlighter。
可以在 java 中编码并转换为 objective c,或者进行 "parallel" 编码,这在两种语言中看起来非常相似。自述文件包含一些示例。
我还没有太多制作时间,但足够简单,到目前为止对我来说很管用。