Android Q fügt eine neue API hinzu, um die interne Audioausgabe einer anderen App aufzuzeichnen und auch die Gerätetemperatur zu überwachen.
Google gibt und Google nimmt weg. Jede neue Android-Version führt viele neue APIs ein, die entweder die Funktionalität vorhandener Apps verbessern oder neue App-Kategorien eröffnen. Andererseits entzieht Google auch den Zugriff auf bestehende APIs oder schränkt deren Funktionen ein, um die Sicherheit der Android-Plattform zu verbessern. Bei der Version von Android Q ist das nicht anders, und wir haben bereits viel über die Änderungen am gemeinsamen Speicher, beim Zugriff auf die Zwischenablage, bei Benachrichtigungen und anderen APIs gesprochen. In diesem Jahr Auf der Google I/O-Entwicklerkonferenz hat Google neue APIs in Android Q angekündigt, die besonders für Nutzer und Entwickler mobiler Spiele interessant sind: die AudioPlaybackCapture und Thermische APIs.
Aufzeichnen des Audios von anderen Apps mit AudioPlaybackCapture in Android Q
Mobile Gaming ist eine riesige Branche, in der es keine Anzeichen für eine baldige Verlangsamung gibt, insbesondere in Märkten wie den USA, China und Indien. Da immer mehr Menschen Zeit mit ihren Smartphones für Spiele und soziale Medien verbringen, ist es keine Überraschung, dass Menschen ihre Spielerlebnisse online teilen möchten.
Android unterstützt das Aufnehmen von Screenshots grundsätzlich von Anfang an, das Aufnehmen von Bildschirmvideos wird jedoch erst seit Android 5.0 Lollipop mit der Einführung von unterstützt MediaProjection-API. Leider erlaubt diese API nicht, dass Drittanbieter-Apps die interne Audioausgabe in anderen Apps aufzeichnen. Bildschirmrekorder von Drittanbietern werden gezwungen, externe Audioausgaben über das Mikrofon des Geräts aufzuzeichnen (S). OEMs wie Samsung und Huawei System-Apps zur Verfügung zu stellen, um die interne Audioausgabe während einer Bildschirmaufnahme aufzuzeichnen, ist jedoch die einzige Möglichkeit Für Besitzer anderer Geräte ist der Kauf erforderlich, um die Video- und Audioausgabe ihrer Geräte ordnungsgemäß aufzuzeichnen A Zubehör von Drittanbietern. Glücklicherweise führt Google in Android Q endlich eine Möglichkeit für Drittanbieter-Apps ein, den Ton von anderen Apps aufzuzeichnen.
Die AudioPlaybackCapture API wird von Google als das Analogon zur Bildschirmaufnahme beschrieben, jedoch für die Audioaufzeichnung. Obwohl die einzige App, die die API bisher nutzt, die von Google ist Live-Untertitel, ein Barrierefreiheitstool, das jedem auf dem Gerät abgespielten Video Untertitel hinzufügt, den APIs In der Dokumentation heißt es, dass sein Hauptzweck darin besteht, Streaming-Apps die Erfassung des Audiosignals zu ermöglichen gespielt von Spielen. Denken Sie an mobile Gamer, die ihre Sitzungen auf Dienste wie Twitch oder YouTube streamen. Die API ist so konzipiert, dass sie die Audiolatenz der App, deren Audio aufgenommen wird, nicht beeinträchtigt. Sie eignet sich daher perfekt für die Gameplay-Aufzeichnung, sodass Audio und Video nicht desynchronisiert werden.
Anders als in den Anfängen von Android geht Google bei neuen APIs vorsichtiger vor. AudioPlaybackCapture kann nur verwendet werden, wenn sowohl die App, deren Audio aufgenommen wird, als auch die App, die die Aufnahme durchführt, bestimmte Anforderungen erfüllen. Hier ist eine Zusammenfassung dieser Anforderungen:
- Damit der Ton einer App von einer Drittanbieter-App erfasst werden kann, müssen die folgenden Anforderungen erfüllt sein:
- Für die App muss „allowAudioPlaybackCapture“ in ihrem Manifest entweder auf „true“ gesetzt oder nicht gesetzt sein. (Der Standardwert ist „true“ für Apps, die auf Android Q ausgerichtet sind, kann aber für Apps, die auf Android Pie ausgerichtet sind, manuell festgelegt werden.)
- Die Audionutzung der App, die Audio produziert, muss vom Typ USAGE_MEDIA, USAGE_GAME oder USAGE_UNKNOWN sein.
- Die Audioaufnahmerichtlinie (setAllowedCapturePolicy) muss auf ALLOW_CAPTURE_BY_ALL gesetzt sein. Diese Richtlinie kann zur Laufzeit festgelegt werden, die Wiedergabe muss jedoch neu gestartet werden, damit die Richtlinienänderung wirksam wird. Wenn ALLOW_CAPTURE_BY_SYSTEM festgelegt ist, können nur System-Apps den Ton aufzeichnen (sind jedoch eingeschränkt). dass sie das Audio nicht speichern, an eine Drittanbieter-App weitergeben oder mit > 16 kHz 16-Bit-Mono aufnehmen können Qualität.)
- Damit eine App Audio von einer anderen App aufzeichnen kann, müssen die folgenden Anforderungen erfüllt sein:
- Die App muss die Eingabeaufforderung „MediaProjectionManager.createScreenCaptureIntent“ aufrufen und der Benutzer muss sie akzeptieren.
- Die App muss das halten TON AUFNEHMEN Erlaubnis.
- Die App muss sich im selben Benutzerprofil befinden wie die App, deren Audio aufgezeichnet wird.
- Die App muss die Eingabeaufforderung „MediaProjectionManager.createScreenCaptureIntent“ aufrufen und der Benutzer muss sie akzeptieren.
Ich kann mir vorstellen, dass die meisten Spiele die Audioaufnahme durch Apps mit dieser neuen API ermöglichen, aber es kann einige Zeit dauern, bis die Spiele aktualisiert werden, um dies zu unterstützen. Erwarten Sie andererseits aufgrund von Lizenzproblemen nicht, dass Musik- oder Video-Streaming-Apps diese API für Drittanbieter unterstützen. Allerdings bedeuten die Einschränkungen, die Google auferlegt hat, wenn eine App ihre Audioaufnahmerichtlinie auf ALLOW_CAPTURE_BY_SYSTEM setzt, dies Entwickler von Musik- und Video-Streaming-Apps sollten damit einverstanden sein, die Audioaufnahme durch das System zu aktivieren, um die Barrierefreiheit zu verbessern.
Weitere Informationen zur AudioPlaybackCapture-API in Android Q finden Sie unter diese Seite.
Überwachung der Drosselung mit Thermal API in Android Q
Die thermische Drosselung wird fast vollständig vom System verwaltet, ohne dass die Apps, die am stärksten von der Drosselung betroffen sind, Eingaben oder gar Benachrichtigungen erhalten. Wenn die Ressourcen des Geräts zu stark beansprucht werden, drosseln die meisten Geräte die CPU- und GPU-Geschwindigkeit, was sich nachteilig auf die Leistung Ihres Spiels auswirkt. Als Spieleentwickler können Sie eigentlich nichts dagegen tun, außer den Benutzer zu warnen, bevor er Einstellungen ändert, und zwar über die möglichen Auswirkungen, die seine Änderungen auf die Leistung haben könnten.
Mit der neuen Thermal-API in Android Q können Apps jedoch Rückrufe für verschiedene Stufen der Leistungsdrosselung erhalten Entwickler haben die Möglichkeit, die Belastung des Geräts zu verringern, indem sie Aktivitäten einschränken, die viel CPU, GPU oder Modem erfordern Verwendung. Beispielsweise könnte ein Spiel die Auflösung dynamisch reduzieren, bis das Gerät keine GPU-Drosselung mehr durchführt, oder eine Karten-App könnte erweiterte Funktionen wie deaktivieren Augmented-Reality-Navigation um die Belastung der CPU zu reduzieren.
Um diese neue API zu verwenden, registrieren Apps einen Listener in PowerManager (addThermalStatusListener) und das System sendet der App einen der folgenden thermischen Statuscodes:
- THERMAL_STATUS_NONE: „Nicht unter Drosselung.“
- THERMAL_STATUS_LIGHT: „Leichte Drosselung, bei der UX nicht beeinträchtigt wird.“
- THERMAL_STATUS_MODERATE: „Mäßige Drosselung, bei der UX nicht stark beeinträchtigt wird.“
- THERMAL_STATUS_SEVERE: „Starke Drosselung, bei der UX stark beeinträchtigt ist.“
- THERMAL_STATUS_CRITICAL: „Die Plattform hat alles getan, um den Stromverbrauch zu reduzieren.“
- THERMAL_STATUS_EMERGENCY: „Wichtige Komponenten der Plattform werden aufgrund des thermischen Zustands heruntergefahren. Die Gerätefunktionen werden eingeschränkt sein.“
- THERMAL_STATUS_SHUTDOWN: „Muss sofort heruntergefahren werden.
Für die Unterstützung der Thermal API ist natürlich Android Q erforderlich, aber eine weitere Voraussetzung ist die Hinzufügung eines neuen HAL. Google sagt, dass die Pixel-Geräte auf Android Q (gemeint sind Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL, Pixel 3a, Und Pixel 3a XL) unterstützen die Thermal API, aber Google arbeitet daran, Unterstützung für andere Geräte hinzuzufügen.
Lesen Sie mehr über die Thermal API hier.