创建和使用;“公共平台”;Android中的jar-什么有效?

创建和使用;“公共平台”;Android中的jar-什么有效?,android,jar,platform,Android,Jar,Platform,它将我拥有的应用分为“平台”和“应用”两层,这样我就可以将平台作为jar分发给合作伙伴使用,同时保护我的IP 我现在有两个Eclipse项目。Building无法将任何资源编译到jar中,因此我将所有资源引用都移动到应用程序项目中(平台项目gen/目录为空)。我编译了平台,然后手动使用jdk对其进行jar,将jar导入app项目,在app项目中将jar标记为导出,并成功编译并安装了一个测试应用: public class NotifyService extends Service { .

它将我拥有的应用分为“平台”和“应用”两层,这样我就可以将平台作为jar分发给合作伙伴使用,同时保护我的IP

我现在有两个Eclipse项目。Building无法将任何资源编译到jar中,因此我将所有资源引用都移动到应用程序项目中(平台项目gen/目录为空)。我编译了平台,然后手动使用jdk对其进行jar,将jar导入app项目,在app项目中将jar标记为导出,并成功编译并安装了一个测试应用:

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()消息。但是没有显示任何通知,也没有记录任何错误-它只是无声的

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

更新

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


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

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

[编辑]

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

-独立库,作为JAR分发


-Examples应用程序,它使用AndEngine JAR

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

“它(包裹)封装了一个JAR和其他与Android相关的文件,您需要这些文件来有效地使用该JAR。” -高级Android开发


谢谢你,蒂姆。我不会将我的平台作为源分发-我想保留我的IP。也许我从那个参考文献中误解了这些话。。。“库不能作为二进制文件(如jar文件)分发。这是因为库项目由主项目编译以使用正确的资源ID。”这就是为什么我将所有资源引用迁移到应用层,并在平台调用中将它们作为参数(或意图附加)传递。Google API库包含两个JAR,同一个文档说可以引用它们。@DJC-根据我的编辑,我意识到AndEngine是一个非常特殊的用例,但它的一些管道可能会对您有用。Ty Tim。。。我在应用程序端引入了一个错误,请参阅原始帖子的更新。我在路上,似乎…兴奋地说:)