Android Q, uygulamaların diğer uygulamalardan ses kaydetmesine ve cihaz sıcaklığını izlemesine olanak tanıyacak

Android Q, başka bir uygulamadan dahili ses çıkışını kaydetmek ve ayrıca cihazın sıcaklığını izlemek için yeni bir API ekler.

Google verir, Google alır. Her yeni Android sürümü, mevcut uygulamaların işlevselliğini artıran veya yeni uygulama kategorileri açan birçok yeni API sunar. Öte yandan Google, Android platformunun güvenliğini artırmak için mevcut API'lere erişimi de kaldırıyor veya mevcut API'lerin yeteneklerini kısıtlıyor. Android Q sürümü de farklı değil ve paylaşılan depolama alanı, pano erişimi, bildirimler ve diğer API'lerdeki değişiklikler hakkında zaten çok konuştuk. Bu yıl Google I/O geliştirici konferansında Google, Android Q'da kullanıcılar ve mobil oyun geliştiricileri için özellikle ilgi çekici olan yeni API'leri duyurdu: AudioPlaybackCapture ve Termal API'ler.

Android Q'da AudioPlaybackCapture ile Diğer Uygulamalardan Sesi Kaydetme

Mobil oyun, özellikle ABD, Çin ve Hindistan gibi pazarlarda yakın zamanda yavaşlama belirtisi göstermeyen devasa bir sektör. Oyun oynamak ve sosyal medya için akıllı telefonlarında vakit geçiren insanların sayısı arttıkça, insanların oyun deneyimlerini çevrimiçi paylaşmak istemeleri şaşırtıcı değil.

Android, temel olarak en başından beri ekran görüntüsü almayı desteklemektedir, ancak ekranın videolarını yakalamak yalnızca Android 5.0 Lollipop'un piyasaya sürülmesinden bu yana desteklenmektedir. MedyaProjeksiyon API'si. Ne yazık ki bu API, üçüncü taraf uygulamaların diğer uygulamalardaki dahili ses çıkışını kaydetmesine izin vermiyor. üçüncü taraf ekran kayıt cihazlarını cihazın mikrofonundan harici ses çıkışı kaydetmeye zorlama (S). Samsung gibi OEM'ler ve Huawei ekran kaydı sırasında dahili ses çıkışını kaydetmek için sistem uygulamaları sağlayın, ancak bunun tek yolu Diğer cihaz sahiplerinin, cihazlarından video ve ses çıkışını düzgün bir şekilde kaydetmeleri için satın alma A üçüncü taraf aksesuarı. Neyse ki Google nihayet Android Q'da üçüncü taraf uygulamaların diğer uygulamalardan ses kaydetmesine olanak tanıyan bir yol sunuyor.

AudioPlaybackCapture API, Google tarafından ekran yakalamanın benzeri olarak tanımlanır, ancak ses kaydına yöneliktir. Şu ana kadar API'yi kullanan tek uygulama Google'ın Canlı AltyazıCihazda oynatılan herhangi bir videoya altyazı ekleyen bir erişilebilirlik aracı olan API'nin belgeler, birincil amacının akış uygulamalarının ses aktarımını yakalamasına izin vermek olduğunu belirtiyor oyunlarla oynanır. Mobil oyuncuların oturumlarını Twitch veya YouTube gibi hizmetlere aktardığını düşünün. API, sesi kaydedilen uygulamanın ses gecikmesini etkilemeyecek şekilde tasarlanmıştır; bu da onu oyun kaydı için mükemmel kılar, böylece ses ve videonun senkronizasyonu bozulmaz.

Android'in ilk günlerinden farklı olarak Google'ın yeni API'lere yaklaşımı daha temkinli. AudioPlaybackCapture yalnızca sesi yakalanan uygulamanın ve yakalamayı yapan uygulamanın belirli gereksinimleri karşılaması durumunda kullanılabilir. İşte bu gereksinimlerin bir özeti:

  • Bir uygulamanın sesinin üçüncü taraf bir uygulama tarafından yakalanması için aşağıdaki gereksinimlerin karşılanması gerekir:
    • Uygulamanın Manifest dosyasında AllowAudioPlaybackCapture'ın doğru olarak ayarlanmış veya ayarlanmamış olması gerekir. (Android Q'yu hedefleyen uygulamalar için varsayılan olarak true'dur ancak Android Pie'ı hedefleyen uygulamalar için manuel olarak ayarlanabilir.)
    • Ses üreten uygulamanın ses kullanımı USAGE_MEDIA, USAGE_GAME veya USAGE_UNKNOWN türünde olmalıdır.
    • Ses yakalama politikası (setAllowedCapturePolicy) ALLOW_CAPTURE_BY_ALL olarak ayarlanmalıdır. Bu politika çalışma zamanında ayarlanabilir ancak politika değişikliğinin etkili olması için oynatmanın yeniden başlatılması gerekir. ALLOW_CAPTURE_BY_SYSTEM ayarlanırsa yalnızca sistem uygulamaları sesi kaydedebilir (ancak sesi kaydedemediklerini, üçüncü taraf bir uygulamaya aktaramadıklarını veya > 16 kHz 16 bit mono hızında kayıt yapamadıklarını kalite.)
  • Bir uygulamanın başka bir uygulamadan ses kaydetmesi için aşağıdaki gereksinimlerin karşılanması gerekir:
    • Uygulama, MediaProjectionManager.createScreenCaptureIntent istemini getirmeli ve kullanıcının bunu kabul etmesi gerekir.
      Bir uygulama MediaProjection API'yi kullanarak ekranı yakalamaya çalıştığında kullanıcıların gördüğü onay iletişim kutusu.
    • Uygulamanın tutması gerekir SES KAYDI izin.
    • Uygulama, sesi kaydedilecek uygulamayla aynı kullanıcı profilinde olmalıdır.

Çoğu oyunun, seslerinin bu yeni API'yi kullanan uygulamalar tarafından yakalanmasına izin vereceğini tahmin ediyorum, ancak oyunların bunu destekleyecek şekilde güncellenmesi biraz zaman alabilir. Öte yandan, lisanslama sorunları nedeniyle hiçbir müzik veya video akışı uygulamasının üçüncü taraflar için bu API'yi desteklemesini beklemeyin. Ancak bir uygulamanın ses yakalama politikasını ALLOW_CAPTURE_BY_SYSTEM olarak ayarlaması durumunda Google'ın uyguladığı sınırlamalar şu anlama gelir: müzik ve video akışı uygulamalarının geliştiricileri, erişilebilirliği artırmak için sistem tarafından ses yakalamanın etkinleştirilmesine izin vermelidir.

Android Q'daki AudioPlaybackCapture API'si hakkında daha fazla bilgi edinmek için şu adrese göz atın: bu sayfa.

Android Q'da Termal API ile Kısıtlamayı İzleme

Termal kısıtlama, kısıtlamadan en çok etkilenen uygulamalardan herhangi bir giriş yapılmadan ve hatta bu uygulamalara bildirim yapılmadan neredeyse tamamen sistem tarafından yönetilir. Cihazın kaynakları çok gerginse çoğu cihaz CPU ve GPU hızlarını oyun performansınıza zarar verecek şekilde azaltır. Bir oyun geliştiricisi olarak sizin, herhangi bir ayarı değiştirmeden önce, değişikliklerin performans üzerinde yaratabileceği potansiyel etki konusunda kullanıcıyı uyarmak dışında bu konuda gerçekten yapabileceğiniz hiçbir şey yoktur.

Ancak Android Q'daki yeni Termal API ile uygulamalar, performans azaltmanın farklı aşamaları için geri çağrılar alabilir. geliştiricilere önemli miktarda CPU, GPU veya modem gerektiren etkinlikleri azaltarak cihaz üzerindeki yükün azaltılmasına yardımcı olma şansı kullanım. Örneğin, bir oyun, cihaz GPU kısıtlaması sona erene kadar çözünürlüğü dinamik olarak azaltabilir veya bir Harita uygulaması, aşağıdaki gibi gelişmiş özellikleri devre dışı bırakabilir: artırılmış gerçeklik navigasyonu CPU üzerindeki yükü azaltmak için.

Bu yeni API'yi kullanmak için uygulamalar PowerManager'da (addThermalStatusListener) bir dinleyici kaydeder ve sistem uygulamaya aşağıdaki termal durum kodlarından birini gönderir:

  • THERMAL_STATUS_NONE: "Kısıtlama altında değil."
  • THERMAL_STATUS_LIGHT: "Kullanıcı deneyiminin etkilenmediği durumlarda ışık kısılması."
  • THERMAL_STATUS_MODERATE: "Kullanıcı deneyiminin büyük ölçüde etkilenmediği durumlarda orta düzeyde kısıtlama."
  • THERMAL_STATUS_SEVERE: "Kullanıcı deneyiminin büyük ölçüde etkilendiği ciddi kısıtlama."
  • THERMAL_STATUS_CRITICAL: "Platform gücü azaltmak için her şeyi yaptı."
  • THERMAL_STATUS_EMERGENCY: "Platformdaki ana bileşenler termal durum nedeniyle kapanıyor. Cihaz işlevleri sınırlı olacaktır."
  • THERMAL_STATUS_SHUTDOWN: "Hemen kapatılması gerekiyor.

Termal API desteği elbette Android Q gerektirir, ancak başka bir gereksinim de yeni bir HAL'ın eklenmesidir. Google, Android Q'daki Pixel cihazlarının (Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL anlamına gelir) olduğunu söylüyor. Piksel 3a, Ve Piksel 3a XL) Termal API'yi destekliyor ancak Google diğer cihazlar için de destek eklemeye çalışıyor.

Hakkında daha fazlasını okuyun Termal API burada.