我正在开发一个项目,到目前为止为了给我的消费者提供最小的集成工作,我被迫使用所有核心Android框架API。话虽这么说,我没有使用任何额外的依赖,虽然有很多可用的android库,让我的生活更轻松。但最近我一直在考虑使用Android annotation library。为了使用它,文档要求我将它们包含在项目中。
dependencies { compile 'com.android.support:support-annotations:24.2.0' }
据我所知,这将使我的消费者在使用我的图书馆时被迫降低图书馆(他们可能不需要)。任何人都可以告诉我,如果有更好的做法可以实现不包括我的消费者库,而只包括我自己的项目范围?
更新:
我想我刚从官方文档中找到了这两行。
If you use annotations in your own library module, the annotations are included as part of the Android Archive (AAR) artifact in XML format in the annotations.zip file. Adding the support-annotations dependency does not introduce a dependency for any downstream users of your library.
但我仍然对一般依赖问题以及如果我们只是一个库如何处理依赖关系感到好奇。
答案 0 :(得分:0)
通常,可以使您所依赖的库可供库的用户使用。 如果有几个库需要流行的依赖,那么如果你想减少你的apk大小,最好只包含一次代码。 此外,如果您的库的用户不想包含传递依赖项,则可以将exclude option添加到依赖项声明中。
其他情况是,当您需要提供多个库时,您也可以ensure that the transitive dependency has the same version among your libraries
换句话说,我会让用户有权决定他们是否需要传递依赖。