首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

为任意屏幕尺寸构建 Android 界面

△ 基于高度的窗口大小类的表示 总而言之,窗口大小类的出现,代表了 Android 在自适应和响应式布局开发的一大进步,包括更新和优化的指南、Jetpack WindowManager 的新 API...由于任务和详情都呈现在 SlidingPaneLayout 的同一个新的 Fragment ,因此我们为该 Fragment 的导航交互专门添加一个新的子导航层次结构。...Jetpack Compose Jetpack Compose 在 2021 年 7 月发布了 1.0 版本后,在 Android 开发者社区产生了巨大反响,成千上万的应用已经在生产环境中使用了 Compose...Jetpack Compose 本身是一种声明式的界面工具包,通过它您可以根据页面状态进行描述,Compose 会自行进行所有必要的更新。...对于此类情况我们可以使用 Box With Constraints,它类似于布局,能够根据范围内的测量信息来用于决策。

4.1K20

Jetpack ComposeMVVM的实现及ViewModel和remember对比

数据共享: ViewModel: ViewModel 通常用于存储与界面相关的持久性数据,它可以在多个组件之间共享,比如在同一个 Activity 的不同 Fragment 之间共享数据。...数据持久性: ViewModel: ViewModel 的数据通常具有较长的生命周期,并且在配置更改(屏幕旋转)时会被保留。...用法: ViewModel: 通常通过在 ActivityFragment 中使用 ViewModelProvider 获取 ViewModel 实例,并在需要时观察 ViewModel 的 LiveData...mutableStateOf/mutableStateListOf mutableStateOf 是 Jetpack Compose 的一个函数,用于创建可变的状态。...总的来说: mutableStateOf 的作用是在 Jetpack Compose 创建可变的状态,以便动态更新 UI,并确保 UI 反映最新的状态值。

56710

详解 Android 12L|更好地适配大屏幕设备

查看 功能和变更,了解您的应用需要测试的领域,同时查看 预览版概览 了解时间表和版本细节。您可以向我们 提出问题和需求,我们一既往感谢您的反馈!...对于已经使用 Fragment 的现有应用,虽然更新导航模式和使用 SlidingPaneLayout 等方式是针对大屏幕设备的布局优化的好方法,但我们了解到基于多个 Activity 的应用不在少数。...使用 Compose 更加轻松地适应屏幕的变化 通过 Jetpack Compose 可以更加轻松地针对大屏幕和多样化布局进行构建。...△ Jetpack WindowManager 的窗口尺寸类 让应用能够感知折叠 WindowManager 还为不同的窗口特征 (折叠和铰链) 提供了通用的 API 接口。...我们即将推出全新的指南,为您说明如何在全新和现有的应用中支持不同的屏幕尺寸、如何为 View 和 Compose 实现导航、如何利用可折叠设备的优势等内容。

3.7K20

Android面试题之Kotlin Jetpack的三大核心组件

ViewModel 和 LiveData 是 Android Jetpack 组件库的两个核心组件,它们能帮助开发者更有效地管理 UI 相关的数据,并且能够在配置变更(屏幕旋转)时保存和恢复 UI...处理类膨胀提高维护难度和测试难度 使视图和数据能够分离 是介于视图View和数据Model之间的桥梁 LiveData的作用 用于ViewModel数据返回时通知View更新,是ViewModel和View之间的桥梁 那么如何在...在 ActivityFragment 中使用 ViewModel 通过 ViewModelProvider 获得 ViewModel 实例,并观察 LiveData。...Lifecycle Jetpack 组件的 Lifecycle 是一个用于管理和观察 Android 组件( ActivityFragment)生命周期的库。...Lifecycle的作用 帮助开发者建立可感知生命周期的组件 组件在其内部管理自己的生命周期,从而降低模块耦合度 降低内存泄漏发生的可能性 ActivityFragment、Service、Application

4810

Android Jetpack 更新一览

Fragment 最近的版本还引入了 ActivityResult 集成,使得从 fragment 中注册 Activity 结果成为可能。...Macrobenchmark Macrobenchmark 库将 Jetpack 的基准测试范围扩展到了应用启动和综合行为,滚动性能。...Jetpack Compose Jetpack Compose 是用于在 Android 上构建原生 UI 的现代工具包,简化并加速了 Android 上的 UI 开发。...Jetpack Compose 目前处于 Beta 版本,并计划 在 7 月份发布稳定版。本文提到的许多库,以及您可能已经在使用的其他库,都专门推出了与 Jetpack Compose 集成的功能。...包括 Activity、ViewModel、Navigation 和 Hilt,所有这些库都可以帮助您在应用更顺利地使用 Compose。请 观看 Google I/O 演讲 进一步了解相关细节。

1.5K20

“终于懂了“系列:Jetpack AAC完整解析(四)MVVM - Android架构探索!

但在Android,因为xml布局能力很弱,View的很多操作是在Activity/Fragment的,而业务逻辑同样也是写在Activity/Fragment。 ?...View,视图,即Activity/Fragment ViewModel,视图模型,负责业务逻辑。 注意,MVVM这里的ViewModel就是一个名称,可以理解为MVP的Presenter。...Jetpack MVVM标准推荐架构 各模块对应MVVM架构: View层:Activity/Fragment ViewModel层:Jetpack ViewModel + Jetpack LivaData...LiveData 组件还遵循应用组件( ActivityFragment 和 Service)的生命周期状态,并包括清理逻辑以防止对象泄漏和过多的内存消耗。...删除定义的IView等接口,Activity/Fragment 获取ViewModel实例,调用其方法获取数据。 Activity/Fragment 观察需要的 LivaData 然后刷新UI。

1.9K10

Google 推荐在 MVVM 架构中使用 Kotlin Flow

1.2.0 上重要的更新:通过 Fragment 的构造函数传递参数,以及 FragmentFactory 和 FragmentContainerView 的使用 我近期也在开发另外一个 Jetpack...,只会接受最新的一次发射过来的数据 调用 _pokemon.postValue 方法将数据提供给 Activity 或者 Fragment 方法二 在 LifeCycle 2.2.0 之后,可以用更精简的方法来完成...方法三: 调用 Flow 的扩展方法 asLiveData() 返回一个不可变的 LiveData,供 Activity 或者 Fragment 调用。...如何处理 ViewModel 的三种方式 如果不使用数据绑定,在 Activity 或者 Fragment 如何处理 ViewModel 的三种方式。...或者 Fragment 调用对外暴露不可变的 LiveData 即可,如下所示: // 方法一 mViewModel.pokemon.observe(this, Observer { //

4.1K20

前方高能!这是最新的一波Android大厂面试题汇总,不学则已,一学惊人

方法恢复数据时的区别 activty间传递数据的方式 跨App启动Activity的方式,注意事项 Activity任务栈是什么 有哪些Activity常用的标记位Flags Activity的数据是怎么保存的...Fragment的生命周期 & 结合Activity的生命周期 ActivityFragment的通信方式, Fragment之间如何进行通信 为什么使用Fragment.setArguments(...方式有几种、各种方式优缺点 为何新增Binder来作为主要的IPC方式 什么是Binder Binder的原理,Binder Driver 如何在内核空间中做到一次拷贝的?...LiveData Android Jetpack - Room Android Jetpack - Paging Android Jetpack - WorkManger Android Jetpack...架构组件之Lifecycle Android Jetpack Compose 最全上手指南 3.Framework精编内核解析 主要内容包含: 深入解析Binder 深入解析Handler Dalvik

1.1K20

Jetpack来了:走近Google标准应用架构

01 ▊ Android应用程序架构设计标准的缺失 一个Android应用程序通常至少有一个Activity,当我们要开发一个小型Android应用程序时,通常会将大部分的代码写在Activity/Fragment...当涉及网络数据获取或数据库CRUD(Create、Retrieve、Update、Delete,即增加、查询、更新、删除)操作时,还需要用到工作线程,进而,我们还不得不考虑Activity/Fragment...针对一个小型项目,将大部分代码写在Activity/Fragment并没有什么问题,但对于中大型项目而言,随着时间的推移和业务复杂度的增加,Activity/Fragment的代码会变得复杂且难以维护...在Android应用程序开发,一直以来都有用到MVC,将 Activity/Fragment 与布局文件分开就是一种最简单、最基本的MVC思想,只是它没有很好地解决我们的问题,所以才有了MVP和MVVM...此时,会出现一个对话,询问迁移之前是否需要以Zip文件的形式备份项目,如下图所示。这里建议备份一份,以防迁移出错。 ?

45920

Carson带你学Android:手把手带你了解实用的Android Jetpack

前言 在2018年 Google I/O 大会上发布了一系列辅助Android开发者开发的实用工具集合:Jetpack 今天,我将主要介绍Android Jetpack的相关内容,包括其作用、特点 &...特点 高效开发:包含的多个组件协同使用 消除模板代码:可管理繁琐的 Activity 后台任务、导航和生命周期管理 高质量:围绕现代化设计实践构建、具有向后兼容性,可有效减少崩溃 & 内存泄漏 3....包含的组件库: 4.2 架构 - Architecture 帮助开发者设计稳健、可测试且易维护的应用 Data Binding(数据绑定):属于支持库可使用声明式将布局的界面组件绑定到应用的数据源...Lifecycles:管理 ActivityFragment 生命周期 LiveData:是一个可观察的数据持有者类。...布局 - Layout:xml书写的界面布局或者使用Compose完成的界面。 调试板 - Palette:从调色板中提取出有用的信息。 总结 本文对 Android Jetpack 进行了定性介绍

95710

Android:手把手带你了解实用的Android Jetpack

特点 高效开发:包含的多个组件协同使用 消除模板代码:可管理繁琐的 Activity 后台任务、导航和生命周期管理 高质量:围绕现代化设计实践构建、具有向后兼容性,可有效减少崩溃 & 内存泄漏 --...具体描述 4.1 基础 - Foundation 提供了最基础的底层功能,向后兼容性、测试、开发语言Kotlin支持等。...包含的组件库: 4.2 架构 - Architecture 帮助开发者设计稳健、可测试且易维护的应用 Data Binding(数据绑定):属于支持库可使用声明式将布局的界面组件绑定到应用的数据源...Lifecycles:管理 ActivityFragment 生命周期 LiveData:是一个可观察的数据持有者类。...布局 - Layout:xml书写的界面布局或者使用Compose完成的界面。 调试板 - Palette:从调色板中提取出有用的信息。

1.1K00

Jetpack来了:走近Google标准应用架构

01 ▊ Android应用程序架构设计标准的缺失 一个Android应用程序通常至少有一个Activity,当我们要开发一个小型Android应用程序时,通常会将大部分的代码写在Activity/Fragment...当涉及网络数据获取或数据库CRUD(Create、Retrieve、Update、Delete,即增加、查询、更新、删除)操作时,还需要用到工作线程,进而,我们还不得不考虑Activity/Fragment...针对一个小型项目,将大部分代码写在Activity/Fragment并没有什么问题,但对于中大型项目而言,随着时间的推移和业务复杂度的增加,Activity/Fragment的代码会变得复杂且难以维护...在Android应用程序开发,一直以来都有用到MVC,将 Activity/Fragment 与布局文件分开就是一种最简单、最基本的MVC思想,只是它没有很好地解决我们的问题,所以才有了MVP和MVVM...此时,会出现一个对话,询问迁移之前是否需要以Zip文件的形式备份项目,如下图所示。这里建议备份一份,以防迁移出错。

69710

Jetpack来了:走近Google标准应用架构

Android应用程序架构设计标准的缺失 一个Android应用程序通常至少有一个Activity,当我们要开发一个小型Android应用程序时,通常会将大部分的代码写在Activity/Fragment...当涉及网络数据获取或数据库CRUD(Create、Retrieve、Update、Delete,即增加、查询、更新、删除)操作时,还需要用到工作线程,进而,我们还不得不考虑Activity/Fragment...针对一个小型项目,将大部分代码写在Activity/Fragment并没有什么问题,但对于中大型项目而言,随着时间的推移和业务复杂度的增加,Activity/Fragment的代码会变得复杂且难以维护...在Android应用程序开发,一直以来都有用到MVC,将Activity/Fragment与布局文件分开就是一种最简单、最基本的MVC思想,只是它没有很好地解决我们的问题,所以才有了MVP和MVVM。...此时,会出现一个对话,询问迁移之前是否需要以Zip文件的形式备份项目,如下图所示。这里建议备份一份,以防迁移出错。 ?

88920
领券