开发者控制台

在Windows Subsystem for Android™ (WSA)中调整应用大小

Giovanni Laquidara Feb 15, 2023
Share:
How to Appstore on Windows 11
Blog_Header_Post_Img

重要须知:2025年3月5日后,Windows 11上的亚马逊应用商店将不再受支持。请阅读博客文章,了解更多相关信息

 

对于Android开发者来说,将应用移植到适用于Windows 11的亚马逊应用商店有助于扩大客户群。然而,值得注意的是,Windows 11允许用户自由地调整应用窗口的大小,在调整视口窗口大小时,确保您的应用程序能够迅速且稳定的响应是至关重要的。

在本指南中,我们将介绍在处理Windows Subsystem for Android™ (WSA)上您Android应用的窗口大小调整时的关键考虑事项。

最小屏幕要求

为了确保流畅的用户体验,Windows 11对大于9英寸的屏幕强制执行720p分辨率(1280x720)的最低屏幕要求。当窗口大小的宽高比与设备屏幕大小不一致时,可能会出现宽银幕边框或垂直黑边,这会导致在窗口的侧面放置条形以使其居中。

pillarboxing and letterboxing

初始启动大小

在Windows 11上启动应用时,有几个启动大小选项需要考虑:

使用静态启动边界。在活动的清单条目内使用<layout>来指定“固定”的起始大小。例如:

Copied to clipboard
<layout android:defaultHeight="500dp"
         android:defaultWidth="600dp"
         android:gravity="top|end"
         android:minHeight="450dp"
         android:minWidth="300dp" />

使用动态启动边界。在创建新活动时,活动可以创建并使用ActivityOptions.setLaunchBounds(Rect)。通过指定一个空矩形,可以将您的应用最大化。

注意:​ 请确保仅为根活动指定这些选项,并考虑使用跳板活动以新的起点清除任务中的活动堆栈。

通过响应式布局实现更好的视觉控制

通过响应式布局支持不同的屏幕大小,从而确保无论屏幕以何种形状因素呈现,您都可以控制展示布局。

有关动态窗口大小和在Kotlin和Java中为应用的用户界面建立清晰断点的更多信息,请阅读Android关于支持不同屏幕大小的指南。此外,考虑多窗口模式如何使您的应用能够在其他应用旁边运行,并考虑活动环境和应用上下文之间的差异。

窗口大小调整

您可以通过确保应用的布局适应新的窗口大小来提供更好的用户体验。这可以通过在活动类中使用onSizeChanged()方法来实现。当应用窗口的大小发生变化时,会调用此方法,您可以使用它相应地调整应用的布局。

在Windows 11中,用户可以通过拖动右下角来调整应用窗口的大小。使用视图类时,有两个选项可用于处理窗口大小调整:

  1. 通过调用onConfigurationChanged()并向活动的清单添加android:configChanges="screenSize|smallestScreenSize|orientation|screenLayout",动态响应配置更改。阅读处理配置更改文档,了解更多代码片段和详细信息。
  2. 让系统重启活动。在该况下,您应该实现onSaveInstanceState(),并使用ViewModel架构组件来恢复以前保存的状态。

Windows 11允许用户更改设备的屏幕方向,因此确保您的应用能够在不崩溃的情况下处理屏幕方向的更改很重要。您可以通过在AndroidManifest.xml文件中将android:configChanges="orientation|screenSize"添加到您的活动中来实现这一点。这将允许您的应用在不重新启动活动的情况下处理屏幕方向的更改。

如果您的应用正在使用Jetpack Compose,则调整大小的行为取决于应用窗口的大小和使用的布局。您可以使用Compose的布局可组合项,如框、行和列来设计应用的组件布局。有关更多信息,请参阅编写布局基本项

大小调整的其他注意事项

  1. 测试您应用的功能和视觉UI是否存在问题,以确保它能适当地处理窗口大小的变化。
  2. 请勿在您onDestroy活动的方法中调用finish()这会致使应用在调整大小时关闭,而非重新启动。
  3. 避免使用不兼容的窗口,例如TYPE_KEYGUARD和TYPE_APPLICATION_MEDIA。
  4. 通过缓存之前已分配的对象,确保活动快速重新启动
  5. 如果您不希望用户调整应用的大小,请在清单文件的<application>子类中指定android:resizeableActivity=false。

后续步骤

您的应用准备完毕并经过测试后,记得通过我们的联系我们页面进行联系,以对您的应用请求WSA提交访问权限。请求获得批准后,登录亚马逊应用商店开发者控制台,然后从我的应用程序列表中选择该应用程序。在应用详情页面上,单击“支持的设备”旁的显示。在“设备支持”部分,导航到Windows设备选项卡,选择要定向的Windows设备,然后完成提交。

相关资源:

最新文章

 

查看有关亚马逊应用商店、应用开发与盈利、亚马逊服务以及更多主题的最新消息。