Android 14에는 개발자를 위한 훌륭한 기능과 API가 도입되었습니다. 다음은 앱의 기능을 알아보고 관련 API를 시작하는 데 도움이 됩니다.
추가된 API, 수정된 API, 삭제된 API에 관한 자세한 목록은 API 차이점 보고서를 참고하세요. 추가된 API에 관한 자세한 내용은 Android API 참조를 참고하세요. Android 14의 경우 API 수준 34에 추가된 API를 찾아보세요. 플랫폼 변경이 앱에 영향을 줄 수 있는 분야에 관해 알아보려면 Android 14를 타겟팅하는 앱 및 모든 앱의 Android 14 동작 변경사항을 확인해야 합니다.
다국어 지원
앱별 언어 설정
Android 14 扩展了 Android 13(API 级别 33)中引入的按应用设定语言功能,并包含以下额外功能:
自动生成应用的
localeConfig:从 Android Studio Giraffe Canary 7 和 AGP 8.1.0-alpha07 开始,您可以将应用配置为自动支持各应用语言偏好设定。Android Gradle 插件会根据您的项目资源生成LocaleConfig文件,并在最终清单文件中添加对该文件的引用,这样您就不再需要手动创建或更新该文件。AGP 使用应用模块的res文件夹中的资源以及任何库模块依赖项来确定要在LocaleConfig文件中添加的语言区域。动态更新应用的
localeConfig:使用LocaleManager方法中的setOverrideLocaleConfig()和getOverrideLocaleConfig()可以在设备的系统设置中动态更新应用的受支持语言列表。有了这种灵活性,您可以按区域自定义支持的语言列表、运行 A/B 实验,或者如果您的应用通过服务器端推送进行本地化,则可以提供更新后的语言区域列表。输入法 (IME) 的应用语言可见性:IME 可以利用
getApplicationLocales()方法查看当前应用的语言,并将 IME 语言与该语言进行匹配。
Grammatical Inflection API
30억 명의 사용자가 성별이 지정된 언어를 사용합니다. 이 언어는 이야기하는 사람과 사물의 성별에 따라 문법적 카테고리(예: 명사, 동사, 형용사, 전치사)가 영향을 받는 언어입니다. 일반적으로 성별이 지정된 많은 언어에서 남성형 문법적 성별을 기본 성별이나 일반 성별로 사용합니다.
여성을 남성형 문법적 성별로 언급하는 등 잘못된 문법적 성별로 사용자를 언급하면 사용자의 실적과 태도에 부정적인 영향을 미칠 수 있습니다. 반면 사용자의 문법적 성별을 올바르게 반영하는 언어로 된 UI는 사용자 참여를 개선하고 보다 맞춤설정되고 자연스러운 사용자 환경을 제공할 수 있습니다.
为帮助您针对区分性别的语言构建以用户为中心的界面,Android 14 引入了 Grammatical Inflection API,让您无需重构应用便能添加对语法性别的支持。
지역 설정
用户可通过地区偏好设置对温度单位、一周的第一天和编号系统进行个性化设置。居住在美国的欧洲用户可能更希望使用摄氏度,而不是华氏度,并且希望应用将星期一视为一周的开始,而不是像美国那样默认从星期日开始。
新 Android 设置菜单包含这些偏好设置,使用户能够在一个位置集中发现这些应用更改偏好设置。这些偏好设置在备份和恢复设备后也会保持不变。多个 API 和 intent(例如 getTemperatureUnit 和 getFirstDayOfWeek)会为您的应用授予读取权限来访问用户偏好设置,因此您的应用可以调整其显示信息的方式。您还可以在 ACTION_LOCALE_CHANGED 上注册 BroadcastReceiver,以便在地区偏好设置发生更改时处理语言区域配置更改。
如需找到这些设置,请打开“设置”应用,然后依次前往系统 > 语言和输入法 > 地区偏好设置。
접근성
비선형 글꼴 크기 200%로 조정
Android 14부터 시스템은 글꼴 크기를 최대 200%까지 지원하므로 사용자에게 추가 접근성 옵션을 제공할 수 있습니다.
화면의 큰 텍스트 요소가 너무 커지지 않도록 시스템에서는 비선형 크기 조정 곡선을 적용합니다. 이 크기 조정 전략은 큰 텍스트가 작은 텍스트와 동일한 비율로 조정되지 않음을 의미합니다. 비선형 글꼴 크기 조정은 다양한 크기의 요소 간에 비례 계층 구조를 유지하는 동시에 높은 수준으로 크기가 조정되는 선형 텍스트 문제 (예: 텍스트가 잘리거나 너무 큰 디스플레이 크기로 인해 텍스트를 읽기 어려워지는 경우)를 완화하는 데 도움이 됩니다.
비선형 글꼴 크기 조정으로 앱 테스트
이미 확장 가능 픽셀 (sp) 단위를 사용하여 텍스트 크기를 정의하는 경우 이러한 추가 옵션과 크기 조정 개선사항이 앱의 텍스트에 자동으로 적용됩니다. 하지만 앱이 글꼴 크기를 올바르게 적용하고 사용성에 영향을 미치지 않으면서 더 큰 글꼴 크기를 수용할 수 있는지 확인하려면 최대 글꼴 크기 (200%)를 사용 설정하여 UI 테스트를 실행해야 합니다.
200% 글꼴 크기를 사용 설정하려면 다음 단계를 따르세요.
- 설정 앱을 열고 접근성 > 디스플레이 크기 및 텍스트로 이동합니다.
- 글꼴 크기 옵션의 경우 이 섹션에 제공되는 이미지와 같이 최대 글꼴 크기 설정이 사용 설정될 때까지 더하기(+) 아이콘을 탭합니다.
텍스트 크기에 조정된 픽셀(sp) 단위 사용
항상 sp 단위로 텍스트 크기를 지정해야 합니다. 앱에서 sp 단위를 사용하면 Android에서는 사용자의 기본 텍스트 크기를 적용하고 적절하게 크기를 조정할 수 있습니다.
패딩에 sp 단위를 사용하거나 암시적 패딩을 가정하여 뷰 높이를 정의하지 마세요. 비선형 글꼴 크기 조정 sp 치수는 비례하지 않을 수 있으므로 4sp + 20sp가 24sp와 같지 않을 수 있습니다.
조정된 픽셀(sp) 단위 변환
TypedValue.applyDimension()을 사용하여 sp 단위에서 픽셀로 변환하고 TypedValue.deriveDimension()을 사용하여 픽셀을 sp로 변환합니다. 이러한 메서드는 적절한 비선형 크기 조정 곡선을 자동으로 적용합니다.
Configuration.fontScale 또는 DisplayMetrics.scaledDensity를 사용하여 수식을 하드코딩하지 마세요. 글꼴 크기 조정이 비선형이므로 scaledDensity 필드가 더 이상 정확하지 않습니다. 글꼴은 더 이상 단일 스칼라 값으로 확장되지 않으므로 fontScale 필드는 정보 제공 목적으로만 사용해야 합니다.
lineHeight에 sp 단위 사용
항상 dp 대신 sp 단위를 사용하여 android:lineHeight를 정의하여 행 간격이 텍스트와 함께 조정되도록 합니다. 그렇지 않고 텍스트가 sp인데 lineHeight가 dp 또는 px인 경우 크기가 조정되지 않고 답답해 보입니다.
TextView는 의도한 비율이 유지되도록 lineHeight를 자동으로 수정하지만, textSize와 lineHeight가 모두 sp 단위로 정의된 경우에만 가능합니다.
카메라 및 미디어
이미지용 울트라 HDR
Android 14 新增了对高动态范围 (HDR) 图片的支持,可在拍摄照片时保留更多来自传感器的信息,从而实现鲜艳的色彩和更高的对比度。Android 使用 Ultra HDR 格式,该格式与 JPEG 图片完全向后兼容,可让应用与 HDR 图片无缝互操作,并根据需要以标准动态范围 (SDR) 显示这些图片。
当您的应用选择为其 activity 窗口使用 HDR 界面(通过清单条目或通过在运行时调用 Window.setColorMode())时,框架会自动在界面中以 HDR 格式渲染这些图片。您还可以在受支持的设备上拍摄压缩的 Ultra HDR 静态图片。从传感器中恢复的颜色越多,后期编辑的灵活性就越高。与 Ultra HDR 图片关联的 Gainmap 可用于使用 OpenGL 或 Vulkan 渲染这些图片。
카메라 확장 프로그램의 확대/축소, 초점, Postview 등
Android 14에서는 카메라 확장 프로그램을 업그레이드하고 개선하여 앱이 더 긴 처리 시간을 처리할 수 있도록 지원합니다. 이를 통해 지원되는 기기에서 저조도 사진과 같은 컴퓨팅 집약적인 알고리즘을 사용하여 이미지를 개선할 수 있습니다. 이러한 기능을 통해 사용자는 카메라 확장 기능을 사용할 때 더욱 강력한 환경을 경험할 수 있습니다. 이러한 개선사항의 예는 다음과 같습니다.
- 동적 스틸 캡처 처리 지연 시간 추정치는 현재 장면과 환경 조건을 기반으로 훨씬 더 정확한 스틸 캡처 지연 시간 추정치를 제공합니다.
CameraExtensionSession.getRealtimeStillCaptureLatency()를 호출하여 지연 시간 추정 메서드가 두 개인StillCaptureLatency객체를 가져옵니다.getCaptureLatency()메서드는onCaptureStarted와onCaptureProcessStarted()간의 예상 지연 시간을 반환하고getProcessingLatency()메서드는onCaptureProcessStarted()와 사용 가능한 최종 처리된 프레임 간의 예상 지연 시간을 반환합니다. - 앱이 장기 실행 스틸 캡처 처리 작업의 현재 진행 상황을 표시할 수 있도록 캡처 진행 상황 콜백을 지원합니다.
CameraExtensionCharacteristics.isCaptureProcessProgressAvailable에서 이 기능을 사용할 수 있는지 확인할 수 있으며, 사용할 수 있는 경우 진행률 (0~100)이 매개변수로 전달되는onCaptureProcessProgressed()콜백을 구현합니다. 확장 프로그램별 메타데이터(예:
CaptureRequest.EXTENSION_STRENGTH:EXTENSION_BOKEH를 사용하여 배경 흐리게 처리의 양과 같은 확장 프로그램 효과의 양을 조정하는 데 사용)카메라 확장 프로그램의 스틸 캡처를 위한 포스트뷰 기능으로, 최종 이미지보다 처리가 덜된 이미지를 더 빠르게 제공합니다. 확장 프로그램의 처리 지연 시간이 늘어난 경우 UX를 개선하기 위해 포스트뷰 이미지를 자리표시자로 제공하고 나중에 최종 이미지로 전환할 수 있습니다.
CameraExtensionCharacteristics.isPostviewAvailable를 사용하여 이 기능을 사용할 수 있는지 확인할 수 있습니다. 그런 다음OutputConfiguration를ExtensionSessionConfiguration.setPostviewOutputConfiguration에 전달할 수 있습니다.더 최적화되고 전력 효율적인 미리보기 렌더링 경로를 허용하는
SurfaceView지원확장 프로그램 사용 중에 탭하여 초점 맞추기 및 확대/축소를 지원합니다.
인센서 줌
当 CameraCharacteristics 中的 REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE 包含 SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW 时,您的应用可以使用高级传感器功能,将剪裁后的 RAW 数据流的像素与全视野范围相同,方法是将 CaptureRequest 与将数据流用例设置为 CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW 的 RAW 目标搭配使用。通过实现请求替换控件,更新后的相机可让用户在其他相机控件准备就绪之前使用缩放控件。
무손실 USB 오디오
Android 14 支持无损音频格式,可通过 USB 有线耳机提供发烧友级体验。您可以查询 USB 设备的首选混音器属性,注册监听器以监听首选混音器属性的更改,以及使用 AudioMixerAttributes 类配置混音器属性。此类表示音频混音器的格式,例如声道掩码、采样率和行为。该类允许直接发送音频,而无需混音、调节音量或处理效果。
개발자 생산성 및 도구
인증 관리자
Android 14 将 Credential Manager 添加为平台 API,并通过使用 Google Play 服务的 Jetpack 库,向后额外支持 Android 4.4(API 级别 19)设备。Credential Manager 旨在通过 API 使用用户配置的凭据提供程序检索和存储凭据,让用户更轻松地登录。Credential Manager 在单个 API 中支持多种登录方法,包括用户名和密码、通行密钥和联合登录解决方案(如“使用 Google 账号登录”)。
通行密钥具有许多优势。例如,通行密钥是基于业界标准构建的,可在各种不同的操作系统和浏览器生态系统中使用,并且可用于网站和应用。
如需了解详情,请参阅 Credential Manager 和通行密钥文档以及介绍 Credential Manager 和通行密钥的博文。
헬스 커넥트
Health Connect 是用户健康与健身数据的设备端仓库。借助该功能,用户可以在一个位置控制要与这些应用共享哪些数据,并在自己喜爱的应用之间共享数据。
在搭载 Android 14 之前的 Android 版本的设备上,Health Connect 可作为应用从 Google Play 商店下载。从 Android 14 开始,Health Connect 将成为 Android 平台的一部分,并通过 Google Play 系统更新接收更新,而无需单独下载。这样一来,Health Connect 就可以频繁更新,您的应用可以依赖于搭载 Android 14 或更高版本的设备上提供的 Health Connect。用户可以通过设备的“设置”访问 Health Connect,隐私控制功能集成到系统设置中。
Health Connect 在 Android 14 中包含多项新功能,例如锻炼路线,可让用户分享可在地图上直观呈现的锻炼路线。路线定义为在一定时间范围内保存的位置列表,您的应用可以将路线插入锻炼时段,将它们关联起来。为确保用户能够完全控制此类敏感数据,用户必须允许与其他应用共享单个路线。
如需了解详情,请参阅 Health Connect 文档以及有关 Android Health 中的新功能的博文。
OpenJDK 17 업데이트
Android 14 将继续更新 Android 的核心库,以与最新 OpenJDK LTS 版本中的功能保持一致,包括适合应用和平台开发者的库更新和 Java 17 语言支持。
其中包含以下功能和改进:
- 将大约 300 个
java.base类更新为支持 Java 17。 - 文本块 - 为 Java 编程语言引入了多行字符串字面量。
- instanceof 模式匹配:可让对象在
instanceof中被视为具有特定类型,而无需任何额外的变量。 - 密封类:允许您限制哪些类和接口可以扩展或实现它们。
得益于 Google Play 系统更新 (Project Mainline),6 亿多台设备能够接收包含这些更改的最新 Android 运行时 (ART) 更新。我们致力于为应用提供更加一致、安全的跨设备环境,并为用户提供独立于平台版本的新功能。
Java 和 OpenJDK 是 Oracle 及/或其关联公司的商标或注册商标。
앱 스토어 개선사항
Android 14 引入了多个 PackageInstaller API,可帮助应用商店改善其用户体验。
下载之前请求批准安装
安装或更新应用可能需要用户批准。例如,当使用 REQUEST_INSTALL_PACKAGES 权限的安装程序尝试安装新应用时。在之前的 Android 版本中,只有在将 APK 写入安装会话并且提交会话后,应用商店才能请求用户批准。
从 Android 14 开始,requestUserPreapproval() 方法可让安装程序在提交安装会话之前请求用户批准。此项改进可让应用商店将任何 APK 的下载操作推迟到用户批准安装之后。此外,用户批准安装后,应用商店可以在后台下载并安装应用,而不会干扰用户。
承担未来更新的责任
借助 setRequestUpdateOwnership() 方法,安装程序可以向系统表明它打算负责将被安装的应用未来的更新。此 capability 可实现更新所有权强制执行,即仅允许更新所有者为应用安装自动更新。更新所有权强制执行有助于确保用户仅收到来自预期应用商店的更新。
任何其他安装程序(包括使用 INSTALL_PACKAGES 权限的安装程序)都必须获得用户的明确批准,才能安装更新。如果用户决定继续从其他来源安装更新,则会失去更新所有权。
在干扰较少的时段更新应用
应用商店通常希望避免更新正在使用的应用,因为这会导致应用正在运行的进程被终止,而这可能会中断用户正在执行的操作。
从 Android 14 开始,InstallConstraints API 让安装程序可以确保其应用更新在适当的时机进行。例如,应用商店可以调用 commitSessionAfterInstallConstraintsAreMet() 方法来确保仅在用户不再与相应应用互动时才进行更新。
无缝安装可选拆分
借助拆分 APK,应用的功能可以通过单独的 APK 文件提供,而不是以单体式 APK 的形式提供。借助拆分 APK,应用商店可以优化不同应用组件的提供。例如,应用商店可能会根据目标设备的属性进行优化。自在 API 级别 22 中引入以来,PackageInstaller API 一直支持拆分。
在 Android 14 中,setDontKillApp() 方法可让安装程序指明在安装新的拆分项时应用的运行进程不应终止。应用商店可以使用此功能,在用户使用应用时无缝安装应用的新功能。
앱 메타데이터 번들
Android 14부터 Android 패키지 설치 프로그램을 사용하면 데이터 보안 관행과 같은 앱 메타데이터를 지정하여 Google Play와 같은 앱 스토어 페이지에 포함할 수 있습니다.
사용자가 기기 스크린샷을 찍을 때 감지
为了打造更加标准化的屏幕截图检测体验,Android 14 引入了可保护隐私的屏幕截图检测 API。借助此 API,应用可以按 activity 注册回调。如果用户在该 activity 可见时截取屏幕截图,系统会调用这些回调并通知用户。
사용자 환경
Sharesheet 맞춤 작업 및 개선된 순위 지정
Android 14에서는 맞춤 앱 작업과 사용자에게 더 많은 정보를 제공하는 미리보기 결과를 지원하도록 시스템 Sharesheet를 업데이트합니다.
맞춤 작업 추가
Android 14에서는 앱에서 호출하는 시스템 Sharesheet에 맞춤 작업을 추가할 수 있습니다.
직접 공유 타겟의 순위 향상
Android 14는 앱에서 더 많은 신호를 사용하여 직접 공유 타겟의 순위를 결정하고 사용자에게 더 유용한 결과를 제공합니다. 순위에 가장 유용한 신호를 제공하려면 직접 공유 타겟의 순위 향상에 관한 안내를 따르세요. 커뮤니케이션 앱은 발신 및 수신 메시지의 단축키 사용을 보고할 수도 있습니다.
뒤로 탐색 예측을 위한 내장 및 맞춤 애니메이션 지원
Android 13 在开发者选项背后引入了预测性“返回主屏幕”动画。在已启用开发者选项的受支持应用中使用时,滑回手势会显示动画,表明返回手势会使应用退回到主屏幕。
Android 14 包含针对“预测性返回”的多项改进和新指南:
- 您可设置
android:enableOnBackInvokedCallback=true,以便为每个 activity 选择启用预测性返回系统动画,而不是为整个应用选择启用。 - 我们添加了新的系统动画,以配合 Android 13 中的“返回主屏幕”动画。新的系统动画是跨 activity 和跨任务的,您可在迁移到预测性返回后自动获得该动画。
- 我们为底部动作条、侧边动作条和搜索添加了新的 Material 组件动画。
- 我们制作了有关如何创建自定义应用内动画和转换的设计指南。
- 我们添加了许多新 API 来支持自定义的应用内转换动画:
在此 Android 14 预览版中,所有预测性返回功能都是位于开发者选项背后。请参阅与将您的应用迁移到预测性返回有关的开发者指南,以及与创建自定义应用内转换有关的开发者指南。
대형 화면 기기 제조업체 앱별 재정의
앱별 재정의를 사용하면 기기 제조업체가 대형 화면 기기에서 앱의 동작을 변경할 수 있습니다. 예를 들어 FORCE_RESIZE_APP 재정의는 앱 매니페스트에 resizeableActivity="false"가 설정되어 있더라도 디스플레이 크기에 맞게 앱의 크기를 조절하도록 시스템에 지시합니다 (크기 호환성 모드 피하기).
재정의는 대형 화면에서 사용자 환경을 개선하기 위한 것입니다.
새 매니페스트 속성을 사용하면 앱에 대한 일부 기기 제조업체 재정의를 사용 중지할 수 있습니다.
대형 화면 사용자 앱별 재정의
앱별 재정의는 대형 화면 기기에서 앱의 동작을 변경합니다. 예를 들어 OVERRIDE_MIN_ASPECT_RATIO_LARGE 기기 제조업체 재정의는 앱 구성과 관계없이 앱 가로세로 비율을 16:9로 설정합니다.
Android 14 QPR1을 사용하면 사용자가 대형 화면 기기에서 새 설정 메뉴를 통해 앱별 재정의를 적용할 수 있습니다.
앱 화면 공유
앱 화면 공유를 사용하면 사용자가 화면 콘텐츠를 녹화하는 동안 전체 기기 화면 대신 앱 창을 공유할 수 있습니다.
앱 화면 공유를 사용하면 상태 표시줄, 탐색 메뉴, 알림, 기타 시스템 UI 요소가 공유 디스플레이에서 제외됩니다. 선택한 앱의 콘텐츠만 공유됩니다.
앱 화면 공유를 사용하면 사용자가 여러 앱을 실행하면서 콘텐츠 공유를 단일 앱으로 제한하여 생산성과 개인 정보 보호를 개선할 수 있습니다.
Pixel 8 Pro의 Gboard에서 LLM 기반 스마트 답장
12월 기능 업데이트가 적용된 Pixel 8 Pro 기기에서 개발자는 Google Tensor에서 실행되는 온디바이스 대규모 언어 모델 (LLM)을 기반으로 하는 Gboard의 고품질 스마트 답장을 사용해 볼 수 있습니다.
이 기능은 WhatsApp, Line, KakaoTalk에서 미국 영어로 제한된 미리보기로 제공됩니다. Gboard를 키보드로 사용하는 Pixel 8 Pro 기기를 사용해야 합니다.
이 기능을 사용해 보려면 먼저 설정 > 개발자 옵션 > AiCore 설정 > Aicore Persistent 사용 설정에서 기능을 사용 설정하세요.
그런 다음 지원되는 앱에서 대화를 열어 수신 메시지에 대한 응답으로 Gboard의 추천 표시줄에 LLM 기반 스마트 답장이 표시되는지 확인합니다.
그래픽
경로를 쿼리하고 보간할 수 있음
Android의 Path API는 벡터 그래픽을 만들고 렌더링하기 위한 강력하고 유연한 메커니즘으로, 경로를 획 처리하거나 채우고, 선분이나 이차 또는 삼차 곡선으로 경로를 구성하고, 불리언 연산을 실행하여 훨씬 더 복잡한 도형을 가져오거나 이 모든 작업을 동시에 실행할 수 있습니다. 한 가지 제한사항은 경로 객체에 실제로 무엇이 있는지 찾을 수 있다는 것입니다. 객체의 내부는 생성 후 호출자에게 불투명합니다.
Path를 만들려면 moveTo(), lineTo(), cubicTo()와 같은 메서드를 호출하여 경로 세그먼트를 추가하세요. 그러나 이 경로에 세그먼트가 무엇인지 물어볼 방법이 없으므로 생성 시 해당 정보를 유지해야 합니다.
Android 14부터 경로를 쿼리하여 그 안에 포함된 항목을 확인할 수 있습니다.
먼저 Path.getPathIterator API를 사용하여 PathIterator 객체를 가져와야 합니다.
Kotlin
val path = Path().apply { moveTo(1.0f, 1.0f) lineTo(2.0f, 2.0f) close() } val pathIterator = path.pathIterator
자바
Path path = new Path(); path.moveTo(1.0F, 1.0F); path.lineTo(2.0F, 2.0F); path.close(); PathIterator pathIterator = path.getPathIterator();
그런 다음 PathIterator를 호출하여 세그먼트를 하나씩 반복하면서 각 세그먼트에 필요한 모든 데이터를 검색할 수 있습니다. 이 예에서는 데이터를 패키징하는 PathIterator.Segment 객체를 사용합니다.
Kotlin
for (segment in pathIterator) { println("segment: ${segment.verb}, ${segment.points}") }
자바
while (pathIterator.hasNext()) { PathIterator.Segment segment = pathIterator.next(); Log.i(LOG_TAG, "segment: " + segment.getVerb() + ", " + segment.getPoints()); }
PathIterator에는 포인트 데이터를 보유할 버퍼를 전달할 수 있는 비할당 버전의 next()도 있습니다.
Path 데이터 쿼리에 관한 중요한 사용 사례 중 하나는 보간 유형입니다. 예를 들어 서로 다른 두 경로 간에 애니메이션을 적용하거나 모핑할 수 있습니다. 이러한 사용 사례를 더욱 단순화하기 위해 Android 14에는 Path에 interpolate() 메서드도 포함되어 있습니다. 두 경로의 내부 구조가 같다고 가정하면 interpolate() 메서드는 보간된 결과를 사용하여 새 Path를 만듭니다. 이 예에서는 path 및 otherPath 사이의 도형이 중간(선형 보간 유형 0.5)인 경로를 반환합니다.
Kotlin
val interpolatedResult = Path() if (path.isInterpolatable(otherPath)) { path.interpolate(otherPath, .5f, interpolatedResult) }
자바
Path interpolatedResult = new Path(); if (path.isInterpolatable(otherPath)) { path.interpolate(otherPath, 0.5F, interpolatedResult); }
Jetpack graphics-path 라이브러리를 사용하면 이전 버전의 Android에서도 유사한 API를 사용할 수 있습니다.
버텍스 및 프래그먼트 셰이더가 있는 맞춤 메시
Android는 오랫동안 맞춤 음영 처리로 삼각형 메시 그리기를 지원해 왔지만 입력 메시 형식은 사전 정의된 몇 가지 속성 조합으로 제한되었습니다. Android 14에서는 삼각형 또는 삼각형 스트립으로 정의할 수 있고 원하는 경우 색인을 생성할 수 있는 커스텀 메시 지원을 추가했습니다. 이러한 메시는 커스텀 속성, 정점 행렬, 변경, AGSL로 작성된 정점 및 프래그먼트 셰이더로 지정됩니다.
정점 셰이더는 위치 및 색상과 같은 가변을 정의하는 반면, 프래그먼트 셰이더는 원하는 경우 일반적으로 정점 셰이더에서 만든 가변을 사용하여 픽셀의 색상을 정의할 수 있습니다. 색상이 프래그먼트 셰이더에서 제공되면 메시를 그릴 때 선택한 혼합 모드를 사용하여 현재 Paint 색상과 혼합됩니다. 유니폼을 프래그먼트 및 정점 셰이더에 전달하여 유연성을 높일 수 있습니다.
캔버스의 하드웨어 버퍼 렌더러
Android의 Canvas API를 사용하여 하드웨어 가속으로 HardwareBuffer에 그리는 것을 지원하기 위해 Android 14에서는 HardwareBufferRenderer를 도입합니다. 이 API는
시스템과의 통신이 포함된 사용 사례에 특히 유용합니다
짧은 지연 시간을 위해 SurfaceControl를 통한 컴포지터
있습니다.