编写适用于Android的SDK的特定规则

tic*_*fab 3 sdk android

如果我想为Android编写SDK,是否需要遵循任何特定规则?想想Paypal SDK或Facebook SDK.

ver*_*loc 6

我喜欢将SDK视为为SDK试图解决的问题创建特定DSL的一种方式.因此,创建SDK(或广义上的API)与创建新语言类似.

如果这恰好是您查看问题的方式,请查看Josh Bloch关于API设计的主题演讲.他的很多建议也适用于SDK设计.


谈到Android的具体情况,您必须记住一件事:部署.在Android上部署很糟糕.是的,我们正处于过渡到基于gradle的构建系统的阶段,但大多数项目仍然使用Maven或只是Eclipse项目.如果您要为Android提供SDK,您几乎必须支持:

  • 想要使用gradle的人:在这种情况下,您需要以aar格式导出项目.关于它的更多信息在这里
  • 仍在使用Maven的人.在这种情况下,您必须使用Maven android插件在Maven存储库上部署项目.更多信息在这里
  • 想要将SDK作为库包含在Eclipse中的人.这与Facebook在其" 入门"页面上描述的方式类似.

有一些方法可以避免如此多的重复部署通道(使用Maven的aar支持将Maven的apklib作为Eclipse项目解压缩),但是,在构建系统成熟之前,您可能不得不在所有三个部署路径之间进行操作.

提示:您可能不需要涵盖所有三种情况.要了解哪些部署路径可以删除,请查看竞争对手如何提供SDK.

至于文档,需要最小的Javadoc.但是,你可以有创意,并尝试Parse.com的API指南风格,它非常精彩.