我正在编写一个定义远程服务的SDK,并为第三方开发人员提供AIDL接口。对于我的测试,我将SDK安装为Android应用程序(XYZService.apk),虽然它只是一个后台服务(在客户端绑定它之前不会启动)并且没有定义任何活动。我还将我的测试客户端应用程序安装为第二个应用程序(TestClient.apk)。 TestClient应用程序具有活动,在启动时,它绑定到XYZService并启动它。
但我很困惑应该如何为第三方开发人员打包此SDK。让我们说第三方开发人员写了一个新客户端ClientFoo.apk。他们如何向通过Google Play下载ClientFoo.apk的用户提供XYZService.apk。我是否必须通过Goolge Play提供XYZService.apk?有没有第三方开发人员可以将XYZService与他们的.apk文件一起打包?
我可以向第三方开发者提供JAR文件吗?基本上,为我的远程服务提供JAR对我来说是一个理想的解决方案。
非常感谢您的回答。我是Android开发的新手。
答案 0 :(得分:0)
我是否必须通过Goolge Play提供XYZService.apk?
你必须以某种方式分发它。 APK文件不会出现在用户的设备上。您是否使用Google Play或其他分发机制取决于您。
有没有第三方开发人员可以将XYZService和他们的.apk文件打包在一起?
是的,通过删除APK,摆脱AIDL,并将SDK实现为JAR或Android库项目。将可重用代码作为JAR分发已经在基于Java的开发中使用了大约15年。
如果您要分发自己的应用程序,用户希望独立于其他任何内容,并且另外希望允许第三方访问您的应用程序公开的服务,则使用AIDL和APK 。如果您没有这样的应用程序,或者不希望用户必须安装单独的应用程序,那么您应该提供JAR或Android库项目,因此您的代码将被添加到第三方的应用程序中。
我可以向第三方开发者提供JAR文件
您可以将SDK实现为JAR,只要它不需要资源 - 那么,您需要将其作为Android库项目进行分发。