如何制作 SDK 给其他人使用?

工作中需要制作SDK,在实际工作中发现制作SDK有许多需要考虑的地方,比如:

1、如何将SDK打包成带资源文件的JAR包给别人?
2、如果在SDK中使用到了RxJava、Retrofit等第三方框架,就需要提供相应的jar包给用户集成,感觉这样体验不是很好,有没有比较好的解决方案?

aar的方案就不用说了,现在的目标是要同时提供jar给那些使用Eclipse的用户。。。

网上这方面的资料比较少,希望了解的童鞋能提供一下解决思路,或者推荐一些相关资料,谢谢。

1,首先jar包不能打包那种带资源文件的,因为资源文件是靠.R访问的,即便你把资源放入进去也无法访问。
2,使用第三方的jar,如果不准备提供jar,那么你就只能将使用了第三方的jar尽数写到自己打代码中,否则无法使用。

以上就是使用jar的问题,如果使用jar就会有这些问题,这些问题正常途径无法解决,网上有一些黑科技比如修改R文件的值或者其他什么方式,虽然可用,但并不通用,也不建议使用。

建议的方式使用lib工程的方式让对方依赖进行开发,核心的代码通过打包成jar包混淆,剩余代码则做成lib工程,让对方依赖进行开发。

jar多数是没有资源的,具体你可以看其他第三方SDK就能发现。建议正常途径解决,不要在网上利用一些“邪道”完成这一点,因为后面可能会更加痛苦。

1 首先,申明一点打包成jar包是访问不了资源文件的。可以采用下面的方式:
生成库文件提供给Eclipse开发者
打包成aar文件提供给Android Studio开发者
2 即使将第三方jar包同时提供给开发者也没什么体验不好的,要明白需求方是开发者,而不是普通用户。

体验是留给跟上时代的用户的,Eclipse都已经被抛弃了,谈兼容谈体验都是费力不讨好的事情,建议你专心做SDK,打包用aar吧。
如果非要兼容Eclipse,那就提供源码吧,打源码包吧。

1.如何需要将资源文件提供,第一是可以建立Library工程,把资源文件、jar,依赖的jar通通放在里面。第二是写好文档,把这些东西提供给使用方,让他们复制。当然这个findviewbyId这块需要单独处理一下子。

这样资源文件的命名空间就相当重要了,比如说你有一个颜色叫做black,很有可能别人的也叫作这个名字,你最好这么写your_sdk_name_black

2.做SDK最好不要使用第三方库,如果接入你们SDK的人也使用同样的库呢,但是版本不一样呢?举个简单的例子,Retrofit在不同版本差异是很大的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注