AndroidStudio 3.4更新了啥?(转载)

版权声明:本文为原博主收集的资料,欢迎参考。未经本人允许,禁止转载。 原博文地址:https://blog.csdn.net/z302766296/article/details/89468726

每次到AndroidStudio新版本发布的时候,都忍不住想更新一波,例如现在的AndroidStu dio3.4

    不过说真的,以前在AS2.0的时代,我是很怕更新的,因为那个时候更新AS往往需要你更新gradle版本,但是gradle版本一更新,旧项目就开始不适应了,一堆gradle的坑,特别是引入了dagger2之后,更要死的感觉。

    多说一句,升级AS问题不大,但是你要想跟随AS升级,把Gradle也升级一波,那我还是劝你先三思而后行。

直到了3.0之后,我才感觉AS这个IDE才开始稳步发展了。


那说下这次3.4都更新了啥。
 1. Project Structure Dialog
 2. ResourceManager
 3. Plugin面板 
 4. R8

 

 

Project Structure Dialog(PSD)

其实就是我们平时对项目主程,按下F4的时候,显示的那个dialog。发现里面确实是多了几个功能。如图

发现呢,UI的话还是有点变化的。主要是看看功能变化,上面的Project、SDK Location都可以跳过了,可以看到第三个,新增的Variables。

 

Variables

 可以理解成,模块的gradle变量依赖。在UI上面,可以看到整个App的模块目录,然后在目录下面又有不同的dependencies。

(因为涉及到项目名,所以打码了)

先说下这个dependencies是什么呢?为什么有的项目会有dependencies呢?

一般的话,在开发过程中,特别是涉及到模块化开发的时候,为了保证全部模块都使用同一个依赖库的管理,这里一般有两种方法:

1.设置一个叫dependencies.gradle文件,里面主要是设置一些常用第三方库的依赖。

2.直接在主程的build.gradle下创建一个dependencies的节点。

 

先说方法一,就拿我以前负责搭建的一个项目为例。

然后在项目主程的build.gradle添加依赖

然后在子模块使用

大概就这样吧,一个依赖管理器,然后在主程项目添加引用,再到子模块使用。

 

方法二:

直接在主程下面的allprojects节点下,添加ext和dependencies节点

两者的方式都是一致的,为了做一个gradle的依赖管理。但是发现只有方案2的会显示在variables上,后面查了下官方的文档,他们的做法也是方案二的做法。

所以呢variables上面主要是一些定义在gradle中的变量。

 

再看到下面的Modules面板,和之前的功能大致一样,但是多了些提示的功能,UI上面也更加友好。但是和之前的相差不是很大。简单略过下

 

dependencies面板

在3.4版本,dependencies是单独拿了出来,还扩展了不少功能,最关键的一个莫过于是

依赖库的查找了 我们以前添加第三方库的依赖,一般是maven找,或者GitHub找对应的库。但是现在AS提供一个搜索依赖库的功能

dependencies面板的说明大概如上了,列出了当前模块依赖的第三方模块、右侧的就是不同构建版本下的依赖信息,可以详细看到依赖包的类。点击的一个dependencies的时候还有具体的提示,如图

 

依赖库的查找

通过dependencies里面的+小箭头,再选中library dependency就可以调到搜索页面了,可以搜Maven,JCenter等远程的仓库,也可以搜索本地的,大大减少了添加依赖时找包的问题- -。

但是也有一个需要注意的地方,看到这段注释,查找的第三方库都是根据我们projects项目的build.gradle中的repositories中配置的仓库控制。例如jcenter,Maven那些。

所以为了加快搜索速度,一般在projects下的build.gradle中的repositories添加如下配置

  1. buildscript {
  2. repositories {
  3. // 添加如下仓库。
  4. jcenter()
  5. google()
  6. mavenCentral()
  7. maven { url "https://jitpack.io" }
  8. maven { url "https://mvnrepository.com" }
  9. // 阿里云镜像
  10. maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
  11. }
  12. dependencies {
  13. classpath 'com.android.tools.build:gradle:3.4.0'
  14. // NOTE: Do not place your application dependencies here; they belong
  15. // in the individual module build.gradle files
  16. }
  17. }
  18. allprojects {
  19. repositories {
  20. google()
  21. jcenter()
  22. }
  23. }
  24. task clean(type: Delete) {
  25. delete rootProject.buildDir
  26. }

 

例如添加个OKHttp看看

注意,这里面搜索出来的可能比较多。这就需要取我们常用的,squareup下面的OKHttp3了,然后右侧有一个版本可以选择。点击OK之后,依赖只是添加到了清单文件,但是当我们构建gradle的时候就生效了。

再次点击这里的ok,就开始构建gradle了。

ps:有时候搜索的时候会提示noting to show...那就得看看project->build.gradle中是否配置了上述所说的那些仓库依赖了,有的情况下,添加了仓库依赖之后,也未必能找到。那就多试几次查找就好了。

 

buildVariants面板

buildVariants,感觉这个功能没啥用,因为buildVariants需要配置的远比面板提供的信息要多

 

Suggestions面板:

对当前项目模块构建的信息做一个提示建议,例如依赖的升级

以上就是PSD的东西了,但是3.4更新的ResourceManager也是厉害。直接上图

 

ResourceManager

默认会在左边的侧边栏找到,或者通过View->Tools Window->Resource Manager找到

 

打开ResourceManager 面板是这样的

感觉ResourceManager真的加快了开发的效率,尤其是在做APK优化,接手项目,查询layout的时候,简直是质的提升。

而且通过filter中勾选library查看第三方依赖的一些layout啊信息等,就可以针对性做优化了。

 

Plugin面板

面板的更新,也改变得比较直观,都是照顾程序员啊,眼睛不好使,所以文字描述啊,分类那些字体都放得大大的。

关键一个好的地方,搜索和结果是放在一起了。以前的版本,每次都要点下下面的browser...这边直接搜一下就ok了。

然后更新的面板也单独抽取出来,比较直观和容易地管理插件

 

R8

什么是R8?看到官网文档,R8是在3.3 beta的时候发布的一个功能,而3.4直接用R8的方式构建项目。

简单来说R8主要是针对proguard做的一系列的优化,将编译中的一部分任务集成在一起,提高了编译效率

 

未开启R8之前的编译任务如图

 

R8构建项目

 

R8效率对比,图来自官网

默认可以在gradle.properties中关闭R8

  1. # Disables R8 for Android Library modules only.
  2. android.enableR8.libraries = false
  3. # Disables R8 for all modules.
  4. android.enableR8 = false

 

再说下,在3.4遇到的功能,可能是之前3.3就有的功能,现在才发现

 

XML文件中的颜色提示器

 

XML层级提示器

 

 

最后上一个图,很久之前的ICON构造工具了,也是AS自带的= =。坤哥律师函警告

 

 

啦啦啦啦~~~6.10更新了 dependencies与project-build.gradle关系说明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487167.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图片缓存

转载于:https://www.cnblogs.com/cyruszhu/p/7995117.html

Nvidia真的收购Arm了吗?

来源:半导体行业观察综合自网络,谢谢。 近日有消息显示,Nvidia已成功达成收购Arm。但笔者通过翻阅外媒报道的原文中看,其实并非如此。据英国媒体EveningStandard报道,英伟达(NVIDIA)收购Arm已进…

刘江川院士:边缘计算如何应对能源互联网的碎片化和复杂性? | CCF-GAIR 2020

来源:雷锋网作者 | 王刚雷锋网按:2020 年8月7日,全球人工智能和机器人峰会(CCF-GAIR 2020)正式开幕。CCF-GAIR 2020 峰会由中国计算机学会(CCF)主办,雷锋网、香港中文大学&#xff0…

调查:人工智能技术的应用现状

本文最初发表在 Towards Data Science 博客上,经原作者 Luke Posey 授权,InfoQ 中文站翻译并分享。作者 | Luke Posey译者 | Sambodhi策划 & 编辑 | 刘燕随着工具和基础设施的成熟,应用人工智能不断加速发展。将这些基础设施与强大的人才…

LoRa VS NB-IoT,一场物联网时代C位争夺战

来源:脑极体我国5G商用已经一年多了,比起5G网络所带来的极致体验,我们对于西方世界因对5G网络的安全担忧所引发的一系列事件恐怕更加深有感触。美国跳脚、英国退网,中国在5G技术的领先深深刺痛了这些不可一世的西方大国。而原本可…

Beego 学习笔记9:Boostrap使用介绍

BootStrap布局 1> 下载地址: http://v3.bootcss.com/getting-started/#download 根据自己的需要,下载不同的版本。我这里使用的是1版本的。比较简单好用。 2> Bootstrap常用的布局样式介绍 1->布局容器(.container和.container-fluid&a…

名人论数学——数学的本质

来源:算法与数学之美罗巴切夫斯基任何一门数学分支,不管它如何抽象,总有一天会在现实世界中找到应用.罗巴切夫斯基(Н.И.лобачевский,1792~1856,俄国数学家)是非欧几何的创始人之一&#xff0c…

把握芯片科技发展趋势 促进半导体产业创新突破

来源:学习时报作者:李万芯片是信息社会的核心基石,也是各国竞相发展的重要新兴技术和产业。在某种程度上,一个国家的芯片科技水平以及在全球分工位置,意味着该国在全球科技竞争中的地位。芯片科技发展的基本特质芯片科…

宇宙是一个无始无终的循环?

图片来源:Samuel Velasco/Quanta Magazine最近,科学家通过复杂的计算机模拟发现,除了宇宙暴胀,宇宙收缩同样可以创造出今天我们所见宇宙的种种特征。并且在循环宇宙中,膨胀和收缩会交替进行。在这个理论中,…

在VMware中装Win server 2012配置Hyper-v

找到虚拟机存放位置,找到Windows Server 2012.vmx 用记事本打卡,在文本最后添加以下两行并保存 hypervisor.cpuid.v0 "FALSE" mce.enable "TRUE" 在虚拟机里设置里勾选处理器的虚拟化Intel VT-x/EPT或AMD-V/RVI(V) 转载于:https:/…

Nature:“巨型原子”使芯片同时处理和收发量子信息成为可能

图片来源:Pixabay文章来源:麻省理工学院━━━━麻省理工学院(MIT)的研究人员介绍了一种量子计算架构,它可以执行低错误的量子计算,同时在处理器之间快速共享量子信息。这项工作代表了迈向完整量子计算平台…

大脑认知能力获突破进展!《科学》发现促进大脑发育期间的关键细胞器

本文来源于公众号:生物谷,作者T.Shen作为在10亿年前细胞中不断进化的小型细胞器,线粒体或许对于人类进化做出了巨大贡献,尤其是对于需要能量维持正常功能的大脑。8月14日,一项刊登在国际杂志Science上的研究报告中&…

人工智能背后的数学

本文来自王宏琳科学网博客计算机会“思维”、Agent(智能体)能感知环境、机器可从经验中学习,其背后离不开数学——从线性代数、概率统计到拓扑学众多数学分支。这篇读书札记讨论人工智能背后的数学。【人工智能离不开数学】术语“人工智能&am…

Science 好文:强化学习之后,机器人学习瓶颈如何突破?

来源 | AI科技评论编译 | 陈彩娴编辑 | 陈大鑫在过去的十年里,机器学习确实取得了巨大的突破,计算机视觉与语言处理方面也因此出现了许多改变世界的重要应用。但是,这股“春风”却没有吹到智能机器人领域。针对机器人学习所面临的瓶颈&#x…

基于忆阻器的神经网络应用研究

来源:文章转载自期刊《微纳电子与智能制造》,作者:陈 佳,潘文谦,秦一凡,王 峰,李灏阳,李 祎,缪向水。摘 要基于忆阻突触器件的硬件神经网络是神经形态计算的重要发展方向…

CORS预检请求详谈

引言 最近在项目中因前后端部署不同地方,前端在请求后端api时发生了跨域请求,我们采用CORS(跨域资源共享)来解决跨域请求,这需要前后端的配合来完成。在这一过程中,后端支持了CORS跨域请求后,前端的请求配置可能会调起…

制胜人工智能时代——企业人工智能应用现状分析(第三版)

全文共计300字25图,预计阅读时间9分钟来源 | 德勤Deloitte(转载请注明来源)编辑 | 张77当前,现今一代人工智能技术的应用正在展开新的篇章。我们可以看到,人工智能已被广泛部署于各类用例,以解决不同业务问…

Tomcat启动时项目重复加载,导致资源初始化两次的问题

最近在项目开发测试的时候,发现Tomcat启动时项目重复加载,导致资源初始化两次的问题导致该问题的原因:如下图:在Eclipse中将Server Locations设置为“Use Tomcat installation(takes control of Tomcat installation)”时&#xf…

论文速递:通过模拟大脑-解决深度学习中的灾难性遗忘

来源:混沌巡洋舰灾难性遗忘指的是:不像人类,当深度学习模型被训练完成新的任务时,他们很快就会忘记以前学过的东西。8月13号的自然通讯论文Brain-inspired replay for continual learning with artificial neural networks&#x…

蒲慕明院士PNAS最新研究:神经元数量在共同激活诱导大脑神经元兴奋性增强的重要性...

来源:brainnews2020年8月3日,中国科学院脑科学与智能技术卓越创新中心(神经科学研究所)、上海脑科学与类脑研究中心、神经科学国家重点实验室蒲慕明研究组在《Proceedings of the National Academy of Sciences》杂志在线发表了题为《同步激活大量神经元…