Android Studio 4,大厂面试必备
coreLibraryDesugaring ‘com.android.tools:desugar_jdk_libs:1.0.4’
}
3、功能上的依存关系
在早期版本的 Android Gradle 插件中,所有动态功能模块都只能依赖于应用程序的基本模块。
现在,当使用 Android Gradle 插件 4.0.0 及更高版本时,可以包括一个依赖于另一个功能模块的功能模块,即 :video
功能可以取决于:camera
功能,而功能取决于基础模块,结果如下图所示。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xqy9ptki-1637896214314)(https://user-gold-cdn.xitu.io/2020/5/29/1725e21b8c0c1a07?imageView2/0/w/1280/h/960/ignore-error/1)]
动态功能
:video
取决于:camera
的功能,后者取决于基本:app
模块。
这意味着,当应用程序请求下载动态功能模块时,该应用程序还会下载其依赖的其他功能模块,在之后创建动态功能模块,你可以在模块声明一个功能上特征依赖 build.gradle
文件,例如 :video
模块声明对 :camera
以下项的依赖关系:
// In the build.gradle file of the ‘:video’ module.
dependencies {
// All dynamic feature modules must declare a dependency
// on the base module.
implementation project(’:app’)
// Declares that this module also depends on the ‘camera’
// dynamic feature module.
implementation project(’:camera’)
…
}
此外,你可以通过在菜单栏中单击 Help > Edit Custom VM Options 并启用以下功能,在 Android Studio 中启用 feature-on-feature dependency 功能(例如,在编辑 Run configuration 时支持该功能):
-Drundebug.feature.on.feature=true
4、依赖元数据
使用 Android Gradle 插件 4.0.0 及更高版本构建应用时,该插件包含描述已编译到应用中的依赖项的元数据,uploading 应用程序时,Play 控制台会检查此元数据提供以下好处:
- 获取有关你的应用使用的SDK和依赖项的已知问题的警报
- 收到可行的反馈来解决这些问题
数据经过压缩,通过 Google Play 签名密钥加密,并存储在发布应用的签名栏中,你也可以自己在以下目录中的本地中间构建文件中检查元数据:<project>/<module>/build/outputs/sdk-dependencies/release/sdkDependency.txt。
如果不想共享此信息,可以通过在模块 build.gradle
文件中添加以下内容来退出:
android {
dependenciesInfo {
// Disables dependency metadata when building APKs.
includeInApk = false
// Disables dependency metadata when building Android App Bundles.
includeInBundle = false
}
}
二、支持 Kotlin DSL 脚本文件
Android Gradle 插件现在支持 Kotlin DSL 构建脚本文件(*.kts
),配合 Android Studio 结合使用时,某些 IDE 功能(例如 Project Structure
对话框和构建脚本快速修复程序)现在还支持读写 Kotlin 构建脚本文件。
三、 CPU Profiler 升级
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rTbAgfGV-1637896214342)(https://user-gold-cdn.xitu.io/2020/5/29/1725e27ebe308a6f?imageView2/0/w/1280/h/960/ignore-error/1)]
根据用户的反馈,谷歌将集中精力通过两种重要方式来改善 CPU Profiler 中的用户体验。
首先,与以前的 Android Studio 版本相比,CPU Profiler 中 CPU 记录的错误率已大大降低。
其次,对 CP
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
U Profiler UI 进行了全面改进,以提供更直观的工作流程,其中 UI的一些显着更改包括:
- CPU记录与主探查器时间轴分开了以便于分析,记录的数据在 Profiler 窗口的左侧按组分布。用户可以通过单击探查器中的选项图标
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RkQqDiLx-1637896214343)(https://user-gold-cdn.xitu.io/2020/5/29/1725e2a6db8dddbb?imageView2/0/w/1280/h/960/ignore-error/1)]
在窗口右上角的选项图标图标或通过拖放组中的单个项目来上下移动组以重新组织列表 。
为了更轻松地进行并排分析,用户现在可以在线程活动时间轴中查看所有线程活动(包括方法,函数和事件)。有几种方法可以浏览时间轴:
要关注特定的时间点,请在 CPU 使用率图表的左上方拖动一个范围。
要放大或缩小,请在按住 Control(或MacOS上的Command)的同时使用鼠标滚轮;要向左或向右平移,请在按住空格键的同时拖动。
或者使用W和A键进行精细的放大和缩小,使用S和D键进行左右的精细平移。
Flame Chart,Top Down 和 Bottom Up 分析的选项卡现在位于右侧列中,在 Threads 组中,对于系统跟踪记录线程会自动展开,对于其他记录类型默认情况下会折叠起,在线程名称上双击(或按Enter)以展开或折叠它们。
如屏幕截图所示,系统跟踪UI还包括以下改进:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-33atnWBK-1637896214343)(https://user-gold-cdn.xitu.io/2020/5/29/1725e2ca143e2dd0?imageView2/0/w/1280/h/960/ignore-error/1)]
- 现在事件采用了独特的颜色,以便于区分。
- 线程按它们中的跟踪事件数进行排序,以便 “busier” 的线程在列表中排名更高。
- 可以选择一个或多个线程以仅在那些选定的线程的右列中查看分析。
- 同样,可以在任何线程中选择一个跟踪事件以查看其分析数据。
四、设计工具
此版本的 Android Studio 包括对设计工具的更新,例如 Layout Inspector (布局检查器)和全新的 Motion Editor 。
1、新动作编辑器
Android Studio 现在包括用于 MotionLayout 布局类型的可视设计编辑器,使创建和预览动画更加容易。
动作编辑器提供了一个简单的界面,用于处理 MotionLayout
库中的元素,这些元素是 Android 应用中动画的基础。
在以前的版本中,创建和更改这些元素需要手动编辑XML资源文件中的约束。现在,运动编辑器可以为您生成此XML,并支持开始和结束状态,关键帧,过渡和时间轴。
要了解有关如何使用运动编辑器的更多信息,请参见用户指南。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YE1mLJsY-1637896214345)(https://user-gold-cdn.xitu.io/2020/5/29/1725e2e4437834af?imageView2/0/w/1280/h/960/ignore-error/1)]
⚠️注意:在使用 Motion 编辑器之前,请确保将文件中的 ConstraintLayout 依赖项设置 build.gradle 为 version 2.0.0-beta3 或更高版本。
2、Live Layout Inspector
使用 Live Layout Inspector 调试版式,在将应用程序部署到设备时可提供对应用程序UI完整地实时更新。
要打开 Layout Inspector 窗口,请转到 View > Tools Windows > Layout Inspector。除了现有布局检查器的许多相同功能外,实时布局检查器还包括:
- Dynamic layout hierarchy(动态布局层次结构):随着设备视图的更改而更新。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xELskfu1-1637896214346)(https://user-gold-cdn.xitu.io/2020/5/29/1725e30a74ae87e7?imageView2/0/w/1280/h/960/ignore-error/1)]
- Property values resolution stack:(属性值解析堆栈):调查资源属性值在源代码中的起源,并通过遵循属性窗格中的超链接导航到其位置。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aPSsSMjb-1637896214347)(https://user-gold-cdn.xitu.io/2020/5/29/1725e3110b923206?imageView2/0/w/1280/h/960/ignore-error/1)]
- 3D view(3D视图):在运行时通过高级 3D 可视化查看应用程序的视图层次结构,要使用此功能,只需在 Layout Inspector 窗口中单击布局并旋转它。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mSYUyWH8-1637896214347)(https://user-gold-cdn.xitu.io/2020/5/29/1725e317dd2c0958?imageView2/0/w/1280/h/960/ignore-error/1)]
仅当将应用程序部署到运行 API级别 29 或更高版本的设备或仿真器时,才能使用 Live Layout Inspector,要启用实时布局检查器,请转到File > Settings > Experimental,然后选中 Enable Live Layout Inspector 旁边的框 ,然后,单击 Live updates 上方 Layout Display 旁边的复选框。
3、布局验证
Layout Validation (布局验证)是一种可视化工具,可用于同时预览不同设备和配置上的布局,从而帮助检测布局错误并创建更多可访问的应用程序。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bduIdatn-1637896214348)(https://user-gold-cdn.xitu.io/2020/5/29/1725e32d09121a5f?imageView2/0/w/1280/h/960/ignore-error/1)]
用户可以通过单击IDE窗口右上角的 Layout Validation 选项卡来访问此功能:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9KFBPOhJ-1637896214348)(https://user-gold-cdn.xitu.io/2020/5/29/1725e334227e6753?imageView2/0/w/1280/h/960/ignore-error/1)]
在 Layout Validation 窗口中,可以从四个不同的配置集中选择:
- Pixel Devices :在多种像素设备上预览应用。
- Custom :使用自定义显示选项(例如屏幕方向或语言)预览应用。
- Color Blind:使用常见色盲类型的模拟预览应用。
- Font Sizes:使用各种字体大小预览应用。
要了解有关使用布局验证的更多信息,请参阅使用Layout Inspector调试布局。
五、用于代码收缩规则的智能编辑器功能
当打开 R8 的代码收缩规则文件时,Android Studio 现在提供智能编辑器功能,例如:语法突出显示、代码完成和错误检查。该编辑器还与 Android Studio 项目集成在一起,为所有类、方法和字段提供完整的符号补全,并包括快速导航和重构。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X7QdDRMK-1637896214349)(https://user-gold-cdn.xitu.io/2020/5/29/1725e35d17c0f65d?imageView2/0/w/1280/h/960/ignore-error/1)]
六、Kotlin Android实时模板
Android Studio 现在包括适用于 Kotlin 类的Android 实时模板。例如,现在可以键入 toast 并按 Tab 键快速插入 Toast。
有关可用实时模板的完整列表,请从菜单栏中单击 File > Settings(或在macOS上为 Android Studio > Preferences ),然后导航 Editor > Live Templates。
七、Fragment wizard and new fragment templates
现在,当您导航到File > New > Fragment > Gallery或在“导航”编辑器中单击Create new destination时,即可使用“New Android Fragment wizard”向导和新的片段模板。
八、在 Android 模拟器中扩展了相机支持
使用Android 11图像时,Android Emulator相机包括以下新功能:
- RAW拍摄
- YUV后处理
- Level 3 devices
- 逻辑相机支持
要了解有关为下一版Android开发的更多信息,请转到 Android 11 Developer Preview用户文档。
九、clangd 现在可用于 C ++代码编辑器
Jetbrains CLion 是支持 Android Studio C ++ 语言支持的技术,现在使用基于 LLVM clangd 和 clang-tidy 的检查引擎,加快了 C / C ++ 代码的完成速度,并提供了与 clang-tidy 的更无缝集成。
现在,在 Android Studio C++ 代码编辑器中可用,clangd 和 clang-tidy 都是开源LLVM额外工具的一部分:
支持 Android Studio C ++ 语言支持的技术,现在使用基于 LLVM clangd 和 clang-tidy 的检查引擎,加快了 C / C ++ 代码的完成速度,并提供了与 clang-tidy 的更无缝集成。
现在,在 Android Studio C++ 代码编辑器中可用,clangd 和 clang-tidy 都是开源LLVM额外工具的一部分:
Android Studio 4,大厂面试必备相关推荐
- 2019已经很冷,2020年Android工作或更难找——进大厂面试必备基础技能
一.写在开头 在互联网行业里,2019年来到今天你能听到的消息都是什么样的? "某D公司开始裁员了" "某A公司据说冻结社招了" "据说J公司今年没有 ...
- Android进程管理,Android开发者跳槽指南面试必备
雪上加霜 本人一名Android程序员,今年29岁了.大厂小厂都呆过,现在在腾讯工作!明明工作顺利,家庭和睦儿女成全,但是总是会感觉到,一股无形的压力,推着我走!作为一名程序员我最怕的不是996,也是 ...
- 只需 9.9 元!前 Facebook 工程师 7 天带你掌握 7 大数据结构,大厂面试必备!
数据结构与算法是互联网大厂面试的敲门砖,也是开发者精益求精.持续提升的内功基础.工作中选择合适的数据结构,往往能达到事半功倍的效果.然而真正学习算法的时候,又是另外一番景象,因为真正基础.真正核心的东 ...
- Java开发进大厂面试必备技能,技术总监都拍手叫好
前言 锁是一种用来控制多线程访问共享资源的工具.通常,锁可以独占共享资源:同一时间只有一个线程可以获得锁,并且所有访问共享资源的线程都必须首先获得锁.前面我们介绍过了synchronized,使用sy ...
- 致Java开发者:Java外包是如何转正华为的?大厂面试必备技能
前言 Spring无论在Java生态系统,还是在就业市场,是绝对的王者.大厂面试出镜率之高,投产规模之广,无出其右.随着技术的发展,Spring 从往日的 IoC 框架,已发展成 Cloud Nati ...
- Kotlin学习(1)初识及环境搭建,大厂面试必备技能
初始Kotlin语言 =========================================================================== Kotlin现在是Andr ...
- Java开发必学:Java开发进大厂面试必备技能,技术总监都拍手叫好
前言 作为同时具备高性能.高可靠和高可扩展性的典型键值数据库,Redis不仅功能强大,而且稳定,理所当然地成为了大型互联网公司的首选. 众多大厂在招聘的时候,不仅会要求面试者能简单地使用Redis,还 ...
- 开源新作!三个月啃透888页Java王者级核心宝典,大厂面试必备技能
前言 二面大概50分钟,问的东西很全面,需要做充足准备,就是除了概念以外问的有点懵逼了(呜呜呜).回来之后把这些题目做了一个分类并整理出答案(强迫症的我狂补知识~)分为spring,jvm,并发编程等 ...
- 2021年Java大厂面试必备面试题
对java面试而言,面试前的准备一定要有面试题收集和学习这一项,因为在招聘公司看来,对java工程师职位的最大关注就是专业知识和技能水平的考察,所以程序员去公司面试,无论怎样都要先做一套面试题.对于不 ...
最新文章
- 股权分配中的三种定时炸弹
- 2021牛客暑期多校训练营1 G Game of Swapping Numbers 思维 + 巧妙的转换
- java获取参数编码_java获取接口数据编码问题
- Oracle 自带sqldeveloper导入数据到表
- 经典面试题(29):以下代码将输出的结果是什么?
- OneNote使用技巧及运用
- 心灵探索——我为什么会在家工作
- database design three form
- 如何自动清理从 Mac 到 Dropbox 的屏幕截图?
- FileUpload类中FileUpload1.FileName和FileUpload1.PostedFile.FileName的区别
- 随机过程的均值函数、自相关函数、协方差函数
- 基于stc89c58的万年历设计
- 所谓的光辉岁月,并不是后来闪耀的日子,而是无人问津时你对梦想的偏执。
- 基于java+Mysql的志愿者管理系统代码分享
- 产品开发中的经验教训
- 制作属于自己的一个微信小程序音乐播放器
- 如何把生活过程升级打怪?
- 安装PyUserInput报错解决
- “囚徒”李一男回归华为真相揭密
- 面渣逆袭:MySQL六十六问,两万字+五十图详解!
热门文章
- 经验小波MATLAB,EWT经验小波matlab应用实现(信号处理) 适用于一维EWT的变换文件 - 下载 - 搜珍网...
- 初学者如何学习FPGA
- xgboost原理,怎么防止过拟合。随机森林,GBDT,Xgoost的区别,bagging和boosting
- 小家电和消费者的距离,只隔着一个闲鱼
- [C++]DirectX 12 3D游戏开发实战—第9章 学习笔记02 2019.5.3
- matlab分割血管图片,MATLAB 图像处理《数字图像处理》作业不会做,谢哈!用MATLAB将一幅含有血管的医学图像进行处理,满足下面的要求:...
- Java Wechat Pay Project
- 虚拟内存及PE文件与虚拟内存之间的映射
- amixer 如何切通道_制作播放列表时如何选择正确的通道和画幅?
- android4.4的手机,各品牌获Android 4.4升级手机型号大汇总