0

它将我拥有的应用程序细分为“平台”和“应用程序”层,以便我可以将平台作为 jar 分发给合作伙伴使用 - 同时保护我的 IP。

我现在有两个 Eclipse 项目。Building 没有能力将任何资源编译到 jar 中,所以我将所有资源引用移到了 app 项目中(平台项目 gen/ 目录为空)。我编译了平台,然后手动使用jdk to jar,将那个jar导入到app项目中,在app项目中将jar标记为export,成功编译安装了一个测试app:

public class NotifyService extends Service {
    ...
    @Override
    public void onStart(Intent intent, int startId) {
        myNotify(intent.getIntExtra(EXTRA_ICON),...));
    }

    private void myNotify(int iconResource, String s1, String s2, String s3) {
        Context c = getApplicationContext();
        if (H.VERBOSE) Log.d(TAG, "myNotify()"); //$NON-NLS-1$
        Notification n = new Notification(iconResource, s1, currentTime);
        Intent nextStep = new Intent(Intent.ACTION_VIEW,Uri));
        PendingIntent pending = PendingIntent.getActivity(c, 0, nextStep, 0);
        n.setLatestEventInfo(c, s2, s3, pending);
        mgr.notify(1, n);
    }... 

测试活动按预期启动,我从该服务收到 LogCat() 消息。但是没有显示通知,也没有记录错误 - 它只是沉默。...

无论如何,我希望合作伙伴应用程序能够使用我的平台,该平台连接到服务、内容提供商、网络和作品。有人提供一些指导吗?

更新!

哈......典型......当我将所有资源移出我的平台并进入我的应用程序时,我没有正确地从应用程序层传递这些资源。因此,我给出的代码示例没有错误。当然,使用意图而不是链接将“传递的参数”与“预期的参数”分离 - 编译器不会抱怨。使用更正的应用程序,这是可行的。

虽然我认为创建一个二进制分发平台并不少见,但我没有找到太多关于它的文档,所以我会在打开大门时继续添加任何重要的发现......希望它对某人有用。

4

2 回答 2

1

你应该看看“图书馆项目”的概念。

使用图书馆项目

[编辑]

@DJC - 我明白了......在这种情况下,我建议查看 AndEngine 项目。该项目的输出是一个 JAR,然后用于 AndEngineExamples 项目(使用它的示例应用程序)。

AndEngine - 独立库,作为 JAR 分发

AndEngineExamples - 使用 AndEngine JAR 的示例应用程序

于 2010-09-01T18:35:34.673 回答
0

看看使用包裹,它就像一个罐子,只是它的 android 特定的。我对它们没有太多经验,但我认为它们在重用活动、视图和事物方面非常强大。

“它(包裹)包装了一个 JAR 和其他您需要有效使用该 JAR 的 Android 相关文件。” - 高级安卓开发

于 2010-09-01T18:54:24.203 回答