Android :‘implementation’ 、 ‘api’ 、 ‘compile’ 区别和建议

api 指令

       完全等同于compile指令,没区别;可以将所有的compile改成api,完全没错,避免报错:

compile' is obsolete and has been replaced with 'implementation' and 'api'.

implement指令

       这个指令的特点就是,对于使用了该命令编译的依赖,对该项目有依赖的项目将无法访问到使用该命令编译的依赖中的任何程序,也就是将该依赖隐藏在内部,而不对外部公开。

       比如:你的图片加载依赖MyImageLoader中也依赖了Glide:

                  1:你的应用是api MyImageLoader:latest,那你的应用中也可以用Glide;

                  1: 你的应用是implements MyImageLoader:latest,那你的应用只能用MyImageLoader,只能用Glide;

建议

       在Google IO 相关话题的中提到了一个建议,就是依赖首先应该设置为implement的,如果没有错,那就用implement,如果有错,那么使用api指令。这样的建议会使编译速度有所增快。

那为什么要这么做呢?

       答案是: 1. 加快编译速度。2. 隐藏对外不必要的接口。

为什么能加快编译速度呢?

        这对于大型项目含有多个Module模块的, 以上图为例,比如我们改动 LibraryC 接口的相关代码,这时候编译只需要单独编译LibraryA模块就行, 如果使用的是api或者旧时代的compile,由于App Module 也可以访问到 LibraryC,所以 App Module部分也需要重新编译。当然这是在全编的情况下。

发布了154 篇原创文章 · 获赞 391 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/LucasXu01/article/details/103388078
今日推荐