为 Android 应用打造精良的 Chrome OS 使用体验

2024-06-23 08:44

本文主要是介绍为 Android 应用打造精良的 Chrome OS 使用体验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

override fun onKeyUp(code: Int, ev: KeyEvent?): Boolean {

return when (code) {

KeyEvent.KEYCODE_J -> {

// Do something here

true

}

else -> super.onKeyUp(code, ev) // 重要!!

}

}

注意我们标出 “重要” 的那一行代码。这行代码会将没有被开发者处理的键值交回给父类逻辑处理,而不是忽视它们。

刷新键

Chrome OS 键盘上有独有的刷新键,而且有自己的键值 (KEYCODE_REFRESH),因此请确保您的应用可以处理 KEYCODE_REFRESH 事件。如果您已经在使用 SwipeRefreshLayout,Chrome OS 可以确保布局能响应刷新按钮事件。

触控板

当有人在带触摸板的桌面设备上使用您的应用时,他们会希望使用双指轻扫触摸板进行滚动;但在移动设备上,用户通常会按住并拖动屏幕来实现滚动。Chrome OS 会自动解析这些不同类型的动作事件,例如,当用户在使用绘图应用时如果做出了滚动的操作,绘图应用不会让画笔在画面上涂抹。

对于需要更高级触摸事件处理的应用,可以在 event.getButtonState()== 0 时忽略 MotionEvents 来检查按键状态,并忽略掉不需要的事件 (参考上面的绘图应用例子)。

NDK

Chrome OS 上游戏和应用会自动获得 ARM - x86 指令翻译。但如果您希望获得更佳的性能,那支持 x86 就至关重要。大多数高端 Chrome OS 设备都搭载了 64 位 x86 芯片 (更多这样的设备也即将到来)。如果您想在所有设备上都提供最佳性能,那请确保您的构建支持 ARM、ARM64、x86 和 x86_64 (如果您有对应的原生代码的话)。

支持 64 位 x86 的 Chrome OS 设备

https://www.chromium.o​
rg/chromium-os/developer-information-for-chrome-os-devices

好消息是,Android Studio 能让这种多平台支持变得简单: 只需使用 Android App Bundle 即可,它会将所有的构建打包,然后通过 Play Store 只发送用户设备所需要的那一部分,从而将下载文件体积保持在最低限度。

界面布局

如果一个应用的界面布局没有专门适配过大屏幕,那当它运行在大屏幕上时效果会非常尴尬——大量被浪费的空间,和非常不顺手的导航,这些都会让用户感到困惑。为了确保您的应用在多种布局中都能拥有良好的完成度,您可以让同一个界面拥有多个布局文件 (如下图)。

在这里插入图片描述

导航模式

同时,您的应用在不同的屏幕尺寸上都应该易于使用。提供纵向、横向等布局,使得应用可以根据可用的屏幕宽度,在底部导航、侧边导航和侧边扩展导航模式之间切换。

构建不同导航的示例

https://github.com/google/chromeosnavigationdemo

电子邮件应用 Reply 就针对多种屏幕重新设计了其功能和布局。Adobe Acrobat 在适配 Chrome OS 的时候,也同样考虑了不同设备的布局区别。

Reply 适配多屏幕尺寸

https://material.io/design/material-studies/reply.html#about-reply

在这里插入图片描述

多屏幕

当用户使用多个显示器时,两个屏幕之间通常会存在像素密度差异。您可以通过在界面里监听 onConfigurationChanged 来得知像素密度 (density) 的变化,从而对界面做出调整。

使用 Chromebook 进行开发


在 I/O 上我们还发布了很多新内容,将 Chrome OS 打造成为 Web 和 Android 开发者更快捷、更简单、更安全的开发环境,具体包括:

一键安装 Android Studio

只需下载、单击和安装,不再需要使用 terminal。

在这里插入图片描述

通过 USB 连接使用 ADB 调试

不再需要开发者模式,只需使用 USB 连接手机即可进行调试。

支持 USB ADB 调试的设备

https://www.chromium.org/chromium-os/chrome-os-systems-supporting-adb-debugging-over-usb

Lint 检查

高亮显示锁定的或不友好的屏幕方向、不可调整大小的界面、不正确的硬件要求以及其他不适合 Chrome OS 的功能。

Linux 中的音频播放

Chrome OS 容器支持 Linux 的所有音频工具,例如 Audacity。

虚拟桌面

这是 M76 (也是我们目前的稳定渠道) 中的一个功能,当您的屏幕被很多窗口塞满时,可以新开一个虚拟桌面。

多显示器 / 全 HDCP 支持

在外部显示器上投屏观看受 DRM 保护的视频内容 *。

  • 使用此功能时请调用 SurfaceView.setSecure()

ARCore

ARCore 可用于适配背部摄像头的应用。

免安装应用

试用应用或游戏,无需安装。

了解 Google Play 免安装体验

https://developer.android.google.cn/topic/google-play-instant

外部存储

Android 应用现在可以访问连接至设备的外部存储。

Play files

Chrome OS 文件管理器在 Play files 文件夹里可以显示 Android 的 /sdcard 文件夹,从而让用户可以通过 Chrome 容器读写 Android 文件。

最后

小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取
动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**

[外链图片转存中…(img-SENeEFhS-1719096490259)]一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取

这篇关于为 Android 应用打造精良的 Chrome OS 使用体验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1086670

相关文章

C语言中联合体union的使用

本文编辑整理自: http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=179471 一、前言 “联合体”(union)与“结构体”(struct)有一些相似之处。但两者有本质上的不同。在结构体中,各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间, 一个联合变量

乐鑫 Matter 技术体验日|快速落地 Matter 产品,引领智能家居生态新发展

随着 Matter 协议的推广和普及,智能家居行业正迎来新的发展机遇,众多厂商纷纷投身于 Matter 产品的研发与验证。然而,开发者普遍面临技术门槛高、认证流程繁琐、生产管理复杂等诸多挑战。  乐鑫信息科技 (688018.SH) 凭借深厚的研发实力与行业洞察力,推出了全面的 Matter 解决方案,包含基于乐鑫 SoC 的 Matter 硬件平台、基于开源 ESP-Matter SDK 的一

Tolua使用笔记(上)

目录   1.准备工作 2.运行例子 01.HelloWorld:在C#中,创建和销毁Lua虚拟机 和 简单调用。 02.ScriptsFromFile:在C#中,对一个lua文件的执行调用 03.CallLuaFunction:在C#中,对lua函数的操作 04.AccessingLuaVariables:在C#中,对lua变量的操作 05.LuaCoroutine:在Lua中,

Vim使用基础篇

本文内容大部分来自 vimtutor,自带的教程的总结。在终端输入vimtutor 即可进入教程。 先总结一下,然后再分别介绍正常模式,插入模式,和可视模式三种模式下的命令。 目录 看完以后的汇总 1.正常模式(Normal模式) 1.移动光标 2.删除 3.【:】输入符 4.撤销 5.替换 6.重复命令【. ; ,】 7.复制粘贴 8.缩进 2.插入模式 INSERT

Lipowerline5.0 雷达电力应用软件下载使用

1.配网数据处理分析 针对配网线路点云数据,优化了分类算法,支持杆塔、导线、交跨线、建筑物、地面点和其他线路的自动分类;一键生成危险点报告和交跨报告;还能生成点云数据采集航线和自主巡检航线。 获取软件安装包联系邮箱:2895356150@qq.com,资源源于网络,本介绍用于学习使用,如有侵权请您联系删除! 2.新增快速版,简洁易上手 支持快速版和专业版切换使用,快速版界面简洁,保留主

如何免费的去使用connectedpapers?

免费使用connectedpapers 1. 打开谷歌浏览器2. 按住ctrl+shift+N,进入无痕模式3. 不需要登录(也就是访客模式)4. 两次用完,关闭无痕模式(继续重复步骤 2 - 4) 1. 打开谷歌浏览器 2. 按住ctrl+shift+N,进入无痕模式 输入网址:https://www.connectedpapers.com/ 3. 不需要登录(也就是

亮相WOT全球技术创新大会,揭秘火山引擎边缘容器技术在泛CDN场景的应用与实践

2024年6月21日-22日,51CTO“WOT全球技术创新大会2024”在北京举办。火山引擎边缘计算架构师李志明受邀参与,以“边缘容器技术在泛CDN场景的应用和实践”为主题,与多位行业资深专家,共同探讨泛CDN行业技术架构以及云原生与边缘计算的发展和展望。 火山引擎边缘计算架构师李志明表示:为更好地解决传统泛CDN类业务运行中的问题,火山引擎边缘容器团队参考行业做法,结合实践经验,打造火山

Eclipse+ADT与Android Studio开发的区别

下文的EA指Eclipse+ADT,AS就是指Android Studio。 就编写界面布局来说AS可以边开发边预览(所见即所得,以及多个屏幕预览),这个优势比较大。AS运行时占的内存比EA的要小。AS创建项目时要创建gradle项目框架,so,创建项目时AS比较慢。android studio基于gradle构建项目,你无法同时集中管理和维护多个项目的源码,而eclipse ADT可以同时打开

android 免费短信验证功能

没有太复杂的使用的话,功能实现比较简单粗暴。 在www.mob.com网站中可以申请使用免费短信验证功能。 步骤: 1.注册登录。 2.选择“短信验证码SDK” 3.下载对应的sdk包,我这是选studio的。 4.从头像那进入后台并创建短信验证应用,获取到key跟secret 5.根据技术文档操作(initSDK方法写在setContentView上面) 6.关键:在有用到的Mo

android一键分享功能部分实现

为什么叫做部分实现呢,其实是我只实现一部分的分享。如新浪微博,那还有没去实现的是微信分享。还有一部分奇怪的问题:我QQ分享跟QQ空间的分享功能,我都没配置key那些都是原本集成就有的key也可以实现分享,谁清楚的麻烦详解下。 实现分享功能我们可以去www.mob.com这个网站集成。免费的,而且还有短信验证功能。等这分享研究完后就研究下短信验证功能。 开始实现步骤(新浪分享,以下是本人自己实现