2018-08-24学习笔记
手把手教你使用Android studio生成正式签名的APK文件 9.5.3 Android Apk 反编译 & 9.5.4 Android Apk 加密 10.1.5 布局优化利器之 Hierarchy Viewer Android实战note1(MyMirror一款小型摄像处理的App)
dependencies对于Android开发人员来说,并不陌生, 它是用来配置当项目的依赖项,接收的是一个DependencyHandler的闭包。
dependencies的类型可以分为以下几种
就以上类型,针对仔细说明
从依赖上讲,用compile修饰的配置会传递依赖,而大多数的依赖冲突都是由compile产生的,什么是传递依赖?
打个比方:我们现在有libA,然后libB用compile依赖libA,最后libC依赖libB。那这个时候,libC自然能够使用libA的内容,因为libA的内容跟随这个libB而传递到了libC中。如下图:
而且compile得越多,所产生的依赖树也就越长,也就越难控制。
从编译上讲,使用compile配置的依赖项,会跟随打包流程将源码打包到apk中。
这两个依赖项配置和compile是差不多的,也会产生传递依赖,唯一不同的是,testcompile和androidTestcompile不会参与源码打包,只会参与测试包的打包,并且只有在测试模式下启动才会生效,debug和release包不生效。
implementation 是Gradle4.1(Android studio3.0)新增的依赖方式,implementation和compile不同,该依赖方式不会产生传递依赖,implementation有点像provided和、debugCompile和releaseCompile的集合体。
来个具体场景,例如:有libA公共库,libB通过implementation依赖libB,然后app无论通过什么方式依赖libB,lib1的依赖都不会传递过来,必须要在app中重新依赖一次。如下图:
使用implementation有什么好处呢?
和前面的compile一样,只是implementation不会产生传递依赖,就不一一阐述了。
只参与编译,不参与打包。例如说有libB依赖了libA,moduleC又同时依赖了libA和libB,那么libB就可以使用provided来依赖libA。
api是Gradle4.1(Android studio3.0)新增的依赖方式,其作用于compile基本一致。
以上是就是dependencies的类型讲解,对于使用Gradle plugin 3.X.X以上版本的gradle,我们应该转而使用implementation,减少compile的使用,避免依赖冲突的产生。如果我们有开放的lib,那么更加应该使用implementation依赖一些v4、v7的包,尽量少给lib的使用者造成困扰。
未完待续、敬请期待!
免为其难的关注一下公众号吧!!
微信关注我们
转载内容版权归作者及来源网站所有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。
Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。
Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。