Die Veröffentlichung der mobilen Plattform Android 17

Google hat das Release der offenen mobilen Plattform Android 17 veröffentlicht. Die zu diesem neuen Release gehörenden Quelltexte sind im Git-Repository des Projekts (Branch android-17.0.0_r1) verfügbar. Die Firmware-Builds wurden für die Geräte Pixel 6/6a/6 Pro, Pixel 7/7a/7 Pro, Pixel 8/8a/8 Pro, Pixel 9/9a/9 Pro/9 Pro XL/9 Pro Fold, Pixel 10/10 Pro/10 Pro XL/10 Pro Fold, Pixel Fold und Pixel Tablet vorbereitet. Vorab-Builds der Firmware stehen für Geräte von HONOR, iQOO, Lenovo, OnePlus, OPPO, realme, Sharp, vivo und Xiaomi zur Verfügung. Im Laufe der Entwicklung werden universelle GSI-Builds (Generic System Images) erstellt, die für verschiedene Geräte auf ARM64- und x86_64-Architekturen geeignet sind.

Unter den Änderungen (1, 2, 3):

  • Ein neuer Multi-Window-Modus namens „Bubbles“ wurde hinzugefügt, der es ermöglicht, beliebige Anwendungen in schwebenden Fenstern zu starten, die an die oben liegenden Benachrichtigungen für das Versenden von Nachrichten („Blasen“) erinnern, aber nicht an eine spezielle API gebunden sind. Das Öffnen einer Anwendung in einem schwebenden Fenster erfolgt durch langes Drücken des App-Symbols. Auf großen Bildschirmen werden die Symbole der schwebenden Fenster in einem separaten Bereich auf der Taskleiste angezeigt. Solche Fenster können gruppiert, verschoben und auf dem Bildschirm fixiert werden.

  • Die Weiterentwicklung der Plattform für Geräte mit großen Bildschirmen wie Tablets, Laptops, Desktop-Systemen und Smartphones mit faltbaren Bildschirmen wurde fortgesetzt. Die zuvor gültigen Optionen zum Deaktivieren des neuen Verhaltens auf Geräten mit Bildschirmen von mehr als 600 dp wurden entfernt, die mit dem Ignorieren bestimmter APIs zur Steuerung von Größenänderungen und Ausrichtungen (screenOrientation, resizeableActivity, [min|max]AspectRatio) sowie dem adaptiven Platzieren von Anwendungen in fensterbasierten, anpassbaren Größen und der Möglichkeit zum Verschieben auf dem Bildschirm zusammenhängen.

  • Die systemweite EyeDropper API wurde hinzugefügt, die es der Anwendung ermöglicht, Informationen über die Farbe eines beliebigen Pixels auf dem Bildschirm zu erhalten, ohne die Berechtigung zur Bildschirmaufnahme einzuholen. Die Sicherheit wird gewährleistet, da der Benutzer selbst den Bereich zur Farbbestimmung über eine von der Plattform bereitgestellte Benutzeroberfläche mit der 'Pipette' auswählt, die nicht von der Anwendung kontrolliert wird, d.h. die Anwendung kann keine Informationen über ein bestimmtes Pixel anfordern und pixelgenau den Bildschirminhalt rekonstruieren.

  • Eine Systemoberfläche zur Auswahl eines Kontakts aus dem Adressbuch wurde hinzugefügt, die beim Erhalt der Berechtigung ACTION_PICK_CONTACTS zugänglich ist. Diese Oberfläche ermöglicht die Nutzung ohne die Berechtigung READ_CONTACTS, die das Lesen aller Kontaktdaten erlaubt. Bei der Verwendung der neuen Oberfläche entscheidet der Benutzer, welche Informationen aus dem Adressbuch an die Anwendung weitergegeben werden, wobei nur bestimmte Felder ausgewählt werden können.

  • Der API PhotoPickerUiCustomizationParams wurde hinzugefügt, um die Benutzeroberfläche zur Auswahl von Fotos zu verändern, sodass sie dem Stil der aufrufenden Anwendung näher kommt. So kann beispielsweise das Seitenverhältnis der Fotovorschauen von 1:1 (quadratisch) auf 9:16 (Hochformat) geändert werden.

  • Die Berechtigung USE_LOCATION_BUTTON wurde hinzugefügt, um eine Systemtaste für den Zugriff auf präzise Standortdaten in die Benutzeroberfläche der Anwendung einzubauen. Die Taste wird vom System gezeichnet und öffnet nach dem Drücken durch den Benutzer den Zugriff auf den Standort nur für die Dauer der aktuellen Sitzung.

  • Eine Einstellung hinzugefügt, die das Anzeigen von Anwendungsnamen unter deren Icons entfernt.
  • Das Design der Werkzeugleiste für die Aufnahme von Screencasts wurde geändert.

  • Unterstützung für Bildschirmreaktionen (Screen Reactions) hinzugefügt, die die Videoaufnahme von der Vorderkamera mit der Erstellung eines Screencasts kombinieren, um persönliche Kommentare zu den Aktionen auf dem Bildschirm einfügen zu können.

  • Ein Modus für Spiele auf Geräten mit faltbaren Bildschirmen wurde hinzugefügt, bei dem eine Hälfte des faltbaren Bildschirms zur Anzeige des Gameplays und die andere für einen virtuellen Controller verwendet wird.

  • Die Handoff-API wurde hinzugefügt, die es ermöglicht, den Status der Anwendung auf ein benachbartes Android-Gerät (z. B. ein Tablet) zu übertragen und dort weiterzuarbeiten.

  • Interaktive, angeheftete Fenster wurden implementiert, die im Gegensatz zu traditionellen Fenstern im Picture-in-Picture-Modus auch bei Anheftung über anderen Anwendungen im Desktop-Modus interaktiv bleiben.
  • Es wurden zwei neue APIs hinzugefügt: API UWB DL-TDOA – zur Bestimmung der Position eines Geräts innerhalb eines Gebäudes per Wi-Fi für die Navigation in Innenräumen; API zur Näheerkennung zur Erkennung benachbarter Geräte über Wi-Fi.
  • Die Unterstützung des Videoformats VVC (Versatile Video Coding), auch bekannt als der Video-Kompressionsstandard H.266, wurde hinzugefügt. Dieser wurde gemeinsam von den Arbeitsgruppen MPEG (ISO/IEC JTC 1) und VCEG (ITU-T) entwickelt, mit Beiträgen von Unternehmen wie Apple, Ericsson, Intel, Huawei, Microsoft, Qualcomm und Sony. H.266 ersetzt H.265 (HEVC) und bietet eine hohe Effizienz bei der Übertragung und Speicherung aller Bildschirmauflösungen, von SD und HD bis hin zu 4K und 8K. Es unterstützt Videos mit erweitertem dynamischen Bereich (HDR, High Dynamic Range) sowie 360-Grad-Panorama-Videos.
  • Die Möglichkeit, Videos mit konstantem Qualitätsniveau aufzunehmen, wurde hinzugefügt. Der Modus wird im MediaRecorder-Objekt konfiguriert, indem die Methode setVideoEncodingQuality() verwendet wird, die es ermöglicht, die Qualitätsstufe ohne Bezug auf die Bitrate festzulegen.
  • Unterstützung für das RAW14-Bildformat hinzugefügt, das in professionellen Digitalkameras verwendet wird und die Speicherung von 15 Bit pro Farbkanal ermöglicht.
  • Unterstützung für das HDR-Videoformat Eclipsa Video hinzugefügt.
  • Ein Software-Codec für das Audioformat HE-AAC (High-Efficiency Advanced Audio Coding) wurde hinzugefügt, der sowohl niedrige als auch hohe Bitraten unterstützt.
  • Eine neue Berechtigung ACCESS_LOCAL_NETWORK wurde hinzugefügt, um den Zugriff von Anwendungen auf das lokale Netzwerk einzuschränken. Mit dieser Berechtigung können Anwendungen Geräte im lokalen Netzwerk erkennen und verbinden, wie zum Beispiel Smart-Home-Geräte und Multimedia-Systeme. Diese Berechtigung wurde hinzugefügt, um das Scannen von Ressourcen im lokalen Netzwerk durch schädliche Anwendungen zu blockieren, beispielsweise zur geheimen Identifizierung der Umgebung des Nutzers.
  • Der Schutz vor dem Abfangen von Einmalpasswörtern (OTP) und Bestätigungscodes, die per SMS gesendet werden, wurde erweitert. Der direkte Zugriff auf solche Nachrichten wird jetzt für die meisten Anwendungen erst drei Stunden nach dem Erhalt der Nachricht geöffnet. In der standardmäßigen SMS-Leseanwendung werden solche Nachrichten sofort angezeigt.
  • Schutz vor Anrufen von Betrügern implementiert, die sich als Bankmitarbeiter ausgeben. Die Plattform kann mit installierten Bankanwendungen interagieren, um zu bestätigen, dass der Anruf von der Bank initiiert wurde. Außerdem können Banken Telefonnummern festlegen, bei denen nur eingehende Anrufe zulässig sind.
  • Die Möglichkeit hinzugefügt, Anwendungen temporären Zugriff auf Daten über den genauen Standort zu gewähren, der nur während der aktuellen Sitzung mit dem Programm gültig ist.
  • Der Mechanismus zum Schutz des dynamischen Codes (DCL, Dynamic Code Loading) wurde erweitert, um auch mit nativen Bibliotheken, die über die Methode System.load() geladen werden, zu arbeiten, und nicht nur mit Dateien in den Formaten DEX und JAR.
    DCL ermöglicht es, die Einspeisung von schädlichem Code in dynamisch geladene ausführbare Dateien zu verhindern, indem Zugriffsrechte für solche Dateien gesetzt werden, die nur Lesezugriff erlauben.
  • Der Mechanismus zur Zertifikatstransparenz ist standardmäßig aktiviert und führt ein öffentliches Protokoll aller ausgestellten und widerrufenen Zertifikate.
  • Es wurde die Möglichkeit geschaffen, APK-Pakete mit einer digitalen Signatur zu versehen, die auf einem hybriden Algorithmus basiert und den klassischen Algorithmus mit dem quantensicheren ML-DSA-Algorithmus kombiniert.
  • Für Anwendungen, die im Hintergrund laufen, wurde der Zugriff auf die API zum Abspielen von Audio, zur Verbindung mit Audiogeräten und zur Änderung der Lautstärke eingeschränkt. Es wird davon ausgegangen, dass nur aktive Anwendungen, mit denen der Benutzer gerade interagiert, die Wiedergabe starten und die Lautstärke ändern dürfen.
  • Die Unterstützung für hybride Verschlüsselung basierend auf dem HPKE-Mechanismus (Hybrid Public Key Encryption, RFC 9180) wurde hinzugefügt, der die einfache Schlüsselübergabe in der Public-Key-Verschlüsselung mit der hohen Leistung der symmetrischen Verschlüsselung kombiniert (Daten werden mit einem schnellen symmetrischen Schlüssel verschlüsselt, während der Schlüssel selbst mit einem langsamen asymmetrischen Verfahren verschlüsselt wird).
  • Beim Eingeben von Passwörtern und PIN-Codes über eine physische Tastatur ist standardmäßig die Anzeige des zuletzt eingegebenen Zeichens während der Eingabe deaktiviert.
  • Um die Unterstützung von Touchpads in Spielen zu vereinfachen, wurde die Verarbeitung von Ereignissen von Maus und Touchpad vereinheitlicht – standardmäßig werden Touchpad-Ereignisse, die mit der Zeigerbewegung und Scroll-Gesten verbunden sind, jetzt in ein Format mit relativen Koordinaten umgewandelt, wie es auch für die Maus der Fall ist. Der Zugriff auf absolute Koordinaten erfolgt durch die explizite Angabe des Modus POINTER_CAPTURE_MODE_ABSOLUTE.
  • In das Objekt ChooserSession wurde die Methode getInitialRestingBounds() hinzugefügt, die es ermöglicht, die endgültige Position und Größe des Auswahldialogs (Chooser) nach Abschluss der Animation und dem Laden der Daten zu ermitteln.
  • Es wurden die Methoden getStreamingAppMaxDownlinkKbps und getStreamingAppMaxUplinkKbps hinzugefügt, um die maximale Bandbreite der Kommunikationskanäle zu bestimmen, um die Qualitätsebene beim Streaming auszuwählen.
  • Herstellern von Hardware wurde ein API zur Verfügung gestellt, um Erweiterungen für Kameras zu erstellen, die es ermöglichen, spezifische Funktionen in Anwendungen zu nutzen, wie z.B. den Super-Resolution-Detaillierungsmechanismus, Rauschunterdrückungsmodi und KI-Optimierer für die Qualität.
  • Ein API wurde hinzugefügt, um Informationen über den Kameratyp zu erhalten (eingebaute Kamera, über USB angeschlossene Webcam oder virtuelle Kamera).
  • Die Unterstützung für Hörgeräte, die über das Bluetooth Low Energy (BLE)-Interface angeschlossen werden, wurde hinzugefügt. Solche Geräte gehören zur neuen Kategorie TYPE_BLE_HEARING_AID, was es Anwendungen ermöglicht, Hörgeräte und Kopfhörer zu trennen und die Wiedergabe von Systemklängen separat zu steuern (zum Beispiel können Benachrichtigungs- und Anrufgeräusche sowie Alarmtöne über den integrierten Lautsprecher des Telefons und nicht über das Hörgerät ausgegeben werden).
  • Getrennte Einstellungen für die Anzeige von Passwörtern, die auf der physischen Tastatur und dem Touchscreen eingegeben werden, wurden hinzugefügt. Standardmäßig werden die Zeichen von Passwörtern, die mit der physischen Tastatur eingegeben werden, sofort verborgen.
  • Die Darstellung von Anwendungs-Widgets auf externen Bildschirmen wurde verbessert, indem die DPI-Differenzen beim Skalieren berücksichtigt werden.
  • Ein ACTION_VPN_APP_EXCLUSION_SETTINGS-Antrag wurde hinzugefügt, mit dem der Systembildschirm für Einstellungen aufgerufen werden kann, die es der Anwendung ermöglichen, Netzwerkzugang zu erhalten, ohne den Tunnel zu durchlaufen. VPN-Tunnel.
  • Die Unterstützung für die in OpenJDK 25 verfügbaren Sprach- und Java-Klasseneigenschaften wurde hinzugefügt.
  • Die Funktionen der Programmierschnittstellen zur Kamerasteuerung wurden erweitert. Die Klasse CameraCaptureSession hat die Methode updateOutputConfigurations() erhalten, die es ermöglicht, Ausgabebereiche dynamisch anzuschließen oder zu trennen, ohne die gesamte Datenerfassungssitzung mit der Kamera neu konfigurieren zu müssen. In der Praxis ermöglicht diese Änderung ein nahtloses Umschalten zwischen verschiedenen Betriebsmodi der Kamera, wie zum Beispiel zwischen Videoaufzeichnung und Fotografie. Bei der Arbeit mit logischen Kameras, die mehrere physische Sensoren abdecken, wurde die Möglichkeit hinzugefügt, Metadaten zu jedem Sensor zu erhalten und nicht nur vom primären Sensor.
  • Das Attribut android:usesCleartextTraffic, das der Anwendung die Übertragung unverschlüsselten Traffics wie etwa über "http://" erlaubte, wurde als veraltet erklärt. Bei Bedarf für unverschlüsselten Traffic sollten separate Dateien mit Sicherheitseinstellungen verwendet werden.
  • Neue Einstellungen zur Verwaltung der VoIP-Anrufhistorie wurden hinzugefügt, die die Speicherung von Informationen in Protokollen und die Anzeige von Informationen über getätigte Anrufe im Interface ermöglichen.
  • Die API Wi-Fi RTT (Round-Trip-Time) wurde erweitert, um eine kontinuierliche Annäherung an die Entfernung zu Zugangspunkten zu ermöglichen und sichere P2P-Verbindungen (Peer-to-Peer) zu ermitteln.
  • Im CompanionDeviceManager wurden neue Profile für die Anforderung von Berechtigungen und die Interaktion von Anwendungen mit medizinischen Geräten und Fitness-Trackern hinzugefügt.
  • Im Android Runtime (ART) wurde ein generationenbasierter Garbage Collector (Generational Concurrent Mark-Compact Garbage Collector) implementiert, der eine separate Verarbeitung von 'alten' und 'jungen' Objekten verwendet. Dies erhöht die Effizienz bei der Bereinigung von kürzlich erstellten Objekten mit kurzer Lebensdauer. Die Anwendung des generationenbasierten Garbage Collectors verringert das Risiko von Pausen während der Ressourcenallokation und senkt die CPU-Belastung, was die Energieeffizienz verbessert.
  • Es wurde eine Begrenzung des maximalen Speichervolumens implementiert, das eine Anwendung beanspruchen kann. Bei Überschreitung des Limits, das auf der verfügbaren RAM-Kapazität des Geräts basiert, wird die Anwendung zwangsweise beendet. Zur Verringerung des Speicherverbrauchs wird der R8 Optimizer angeboten, der Klassennamen, Methoden und Felder packt sowie ungenutzten Code und Ressourcen entfernt.
  • Bei der Erstellung des Linux-Kernels wurde die AutoFDO-Optimierung (Auto-Feedback-Directed Optimization) aktiviert, die Profiling-Daten zur Ausführungsfrequenz verschiedener Codeabschnitte nutzt, um die Leistung häufig ausgeführter Operationen zu verbessern. In durchgeführten Tests führte die Aktivierung von AutoFDO für den Kernel zu einer Verringerung der Bootzeit um 2,1 %, einer Beschleunigung des ersten Programmstarts um 4,3 %, einer Effizienzsteigerung der Systemaufrufe um 9,3 %, einer Verkürzung der Ausführungszeit von mmap-Transaktionen über Binder um 12,3 %, HwBinder um 20 % und Binder RPC um 21,7 %.
  • Eine neue Implementierung der Nachrichtenwarteschlange android.os.MessageQueue wurde vorgestellt, die ohne Blockierungen funktioniert. Diese neue Implementierung verbessert die Leistung und reduziert den Frame-Verlust.
  • Anwendungen, die Unterstützung für Android 17 und neuere Versionen deklarieren, dürfen die Werte von als 'static final' gekennzeichneten Feldern nicht ändern, was aggressivere Leistungsoptimierungen zur Laufzeit ermöglicht.
  • Um den Speicherverbrauch zu reduzieren, ist die Größe der eigenen Layouts für Benachrichtigungsansichten (notification view) begrenzt.
  • Im Profilierungstool ProfilingManager wurden zusätzliche Trigger TRIGGER_TYPE_COLD_START, TRIGGER_TYPE_OOM und TRIGGER_TYPE_KILL_EXCESSIVE_CPU_USAGE hinzugefügt, um Daten zu sammeln, die bei der Fehlersuche von Leistungsproblemen hilfreich sind.

Quelle: opennet.ru

Zuverlässiges Website-Hosting mit DDoS-Schutz, VPS- und VDS-Server 🔥 Zuverlässiges Website-Hosting mit DDoS-Schutz, VPS- und VDS-Server | ProHoster