Az Android Q új API-t ad egy másik alkalmazás belső hangkimenetének rögzítéséhez, valamint az eszköz hőmérsékletének figyeléséhez.
A Google ad, a Google elvesz. Minden új Android-kiadás sok új API-t vezet be, amelyek vagy javítják a meglévő alkalmazások funkcionalitását, vagy új alkalmazáskategóriákat nyitnak meg. Másrészt a Google megszünteti a hozzáférést vagy korlátozza a meglévő API-k képességeit, hogy javítsa az Android platform biztonságát. Az Android Q kiadása sem más, és már sokat beszéltünk a megosztott tárhely, a vágólap-hozzáférés, az értesítések és más API-k változásairól. Az idei évben A Google I/O fejlesztői konferencián a Google új API-kat jelentett be Android Q-ban, amelyek különösen érdekesek a felhasználók és a mobiljáték-fejlesztők számára: az AudioPlaybackCapture és Thermal API-k.
Hangfelvétel más alkalmazásokból az AudioPlaybackCapture segítségével Android Q rendszerben
A mobiljáték egy hatalmas iparág, amelynél nincsenek jelei a lassulásnak, különösen az olyan piacokon, mint az Egyesült Államok, Kína és India. Mivel egyre többen töltenek időt okostelefonjukkal játékra és közösségi médiára, nem meglepő, hogy az emberek online szeretnék megosztani játékélményeiket.
Az Android alapvetően a kezdetektől támogatja a képernyőképek készítését, de a képernyőről készült videókat csak az Android 5.0 Lollipop óta támogatja a MediaProjection API. Sajnos ez az API nem teszi lehetővé a harmadik féltől származó alkalmazások számára, hogy rögzítsék a belső hangkimenetet más alkalmazásokban, arra kényszerítve a harmadik féltől származó képernyőfelvevőket, hogy rögzítsék a külső hangkimenetet az eszköz mikrofonjáról (s). OEM-ek, mint a Samsung és Huawei rendszeralkalmazásokat biztosít a belső hangkimenet rögzítésére képernyőrögzítés közben, de ez az egyetlen módja más eszközök tulajdonosai számára, hogy megfelelően rögzítsék a videó- és hangkimenetet eszközeikről, meg kell vásárolniuk a harmadik féltől származó tartozék. Szerencsére a Google végre bevezet egy módszert az Android Q-ban a harmadik féltől származó alkalmazások számára, hogy más alkalmazások hangját rögzítsék.
Az AudioPlaybackCapture API-t a Google a képernyőrögzítés analógjaként írja le, de hangrögzítésre. Bár eddig az egyetlen alkalmazás, amely az API-t használja, a Googleé Élő feliratozás, egy kisegítő eszköz, amely feliratokat ad az eszközön lejátszott bármely videóhoz, az API-hoz dokumentáció szerint az elsődleges célja, hogy lehetővé tegye a streaming alkalmazások számára, hogy rögzítsék a hangot játékokkal játszanak. Gondoljon arra, hogy a mobiljátékosok olyan szolgáltatásokra közvetítik a munkameneteiket, mint a Twitch vagy a YouTube. Az API-t úgy tervezték, hogy ne befolyásolja annak az alkalmazásnak a hang késését, amelynek hangját rögzítik, így tökéletes a játékmenet rögzítésére, így a hang és a kép nem szinkronizálódik.
Az Android korai napjaitól eltérően a Google óvatosabb az új API-kkal kapcsolatban. Az AudioPlaybackCapture csak akkor használható, ha mind az alkalmazás, amelynek hangját rögzíti, mind a rögzítést végző alkalmazás megfelel bizonyos követelményeknek. Íme ezeknek a követelményeknek az összefoglalása:
- Ahhoz, hogy egy alkalmazás hangját egy harmadik féltől származó alkalmazás rögzítse, a következő követelményeknek kell megfelelniük:
- Az alkalmazás Manifestjében az allowAudioPlaybackCapture-t igaz értékre vagy hatástalanított értékre kell állítani. (Alapértelmezés szerint igaz az Android Q-t célzó alkalmazásokhoz, de manuálisan beállítható az Android Pie-t célzó alkalmazásokhoz.)
- A hangot előállító alkalmazásnak USAGE_MEDIA, USAGE_GAME vagy USAGE_UNKNOWN típusú hanghasználatnak kell lennie.
- A hangrögzítési házirendet (setAllowedCapturePolicy) ALLOW_CAPTURE_BY_ALL értékre kell állítani. Ez a házirend futás közben beállítható, de a lejátszást újra kell indítani, hogy a házirend-módosítás érvénybe lépjen. Ha az ALLOW_CAPTURE_BY_SYSTEM be van állítva, akkor csak a rendszeralkalmazások rögzíthetik a hangot (de korlátozott hogy nem tudják menteni a hangot, átadni egy harmadik féltől származó alkalmazásnak, vagy 16 kHz-nél nagyobb 16 bites monó felvételt készíteni minőség.)
- Ahhoz, hogy egy alkalmazás hangot rögzítsen egy másik alkalmazásból, a következő követelményeknek kell megfelelniük:
- Az alkalmazásnak elő kell állítania a MediaProjectionManager.createScreenCaptureIntent promptot, és a felhasználónak el kell fogadnia azt.
- Az alkalmazásnak tartania kell a HANG RÖGZÍTÉSE engedély.
- Az alkalmazásnak ugyanabban a felhasználói profilban kell lennie, mint annak az alkalmazásnak, amelynek hangját rögzíteni fogják.
- Az alkalmazásnak elő kell állítania a MediaProjectionManager.createScreenCaptureIntent promptot, és a felhasználónak el kell fogadnia azt.
Azt képzelném, hogy a legtöbb játék lehetővé teszi a hangfelvételek rögzítését az új API-t használó alkalmazások számára, de eltarthat egy ideig, amíg a játékok frissítésre kerülnek, hogy támogassák azt. Másrészt ne számítson arra, hogy a zenei vagy videostreamelő alkalmazások támogassák ezt az API-t harmadik felek számára a licencelési problémák miatt. Azonban a Google által meghatározott korlátozások, ha egy alkalmazás hangrögzítési szabályzatát ALLOW_CAPTURE_BY_SYSTEM értékre állítja, azt jelenti, hogy a zene- és videostreamelő alkalmazások fejlesztőinek meg kell engedniük a hangrögzítést a rendszer által a hozzáférhetőség javítása érdekében.
Ha többet szeretne megtudni az AudioPlaybackCapture API-ról Android Q rendszerben, tekintse meg a webhelyet ez az oldal.
Fojtás figyelése Thermal API-val az Android Q rendszerben
A hőszabályozást szinte teljes egészében a rendszer kezeli anélkül, hogy a fojtás által leginkább érintett alkalmazásoktól bemeneti adatot vagy értesítést kapna. Ha az eszköz erőforrásai túlságosan megterheltek, a legtöbb eszköz lefojtja a CPU és a GPU sebességét a játék teljesítményének rovására. Ön, mint játékfejlesztő, nem tehet mást, csak figyelmezteti a felhasználót, mielőtt bármilyen beállítást módosítana, hogy változtatásaik milyen hatással lehetnek a teljesítményre.
Az Android Q új Thermal API-jával azonban az alkalmazások visszahívásokat fogadhatnak a teljesítményszabályozás különböző szakaszaihoz – így a fejlesztők lehetőséget adnak arra, hogy csökkentsék az eszköz terhelését azáltal, hogy visszaszorítják azokat a tevékenységeket, amelyek jelentős CPU-t, GPU-t vagy modemet igényelnek használat. Például egy játék dinamikusan csökkentheti a felbontást mindaddig, amíg az eszköz már nem szabályozza a GPU-t, vagy egy Maps alkalmazás letilthatja a továbbfejlesztett funkciókat, mint pl. kiterjesztett valóság navigáció hogy csökkentse a CPU terhelését.
Az új API használatához az alkalmazások regisztrálnak egy figyelőt a PowerManagerben (addThermalStatusListener), és a rendszer elküldi az alkalmazásnak a következő termikus állapotkódok egyikét:
- THERMAL_STATUS_NONE: "Nincs szabályozás alatt."
- THERMAL_STATUS_LIGHT: "Könnyű szabályozás, ahol az UX nincs hatással."
- THERMAL_STATUS_MODERATE: "Mérsékelt szabályozás, ahol az UX nincs nagymértékben befolyásolva."
- THERMAL_STATUS_SEVERE: "Súlyos szabályozás, ahol az UX nagymértékben érintett."
- THERMAL_STATUS_CRITICAL: "A platform mindent megtett az energia csökkentése érdekében."
- THERMAL_STATUS_EMERGENCY: "A platform kulcsfontosságú alkatrészei leállnak a hőviszonyok miatt. Az eszköz funkciói korlátozottak lesznek."
- THERMAL_STATUS_SHUTDOWN: "Azonnal le kell kapcsolni.
A Thermal API támogatásához nyilvánvalóan Android Q szükséges, de egy másik követelmény egy új HAL hozzáadása. A Google azt mondja, hogy az Android Q rendszeren futó Pixel eszközök (a Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL, Pixel 3a, és Pixel 3a XL) támogatja a Thermal API-t, de a Google azon dolgozik, hogy további eszközöket is támogasson.
Olvasson többet a Thermal API itt.