它将我拥有的应用程序细分为“平台”和“应用程序”层,以便我可以将平台作为 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() 消息。但是没有显示通知,也没有记录错误 - 它只是沉默。...
无论如何,我希望合作伙伴应用程序能够使用我的平台,该平台连接到服务、内容提供商、网络和作品。有人提供一些指导吗?
更新!
哈......典型......当我将所有资源移出我的平台并进入我的应用程序时,我没有正确地从应用程序层传递这些资源。因此,我给出的代码示例没有错误。当然,使用意图而不是链接将“传递的参数”与“预期的参数”分离 - 编译器不会抱怨。使用更正的应用程序,这是可行的。
虽然我认为创建一个二进制分发平台并不少见,但我没有找到太多关于它的文档,所以我会在打开大门时继续添加任何重要的发现......希望它对某人有用。