Android Q에서는 앱이 다른 앱의 오디오를 녹음하고 기기 온도를 모니터링할 수 있습니다.

Android Q에는 다른 앱의 내부 오디오 출력을 녹음하고 장치 온도를 모니터링하는 새로운 API가 추가되었습니다.

구글은 주고 구글은 빼앗는다. 모든 새로운 Android 릴리스에는 기존 앱의 기능을 향상하거나 새로운 앱 카테고리를 여는 새로운 API가 많이 도입됩니다. 반면에 Google은 Android 플랫폼의 보안을 향상시키기 위해 기존 API에 대한 액세스를 제거하거나 제한합니다. Android Q 릴리스도 다르지 않으며 공유 저장소, 클립보드 액세스, 알림 및 기타 API에 대한 변경 사항에 대해 이미 많이 이야기했습니다. 올해에는 Google I/O 개발자 컨퍼런스에서 Google은 사용자와 모바일 게임 개발자에게 특히 흥미로운 Android Q의 새로운 API인 AudioPlaybackCapture 및 열 API.

Android Q에서 AudioPlaybackCapture를 사용하여 다른 앱의 오디오 녹음

모바일 게임은 특히 미국, 중국, 인도와 같은 시장에서 조만간 둔화될 조짐이 보이지 않는 거대한 산업입니다. 점점 더 많은 사람들이 게임과 소셜 미디어를 위해 스마트폰에서 시간을 보내면서 사람들이 자신의 게임 경험을 온라인에서 공유하고 싶어하는 것은 놀라운 일이 아닙니다.

안드로이드는 기본적으로 초기부터 스크린샷 촬영을 지원해 왔지만, 화면 동영상 캡처는 안드로이드 5.0 롤리팝부터 지원됐다. 미디어프로젝션 API. 안타깝게도 이 API는 타사 앱이 다른 앱의 내부 오디오 출력을 녹음하는 것을 허용하지 않습니다. 타사 화면 레코더가 장치 마이크의 외부 오디오 출력을 녹음하도록 강제 (에스). 삼성 등 OEM 화웨이 화면 녹화 중에 내부 오디오 출력을 녹음하는 시스템 앱을 제공하지만 유일한 방법은 다른 장치의 소유자가 자신의 장치에서 출력되는 비디오 및 오디오 출력을 올바르게 기록하려면 구입하는 것입니다. ㅏ 타사 액세서리. 다행스럽게도 Google은 마침내 Android Q에서 타사 앱이 다른 앱의 오디오를 녹음할 수 있는 방법을 도입했습니다.

AudioPlaybackCapture API는 Google에서 화면 캡처와 유사하지만 오디오 녹음용으로 설명합니다. 지금까지 API를 사용하는 유일한 앱은 Google의 앱이지만

실시간 자막, 기기에서 재생되는 모든 비디오에 캡션을 추가하는 접근성 도구인 API의 문서에는 스트리밍 앱이 오디오를 캡처할 수 있도록 하는 것이 주요 목적이라고 명시되어 있습니다. 게임으로 플레이. 모바일 게이머가 자신의 세션을 Twitch나 YouTube와 같은 서비스로 스트리밍한다고 생각해 보세요. API는 오디오가 캡처되는 앱의 오디오 대기 시간에 영향을 주지 않도록 설계되어 오디오와 비디오가 비동기화되지 않도록 게임플레이 녹화에 적합합니다.

Android 초기와 달리 새로운 API에 대한 Google의 접근 방식은 더욱 신중합니다. AudioPlaybackCapture는 오디오가 캡처되는 앱과 캡처를 수행하는 앱이 모두 특정 요구 사항을 충족하는 경우에만 사용할 수 있습니다. 해당 요구 사항을 요약하면 다음과 같습니다.

  • 타사 앱에서 앱의 오디오를 캡처하려면 다음 요구 사항을 충족해야 합니다.
    • 앱의 매니페스트에서 AllowAudioPlaybackCapture를 true로 설정하거나 설정 해제해야 합니다. (Android Q를 대상으로 하는 앱의 경우 기본값은 true이지만, Android Pie를 대상으로 하는 앱의 경우 수동으로 설정할 수 있습니다.)
    • 오디오를 생성하는 앱의 오디오 사용량은 USAGE_MEDIA, USAGE_GAME 또는 USAGE_UNKNOWN 유형이어야 합니다.
    • 오디오 캡처 정책(setAllowedCapturePolicy)은 ALLOW_CAPTURE_BY_ALL로 설정되어야 합니다. 이 정책은 런타임에 설정할 수 있지만 정책 변경 사항을 적용하려면 재생을 다시 시작해야 합니다. ALLOW_CAPTURE_BY_SYSTEM이 설정된 경우 시스템 앱만 오디오를 녹음할 수 있습니다. 오디오를 저장할 수 없고, 이를 타사 앱에 전달할 수 없으며, 16kHz 이상의 16비트 모노로 녹음할 수 없습니다. 품질.)
  • 앱이 다른 앱의 오디오를 녹음하려면 다음 요구 사항을 충족해야 합니다.
    • 앱은 MediaProjectionManager.createScreenCaptureIntent 프롬프트를 표시해야 하며 사용자는 이를 수락해야 합니다.
      앱이 MediaProjection API를 사용하여 화면 캡처를 시도할 때 사용자에게 표시되는 확인 대화 상자입니다.
    • 앱은 다음을 보유해야 합니다. RECORD_AUDIO 허가.
    • 앱은 오디오가 녹음될 앱과 동일한 사용자 프로필에 있어야 합니다.

대부분의 게임에서는 이 새로운 API를 사용하는 앱에서 오디오를 캡처할 수 있지만 이를 지원하도록 게임을 업데이트하는 데는 시간이 걸릴 수 있습니다. 반면에 라이선스 문제로 인해 음악 또는 비디오 스트리밍 앱이 제3자를 위해 이 API를 지원할 것이라고 기대하지 마십시오. 그러나 앱이 오디오 캡처 정책을 ALLOW_CAPTURE_BY_SYSTEM으로 설정한 경우 Google에서 부과한 제한 사항은 다음과 같습니다. 음악 및 비디오 스트리밍 앱 개발자는 접근성을 향상시키기 위해 시스템에서 오디오 캡처를 활성화하는 데 동의해야 합니다.

Android Q의 AudioPlaybackCapture API에 대해 자세히 알아보려면 다음을 확인하세요. 이 페이지.

Android Q에서 Thermal API를 사용하여 제한 모니터링

열 제한은 제한의 영향을 가장 많이 받는 앱에 대한 입력이나 알림 없이 시스템에서 거의 전적으로 관리됩니다. 장치의 리소스가 너무 부족하면 대부분의 장치는 CPU 및 GPU 속도를 제한하여 게임 성능을 저하시킵니다. 게임 개발자로서 사용자가 설정을 변경하기 전에 변경 사항이 성능에 미칠 수 있는 잠재적 영향에 대해 경고하는 것 외에는 실제로 할 수 있는 일이 없습니다.

그러나 Android Q의 새로운 Thermal API를 사용하면 앱이 성능 조절의 다양한 단계에 대한 콜백을 수신할 수 있습니다. 개발자는 상당한 CPU, GPU 또는 모뎀이 필요한 활동을 줄여 장치의 부담을 줄이는 데 도움을 줄 수 있습니다. 용법. 예를 들어 게임은 기기가 더 이상 GPU 조절을 하지 않을 때까지 해상도를 동적으로 줄이거나 지도 앱이 다음과 같은 향상된 기능을 비활성화할 수 있습니다. 증강 현실 내비게이션 CPU의 부하를 줄이기 위해.

이 새로운 API를 사용하기 위해 앱은 PowerManager(addThermalStatusListener)에 리스너를 등록하고 시스템은 다음 열 상태 코드 중 하나를 앱에 보냅니다.

  • THERMAL_STATUS_NONE: "제한 상태가 아닙니다."
  • THERMAL_STATUS_LIGHT: "UX가 영향을 받지 않는 가벼운 조절입니다."
  • THERMAL_STATUS_MODERATE: "UX가 크게 영향을 받지 않는 적당한 조절입니다."
  • THERMAL_STATUS_SEVERE: "UX가 크게 영향을 받는 경우 심각한 제한이 발생합니다."
  • THERMAL_STATUS_CRITICAL: "플랫폼은 전력을 줄이기 위해 모든 조치를 취했습니다."
  • THERMAL_STATUS_EMERGENCY: "열 상태로 인해 플랫폼의 주요 구성 요소가 종료되고 있습니다. 장치 기능이 제한됩니다."
  • THERMAL_STATUS_SHUTDOWN: "즉시 종료해야 합니다.

Thermal API를 지원하려면 Android Q가 필요하지만 또 다른 요구 사항은 새로운 HAL을 추가하는 것입니다. Google은 Android Q의 Pixel 기기(Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL, 픽셀 3a, 그리고 픽셀 3a XL)은 Thermal API를 지원하지만 Google은 다른 기기에 대한 지원을 추가하기 위해 노력하고 있습니다.

자세히 알아보기 열 API는 여기.