使用场景 在重写ListView的BaseAdapter时,我们常常在getView()方法中复用convertView,以提高性能。...convertView在Item为单一的同种类型布局时,能够回收并重用,但是多个Item布局类型不同时,convertView的回收和重用会出现问题。...比如有些行为纯文本,有些行则是图文混排,这里纯文本行为一类布局,图文混排的行为第二类布局。单一类型的ListView很简单,下面着重介绍一下ListView包含多种类型视图布局的情形。...2.ListView包含不同Item的布局 我们需要做这些工作: 1)重写 getViewTypeCount() – 该方法返回多少个不同的布局 2)重写 getItemViewType...(int) – 根据position返回相应的Item 3)根据view item的类型,在getView中创建正确的convertView 3.案例 import java.util.ArrayList
image 在可折叠设备上提供出色的用户体验,首要确保您的应用程序已准备好两件事: 其一,可在两个屏幕之间无缝切换; 其二,在多窗口模式下处于活动状态。 ? image 1....1.2 运行时系统变更 - 自行处理 如果因性能限制等因素希望在不自动重启Activity的情况下处理配置更改,您需要在应用清单manifest中增加android:configChanges属性,...3.2 优化内外屏布局 可折叠移动设备中,应用程序可以运行在大小不同的显示屏幕中,我们首先建议添加一个单独的资源文件夹来展示更丰富更清晰的内容。...备用布局,Android允许应用针对不同屏幕配置提供多种备选布局。可以利用配置限定符实现此目的,它允许系统根据当前配置(如针对不同屏幕尺寸的不同布局设计)自动选择合适的资源。...多活动窗口 当手机展开时,用户可以同时运行两到三个APP,可在任意Samsung Android 9.0设备上通过元数据方式测试多活动窗口。
Android 12L 也适用于手机,但由于在较小的屏幕上无法体验大多数新功能,因此目前我们仍将重点放在平板电脑、可折叠设备和 ChromeOS 设备上。...△ Jetpack WindowManager 中的窗口尺寸类 让应用能够感知折叠 WindowManager 还为不同的窗口特征 (如折叠和铰链) 提供了通用的 API 接口。...△ 参考设备类中的布局验证工具 可调整尺寸的模拟器 若您需要在运行时对您的应用进行测试,可以使用 Android Studio Chipmunk 中附带的可调整尺寸的全新模拟器配置。...要创建可调整尺寸的全新模拟器,可以使用 Android Studio 中的设备管理器来创建一个新的虚拟设备,并选择带有 Android 12L (Sv2) 系统映像的可调整尺寸的设备定义。...我们即将推出全新的指南,为您说明如何在全新和现有的应用中支持不同的屏幕尺寸、如何为 View 和 Compose 实现导航、如何利用可折叠设备的优势等内容。
△ 在大屏幕布局中,拖放 是一种自然的交互,即使是在同一个应用中也是如此 △ 通过使用多实例功能,用户可以并排运行应用的多个副本。...△ 在 Chrome OS 设备上使用 Android 应用的用户通常会配置实体键盘;应用应该支持标准的键盘导航和快捷键,以提供更全面的无障碍使用体验 组件更新 我们更新了 Jetpack 和 Material...△ SlidingPaneLayout 会自动适应配置的变化,在不同的布局尺寸下提供良好的用户体验 在较小的屏幕上不得不堆叠起来的 UI,在大屏幕上则可以轻松实现并排布局。...这个库现已发布 alpha 版本,它提供了一套通用的 API 界面,以支持不同的设备类型,包括折叠设备和平板电脑。 您可以使用 WindowManager 来查看显示屏特性,如折叠或铰链。...浏览器为大屏幕改进标签页导航; YouTube 重新设计了用户界面,以提高在可折叠设备上的可用性; Google Photos 在大屏幕上会显示更多的界面元素,如搜索栏; Google Calendar
在不同的设备上运行同一应用,都应该能够灵活适应不同设备的屏幕尺寸。...; 在所有的 Reference Devices 上都测试一遍您的应用,优先采用在中等型下的最佳布局; 为了提供更好的用户体验,请添加对应用有意义的功能,如支持可折叠设备的折叠状态或针对键盘、鼠标和触控笔输入支持进行优化...通过这两项更改应用在不同设备不同外形下的布局会更加合理。...所有的界面都是通过在代码中描述而成,这样也就很容易在运行时做出关于界面样式的决策,而在传统的视图系统中,我们通过对不同屏幕配置进行编译,从而实现对视图的配置,这两者有着巨大的不同。...获取更好的用户体验 在前文中,我们提到为了提供更好的用户体验,请添加对应用有意义的功能,如支持可折叠设备。
需求: 在产品开发中,经常需要发布各个版本,每个版本的服务器地址有不同的服务器地址。...测试组负责人要修改代码中 服务器地址的源文件,更改为 测试服务器的地址,打包分发到测试组成员开始测试。...当然,这需要我们配置好构建脚本。在使用Android studio之后,就需要了解 gradle脚本了。...而在配合 gradle 的 buildTypes 配置不同的编译类型(比如测试,开发,上线三种类型),每个类型指定不同的 字段的值。...而在成功build后,gradle会为 美工不同的类型环境生成不同的apk包,比如一次性就生成了 测试,开发,上线三个apk包。
此类提供API以从持久性保存/加载/修改网络配置商店。 使用密钥库进行证书/密钥管理操作。 注意:此类只能在WifiConfigManager中使用,并且不是线程安全的!...一般WifiConfigManager中才会调用WifiConfigStore的方法,比如要加载已保存过的网络时,要迁移保存过的网络数据时,都会调用WifiConfigStore的方法。...WifiConfigManager代码路径: /frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiConfigManager.java...如果发现没有相应的文件,则创建。(这里说明一下,wifi保存的热点信息是存储在一个文件中的,这个文件不是一开始就存在的,而是设备第一次保存网络信息的时候才开始创建的。)...而我们保存过的wifi信息,正是保存在这个xml文件中,以前是保存在wpa_supplicant.conf文件中的。
在这篇文章中,我们将一起了解一些更高级别的特性,这些功能会让您的 widget 更具交互性,更容易配置,并能在 Android 12 上呈现更好的 UI 体验。...在这个用例中,我们希望用户能够在两种不同的 widget 布局之间进行选择,即 Grocery List 和 To-Do List。...这个操作会跳过额外的配置步骤,您可以直接在用户的主屏幕上呈现 widget。与此同时,请您确保添加 reconfigurable flag,以便用户后续可以更改生效的默认配置。...由于我们把配置活动添加至 appwidget-provider 的 configure 属性中,用户长按 widget 并点击编辑/重新设置按钮时,配置就会生效。...Android 12 引入了完善的尺寸属性和更灵活的布局,这使得 widget 更易于定制,且在不同设备和屏幕尺寸上均有稳定可靠的表现。
请记住,WindowMetrics 可在运行时更改,因此建议值更新时机为最初创建 Activity 的时候以及使用 WindowMetricsCalculator 更改配置的时候。...WindowSizeClasses 在所有设备类型上都能够将应用直观呈现给用户的另一个关键要素是提供不同的布局。...而对于可折叠设备和不同的多窗口模式,应用经常需要在单次会话中将窗口尺寸变大或者变小。所以需要满足尽量多的场景。 可折叠屏幕 △ 可折叠屏幕 其中的创新潜力很大,特别是针对可折叠设备。...接下来我们聊聊在 Chrome 操作系统以及 Android 平板电脑和可折叠设备中避免应用出现在兼容模式中所需要做到的重要的几件事: △ 运行在开放形式模式充分利用屏幕空间 为不同的设备类型提供合适的大屏幕布局...类似 ViewModel 等 Jetpack 组件简化了维护状态,并为用户提供符合预期的效果。一定要在真实设备或模拟器中测试不同的布局可能性。
构建 响应式布局。...OS 的输入事项 优化您的 Android 游戏和应用,以便在 Chrome OS 上运行 更多详情,您可以查看我们之前的推文《可折叠设备、平板设备和大屏设备更新一览》,或查看有关 Google Duo...我们还发布了一套新的健康和健身 API,其作为设备上传感器和相关算法的中介,为应用提供与活动、锻炼和健康相关的高质量数据。健康服务平台 Alpha 版现在已开放使用。...这些更新让您可以更轻松地在一系列设备配置中构建和测试应用,同时将最新的 Android 12、Google Assistant 和 Cast 功能引入电视。...Android for Cars Android Auto 支持应用程序与许多现代汽车中内置的信息娱乐显示器连接。
包括适当缩放以展示更多内容,如示例中的副标题和日期,以及较小的组合技术,例如在紧凑型的布局中对内容进行视觉分组并保持其相关性等。...这一做法在小屏上或许行得通,当屏幕尺寸较大时就会出现明显的问题。网格系统则将您的布局划分为一系列栏,从而帮助您在规范网格中设计更具表现力的布局。...△ 使用栏式网格在不同屏幕尺寸中对内容进行重排 记住网格系统有助于您选择组件行为,在不同的布局中,以对设备尺寸和场景最有意义的方式决定替换还是更改组件。...在应用级的 build.gradle 文件中的 testOptions 模块下,指定虚拟设备配置文件,就像您平时在 Android Studio 管理和运行虚拟设备那样。...在如此多样化的硬件生态系统中,您可能很难拥有各种形状和尺寸的设备,如今 Android SDK 为可折叠设备提供了模拟器图像,这些模拟器允许您随时将折叠状态更改为铰链的角度。
Chromebook 在一个容器中运行完整版的 Android 框架,因此游戏的体验就像在 Android 设备上运行一样。...大屏幕游戏的常见问题 作为游戏开发者,您当然想要在每台设备上都提供最佳的游戏体验——无论用户是在使用竖屏模式,还是使用键鼠,甚至在可折叠设备 (拥有更多可切换的分辨率和宽高比配置) 上进行游戏。...系统在检测到设备配置的变动后,会自动重启您的 Activity 并在这个过程中调用适配新设备配置的游戏资源,从而确保您的游戏在该配置下达到理想的效果。...当用户在更大的屏幕上玩游戏时,他们可能会坐得离屏幕更远,这时您需要考虑扩展、添加或更改画面 / 界面元素,以确保屏幕上的所有内容都清晰可辨。...确保您的游戏可以处理两种屏幕尺寸,这个机制与在 Android 上适配不同屏幕尺寸的方法基本相同。唯一的区别是,这种情况在可折叠设备上会更频繁地发生。
此外开发者还需要考虑可折叠设备的形态,如高级布局支持等。...在导航优化方面,以往在对直板手机竖屏模式的部分导航组件进行优化时,导航组件几乎始终停靠在屏幕底部,在可折叠设备或更大的设备中情况就不同了,用户实际上大多数时间是用双手持握设备,这就意味着导航组件最好是放置在设备边缘和侧面...如需了解更多轻松优化应用的指南,请参阅: Android 与 Chrome OS 中针对大屏幕设备的更新 Material 网站 借助 Jetpack WindowManager 支持可折叠设备和双屏设备...布局和输入都很重要,尤其是当您开始考虑更大屏幕的设备时,如需创建适合不同屏幕尺寸的 自适应布局,最好的方法是将 ConstraintLayout 用作界面中的基本布局。...如大家所知可折叠设备层出不穷,我们推出了 Jetpack WindowManager 库,帮助开发者对应用做出调整,以充分利用可折叠设备为用户提供全新的体验。
、安卓架构概述 十、安卓应用的剖析 十一、安卓视图绑定概述 十二、了解安卓应用和活动生命周期 十三、处理安卓活动状态变化 十四、安卓活动状态变化示例 十五、保存和恢复安卓活动的状态 十六、了解安卓视图、...中应用更改的使用指南 二十六、安卓事件处理概述及示例 二十七、安卓触控和多点触控事件处理 二十八、使用安卓手势检测器类检测常见手势 二十九、在安卓上实现自定义手势识别 三十、安卓片段介绍 三十一、在...七十一、使用视频视图和媒体控制器类在安卓系统上播放视频 七十二 安卓画中画模式 七十三、安卓画中画教程 七十四、安卓系统中的运行时权限请求 七十五、使用MediaPlayer和MediaRecorder...三十一、安卓约束集教程 三十二、AndroidStudio 中应用更改的使用指南 三十三、安卓事件处理概述及示例 三十四、安卓触控和多点触控事件处理 三十五、使用安卓手势检测器类检测常见手势 三十六、...在安卓上实现自定义手势识别 三十七、安卓片段介绍 三十八、在 AndroidStudio 使用片段——一个例子 三十九、现代安卓应用架构和 Jetpack 四十、Android Jetpack 视图模型教程
values:存放字符串、颜色、样式等资源的XML文件。xml:可以存放其他XML配置文件。test:用于存放本地单元测试代码,这些测试通常在JVM上运行。...这个文件包含了应用的包名、版本信息、权限声明、应用组件(如活动、服务、广播接收器和内容提供者)的注册,以及其他重要的配置信息。此处提到了一个重要概念,即活动(Activity)。...此外,开发者还可以声明应用所需的权限,例如访问网络、读取联系人等。在Android开发中,活动是用户界面的一个重要组成部分,代表了应用中的一个单一屏幕。...活动之间可以通过意图(Intent)进行交互,意图是一种消息机制,用于启动新的活动或与其他应用组件进行通信。通过这种方式,Android应用可以实现多屏幕的用户体验,允许用户在不同的活动之间导航。...它描述了在特定活动中显示的视图和布局结构。通过XML格式,开发者可以直观地定义界面的各个元素及其属性。我感觉很类似传统前端开发中的HTML。
当您想在一个常见的设备或模拟器上使用一个自定义的 WindowBackend 模拟一个可折叠设备时,可使用原有的构造函数进行测试。这个 样例工程 中的实现可以供您参考。...这些规则会自动合并到应用最终的 R8 规则中,这样可以防止应用出现如 alpha01 版本上的崩溃。...例如像 Surface Duo 这样的设备,设备会有一个默认的配置决定应用从哪一个屏幕启动,但是也可以跨过设备的铰链扩展到两块屏幕上。...API 返回的结果不包括系统 inset 信息,比如状态栏或导航栏,这是由于目前支持的所有 Android 版本中,在第一次布局完成之前,这些值对应的区域都不可用。...windowManager.currentWindowMetrics windowManager.maximumWindowMetrics 例如,如果您的应用在手机和平板电脑上的布局或导航模式截然不同
三星发布的这款手机,实际上拥有两块屏幕,可折叠的 Infinity Flex 显示屏为内屏,而折叠以后的外屏就相对较小一些。...从上面的演示图可以看到,三星只需要处理 App 在两块屏之间切换的问题就好了,三星的理念是在展开后,在小屏中运行的 App 依然在运行当中,并且会自动调整大小以匹配新的布局,展示更多功能,而不仅仅是一个放大的版本...其实在很早之前,Google 就已经考虑到 Android 会运行在不同屏幕尺寸的设备上,例如 Android TV、Android Auto、Android Pad、Wear OS 等。...这些不同尺寸的设备,在整个 Android 的生态中,都占有不可或缺的地位。 但是你要注意到,通常针对不同的设备,我们会设计出两套完全不同 UI 风格,通常他们会被当成独立的 App 进行发布。...我猜想,应该会是一种类似前端中,Bootstrap 这种响应式框架,对开发来说,可能就是多了一种布局方式,并且应该会是以 Support 包的形式进行扩展支持。
主题属性:颜色资源在布局和样式中以主题属性的形式(例如?attr/colorPrimary)引用,以避免硬编码颜色。...在 Android Studio 中运行 Android 模拟器 Dagger 导航支持 Dagger 是 Android 上用于依赖项注入的流行库。...5G 蜂窝测试支持外,我们还在 Android 模拟器中添加了可折叠设备支持。...使用 Android 模拟器 30.0.26 及更高版本,你可以配置具有多种折叠设计和配置的可折叠设备。...配置可折叠设备后,模拟器将发布铰链角度传感器更新和形态变化,因此你可以测试你的应用如何响应这些形状因素。
下面为大家介绍今天的开发者预览版中的一些新内容: 快捷设置放置 API - 通知栏中的快捷设置 (Quick Settings) 让用户可以在不离开应用的情况下更改设置或快速进行相关操作。...使应用在不同的设备上拥有更一致、更安全的环境,并向用户交付新的特性和功能。...我们还增加了新的模块,如蓝牙和超宽频模块,以进一步扩大 Android 可更新核心功能的范围。...您可以依据我们的 平板电脑应用质量 指南开始进行适配工作,然后学习如何为 大屏幕 和 可折叠设备 进行构建。...如果您想要测试应用在平板电脑和可折叠设备上的兼容性,最简单的方法是使用 Android 模拟器的平板电脑或可折叠设备配置,请阅读 官方文档 了解设置说明。
领取专属 10元无门槛券
手把手带您无忧上云