• Android Studio 4.0 新功能与优化


    1、前言

    Android Studio又更新了,每次重大更新都给我们的生产力提升了一个台阶,当然也会带来神奇的bug,墙裂提醒各位小伙伴升级请慎重!!!

    【真香警告】Android Studio下载链接:
    for Windows(64-bit) / for Linux(64-bit) / for Mac(64-bit)

    这次Android Studio 4.0版本的正式上线不容易呀,疫情如此严重还是如约而至,希望稳定性也不差。话不多说,我们进入正题,Android Studio 4.0 新功能与优化。

    2、新功能

    2.1 MotionLayout与Motion Editor

    本次升级新增的MotionLayout令人眼前一亮,它扩展了功能丰富的ConstraintLayout ,来帮助开发者实现应用中复杂的动画效果。

    Android Studio特地增加了Motion Editor使MotionLayoutI的使用变得更加容易,Motion Editor可以用来创建、编辑和预览MotionLayout 动画。

    此后实现动画不再需要创建和修改复杂的xml文件,使用Motion Editor就可以生成,而且支持编辑约束集,过渡,关键帧和视图属性。而且对于已经使用过ConstraintLayout的开发人员来说,IDE可以轻松地将其转换为MotionLayout。如果想要查看编辑器创建的代码的话,只需要单击一下即可。
    MotionLayout简单动画效果
    想要学习更多关于Motion Editor的内容,可以参考官方文档

    2.2 Layout Validation

    在Android Studio的右边栏可以找到新增的Layout Validation选项卡,这是一个可视化的布局验证工具,可以同时预览不同设备和配置上的布局,从而帮助检测布局错误并创建更多可访问的应用程序。

    在 Layout Validation 窗口中,可以选择四个不同的验证属性:

    • Pixel Devices :在多种像素设备上预览应用。
    • Custom :使用自定义显示选项(例如屏幕方向或语言)预览应用。
    • Color Blind:使用常见色盲类型的模拟预览应用。
    • Font Sizes:使用各种字体大小预览应用。

    想要学习更多关于Layout Validation的内容,可以参考官方文档

    2.3 Build Analyzer

    Build Analyzer是Android Gradle Plugin 4.0.0新增的一个构建分析器,当将 Android Studio 4.0 与 Android Gradle 插件 4.0.0 及更高版本一起使用时,可以使用Build Analyzer工具来显示整个项目构建过程中哪些部分耗时最高,以此可以来检查一些过时的或错误的配置可能导致的构建耗时,来优化项目的构建时间。

    要打开 Build Analyzer 窗口,请按照下列步骤操作:

    1. 如果尚未执行此操作,请通过从菜单栏中选择 Build> Make Project 来构建应用程序。
    2. 从菜单栏中选择 View > Tool Windows > Build。
    3. 在 Build 窗口中,以下列方式之一打开 Build Analyzer 窗口:
    • Android Studio完成构建项目后,单击 Build Analyzer 选项卡。
    • Android Studio完成构建项目后,单击 Build Output 窗口右侧的链接。

    Build Analyzer 窗口在左侧的树中组织可能的构建问题。你可以检查并单击每个问题,以在右侧面板中调查其详细信息。

    当 Android Studio 分析构建时,它将计算确定构建持续时间的一组任务,并提供可视化帮助你了解每个任务的影响,你还可以通过展开 Warnings 节点来获取有关警告的详细信息。
    Build Analyzer示例图
    想要学习更多关于Build Analyzer的内容,可以参考官方文档

    2.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
        }
    }
    

    3、优化

    3.1 Layout Inspector

    要打开 Layout Inspector 窗口,请转到 View > Tools Windows > Layout Inspector。除了现有布局检查器的许多相同功能外,实时布局检查器还包括:

    1. Dynamic layout hierarchy(动态布局层次结构):随着设备视图的更改而更新。
      动态布局层次结构
    2. Property values resolution stack:(属性值解析堆栈):调查资源属性值在源代码中的起源,并通过遵循属性窗格中的超链接导航到其位置。
      属性值解析堆栈
    3. 3D view(3D视图):在运行时通过高级 3D 可视化查看应用程序的视图层次结构,要使用此功能,只需在 Layout Inspector 窗口中单击布局并旋转它。
      3D视图想要学习更多关于Layout Inspector的内容,可以参考官方文档

    3.2 CPU Profiler

    CPU Profiler升级

    根据用户的反馈,谷歌将集中精力通过两种重要方式来改善 CPU Profiler 中的用户体验。

    首先,与以前的 Android Studio 版本相比,CPU Profiler 中 CPU 记录的错误率已大大降低。

    其次,对 CPU Profiler UI 进行了全面改进,以提供更直观的工作流程,其中 UI的一些显着更改包括:

    • CPU记录与主探查器时间轴分开了以便于分析,记录的数据在 Profiler 窗口的左侧按组分布。
    • 为了更轻松地进行并排分析,用户现在可以在线程活动时间轴中查看所有线程活动(包括方法,函数和事件)。
    • Flame Chart,Top Down 和 Bottom Up 分析的选项卡现在位于右侧列中,在 Threads 组中,对于系统跟踪记录线程会自动展开,对于其他记录类型默认情况下会折叠起,在线程名称上双击(或按Enter)以展开或折叠它们。

    如屏幕截图所示,系统跟踪UI还包括以下改进:
    系统跟踪UI

    • 现在事件采用了独特的颜色,以便于区分。
    • 线程按它们中的跟踪事件数进行排序,以便 “busier” 的线程在列表中排名更高。
    • 可以选择一个或多个线程以仅在那些选定的线程的右列中查看分析。
    • 同样,可以在任何线程中选择一个跟踪事件以查看其分析数据。

    想要学习更多关于CPU Profiler的内容,可以参考官方文档

    3.3 混淆代码的智能编辑器

    在之前编写混淆代码时,大概都复制粘贴的比较多,而在AS 4.0中提供了智能编辑器功能,不但在编写混淆代码会有自动补全所有类,方法和字段功能,而且还有语法突出显示,错误检查和提醒等功能。

    当打开 R8 的代码收缩规则文件时,Android Studio 现在提供智能编辑器功能,例如:语法突出显示、代码完成和错误检查。该编辑器还与 Android Studio 项目集成在一起,为所有类、方法和字段提供完整的符号补全,并包括快速导航和重构。
    混淆代码的智能编辑器

    3.4 Kotlin Android live templates

    Android Studio 现在包括适用于 Kotlin 类的Android 实时模板。例如,现在可以键入 toast 并按 Tab 键快速插入 Toast。

    有关可用实时模板的完整列表,请从菜单栏中单击 File > Settings(或在macOS上为 Android Studio > Preferences ),然后导航 Editor > Live Templates。

    PS:谷歌对Kotlin的投入越来越大,如果有还没有学Kotlin的小伙伴,建议还是去学学,有Java基础的话上手还是很快的,平时混合开发一下,实战中完全掌握是最快的。

    3.5 Clangd support for C++

    对于编写C++语言的开发者来说,现在已经把clangd做完主要的语言分析引擎了,用来代码导航,自动完成,错误检查和提示。而且还在Android Studio中包含了clang-tidy。要配置Clangd和clang-tidy的话,可以打开Setting(或Preferences),导航到Languages & Frameworks > C/C++ > Clangd or Clang-Tidy。

    3.6 Feature-on-feature dependencies

    在早期版本的 Android Gradle 插件中,所有动态功能模块都只能依赖于应用程序的基本模块。

    现在,当使用 Android Gradle 插件 4.0.0 及更高版本时,可以包括一个依赖于另一个功能模块的功能模块,即 :video 功能可以取决于:camera 功能,而功能取决于基础模块,结果如下图所示。
    Feature-on-feature dependencies
    动态功能 :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
    
  • 相关阅读:
    How ASP.NET MVC Works?[持续更新中…]
    PortalBasic Web 应用开发框架
    .NET性能分析最佳实践之:如何找出使用过多内存的.NET代码(基础篇)
    js模块化开发js大项目代码组织和多人协作的解决之道
    PortalBasic Web 应用开发框架:应用篇(二) —— Action 使用
    细细品味Hadoop_Hadoop集群(第2期)_机器信息分布表
    msmvps.comblogs
    敏捷开发中编写故事应该符合的条件
    自己动手重新实现LINQ to Objects: 12 DefaultIfEmpty
    我的时间管理——充分利用WindowsPhone、Android等设备,实现真正的无压工作!
  • 原文地址:https://www.cnblogs.com/hwb04160011/p/13960596.html
Copyright © 2020-2023  润新知