Android 17 hat heute mit Beta 3 offiziell die Plattformstabilität erreicht. Das bedeutet, dass die API-Oberfläche gesperrt ist. Sie können letzte Kompatibilitätstests durchführen und Ihre für Android 17 entwickelten Apps in den Play Store hochladen. Außerdem bietet Beta 3 eine Reihe neuer Funktionen, mit denen Sie bessere, sicherere und hochintegrierte Anwendungen entwickeln können.
Bereiten Sie Ihre Apps, Bibliotheken, Tools und Spiel-Engines vor.
Wenn Sie ein SDK, eine Bibliothek, ein Tool oder eine Spiel-Engine entwickeln, ist es noch wichtiger, jetzt alle erforderlichen Updates vorzubereiten, damit App- und Spieleentwickler nicht durch Kompatibilitätsprobleme blockiert werden und die neuesten SDK-Funktionen nutzen können. Bitte informieren Sie Ihre Downstream-Entwickler, wenn Updates erforderlich sind, um Android 17 vollständig zu unterstützen.
Beim Testen wird Ihre Produktions-App oder eine Test-App, die Ihre Bibliothek oder Engine verwendet, über Google Play oder auf andere Weise auf einem Gerät oder Emulator mit Android 17 Beta 3 installiert. Sehen Sie sich alle Abläufe Ihrer App an und suchen Sie nach Funktions- oder UI-Problemen. Sehen Sie sich die Verhaltensänderungen an, um Ihre Tests zu optimieren. Jede Android-Version enthält Plattformänderungen, die den Datenschutz, die Sicherheit und die allgemeine Nutzerfreundlichkeit verbessern. Diese Änderungen können sich auf Ihre Apps auswirken. Hier sind einige Änderungen, auf die Sie achten sollten:
- Größenänderung auf großen Displays:Wenn Sie Android 17 als Zielplattform festlegen, können Sie die Einschränkungen für die Ausrichtung, Größenänderung und das Seitenverhältnis auf großen Displays nicht mehr deaktivieren.
- Dynamisches Laden von Code:Wenn Ihre App auf Android 17 oder höher ausgerichtet ist, wird der in Android 14 eingeführte Schutz „Safer Dynamic Code Loading“ (DCL) für DEX- und JAR-Dateien jetzt auf native Bibliotheken ausgeweitet. Alle nativen Dateien, die mit System.load() geladen werden, müssen als schreibgeschützt markiert werden. Andernfalls wird vom System UnsatisfiedLinkError ausgegeben.
- CT standardmäßig aktivieren: Certificate Transparency (CT) ist standardmäßig aktiviert. Unter Android 16 ist CT verfügbar, aber Apps mussten sich dafür anmelden.
- Schutzmaßnahmen für lokale Netzwerke: Bei Apps, die auf Android 17 oder höher ausgerichtet sind, wird der Zugriff auf das lokale Netzwerk standardmäßig blockiert. Wechseln Sie nach Möglichkeit zu datenschutzfreundlichen Auswahltools und verwenden Sie für einen umfassenden, dauerhaften Zugriff die neue Berechtigung ACCESS_LOCAL_NETWORK.
Verbesserungen bei Medien und Kamera
Anpassungsoptionen für die Bildauswahl
Unter Android können Sie jetzt die visuelle Darstellung der Bildauswahl an die Benutzeroberfläche Ihrer App anpassen. Mit der neuen API PhotoPickerUiCustomizationParams können Sie das Seitenverhältnis der Rasteransicht vom Standardquadrat (1:1) in ein Hochformat (9:16) ändern. Diese Flexibilität gilt sowohl für den Intent ACTION_PICK_IMAGES als auch für die eingebettete Bildauswahl. So können Sie ein einheitliches Erscheinungsbild beibehalten, wenn Nutzer mit Medien interagieren.
Dies ist Teil unserer Bemühungen, die datenschutzfreundliche Android-Bildauswahl nahtlos in Ihre App einzubinden. Weitere Informationen zum Einbetten der Bildauswahl direkt in Ihre App
val params = PhotoPickerUiCustomizationParams.Builder()
.setAspectRatio(PhotoPickerUiCustomizationParams.ASPECT_RATIO_PORTRAIT_9_16)
.build()
val intent = Intent(MediaStore.ACTION_PICK_IMAGES).apply {
putExtra(MediaStore.EXTRA_PICK_IMAGES_UI_CUSTOMIZATION_PARAMS, params)
}
startActivityForResult(intent, REQUEST_CODE)Unterstützung für das RAW14-Bildformat : Android 17 bietet über die neue Konstante „ImageFormat.RAW14“ Unterstützung für das RAW14-Bildformat, das in der High-End-Digitalfotografie als De-facto-Industriestandard gilt. RAW14 ist ein Einkanalformat mit 14 Bit pro Pixel, das ein dicht gepacktes Layout verwendet, bei dem jeweils vier aufeinanderfolgende Pixel in sieben Byte gepackt werden.
Herstellerdefinierte Kameraerweiterungen:In Android 17 werden herstellerdefinierte Erweiterungen hinzugefügt, mit denen Hardwarepartner benutzerdefinierte Kameraerweiterungsmodi definieren und implementieren können, um Ihnen Zugriff auf die besten und neuesten Kamerafunktionen wie „Super Resolution“ oder innovative KI-basierte Verbesserungen zu ermöglichen. Sie können diese Modi mit der API „isExtensionSupported(int)“ abfragen.
APIs für Kameragerätetypen:Mit den neuen Android 17-APIs können Sie den zugrunde liegenden Gerätetyp abfragen, um festzustellen, ob es sich bei einer Kamera um integrierte Hardware, eine externe USB-Webcam oder eine virtuelle Kamera handelt.
Unterstützung von Bluetooth LE Audio-Hörgeräten
Android enthält jetzt eine spezielle Geräteklasse für Bluetooth Low Energy (BLE) Audio-Hörgeräte. Durch die Konstante AudioDeviceInfo.TYPE_BLE_HEARING_AID kann Ihre App jetzt Hörgeräte von normalen Headsets unterscheiden.
val audioManager = getSystemService(Context.AUDIO_SERVICE) as AudioManager
val devices = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS)
val isHearingAidConnected = devices.any { it.type == AudioDeviceInfo.TYPE_BLE_HEARING_AID }Detailliertes Audiorouting für Hörgeräte
Unter Android 17 können Nutzer unabhängig voneinander festlegen, wo bestimmte Systemtöne wiedergegeben werden. Sie können festlegen, ob Benachrichtigungen, Klingeltöne und Wecker an verbundene Hörgeräte oder den integrierten Lautsprecher des Geräts weitergeleitet werden sollen.
Erweiterter HE-AAC-Software-Encoder
Mit Android 17 wird ein vom System bereitgestellter Software-Encoder für Extended HE-AAC eingeführt. Dieser Encoder unterstützt sowohl niedrige als auch hohe Bitraten mit einheitlicher Sprach- und Audiocodierung. Sie können über die MediaCodec API mit dem Namen c2.android.xheaac.encoder auf diesen Encoder zugreifen oder nach dem MIME-Typ audio/mp4a-latm suchen.
val encoder = MediaCodec.createByCodecName("c2.android.xheaac.encoder")
val format = MediaFormat.createAudioFormat(MediaFormat.MIMETYPE_AUDIO_AAC, 48000, 1)
format.setInteger(MediaFormat.KEY_BIT_RATE, 24000)
format.setInteger(MediaFormat.KEY_AAC_PROFILE, MediaCodecInfo.CodecProfileLevel.AACObjectXHE)
encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE)Leistungs- und Akkuverbesserungen
Wakelocks mit Listener-Unterstützung für „allow-while-idle“-Weckrufe reduzieren
In Android 17 wird eine neue Variante von AlarmManager.setExactAndAllowWhileIdle eingeführt, die anstelle von PendingIntent einen OnAlarmListener akzeptiert. Dieser neue Callback-basierte Mechanismus ist ideal für Apps, die derzeit auf kontinuierliche Wakelocks angewiesen sind, um regelmäßige Aufgaben auszuführen, z. B. Messaging-Apps, die Socket-Verbindungen aufrechterhalten.
val alarmManager = getSystemService(AlarmManager::class.java)
val listener = AlarmManager.OnAlarmListener {
// Do work here
}
alarmManager.setExactAndAllowWhileIdle(
AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 60000,
listener,
null
)Datenschutz-Updates
Vom System bereitgestellter Button „Standort“
Android führt einen vom System gerenderten Button „Standort“ ein, den Sie mithilfe einer Android Jetpack-Bibliothek direkt in das Layout Ihrer App einbetten können. Wenn ein Nutzer auf diesen Systembutton tippt, erhält Ihre App nur für die aktuelle Sitzung Zugriff auf den genauen Standort. Dazu müssen Sie die Berechtigung USE_LOCATION_BUTTON deklarieren.
Separate Einstellungen für die Passwortsichtbarkeit für Touch- und physische Tastaturen
Mit dieser Funktion wird die vorhandene Systemeinstellung „Passwörter anzeigen“ in zwei separate Nutzereinstellungen unterteilt: eine für Touch-Eingaben und eine für Eingaben über eine physische Tastatur. Zeichen, die über physische Tastaturen eingegeben werden, werden jetzt standardmäßig sofort ausgeblendet.
val isPhysical = event.source and InputDevice.SOURCE_KEYBOARD == InputDevice.SOURCE_KEYBOARD val shouldShow = android.text.ShowSecretsSetting.shouldShowPassword(context, isPhysical)
Sicherheit
Erzwungenes schreibgeschütztes dynamisches Laden von Code
Um die Sicherheit vor Code-Injection-Angriffen zu verbessern, erzwingt Android jetzt, dass dynamisch geladene native Bibliotheken schreibgeschützt sein müssen. Wenn Ihre App auf Android 17 oder höher ausgerichtet ist, müssen alle nativen Dateien, die mit System.load() geladen werden, zuvor als schreibgeschützt markiert werden.
val libraryFile = File(context.filesDir, "my_native_lib.so") // Mark the file as read-only before loading to comply with Android 17+ security requirements libraryFile.setReadOnly() System.load(libraryFile.absolutePath)
Hybrides APK-Signieren mit Post-Quanten-Kryptografie (PQC)
Um sich auf zukünftige Fortschritte im Bereich des Quantencomputings vorzubereiten, führt Android mit dem neuen APK-Signaturschema v3.2 Unterstützung für die Post-Quanten-Kryptografie (PQC) ein. Bei diesem Schema wird ein hybrider Ansatz verwendet, bei dem eine klassische Signatur mit einer ML-DSA-Signatur kombiniert wird.
Nutzererfahrung und System-UI
Bessere Unterstützung für Widgets auf externen Displays
Diese Funktion verbessert die visuelle Konsistenz von App-Widgets, wenn sie auf verbundenen oder externen Displays mit unterschiedlichen Pixeldichten mit DP- oder SP-Einheiten angezeigt werden.
val options = appWidgetManager.getAppWidgetOptions(appWidgetId) val displayId = options.getInt(AppWidgetManager.OPTION_APPWIDGET_DISPLAY_ID) val remoteViews = RemoteViews(context.packageName, R.layout.widget_layout) remoteViews.setViewPadding( R.id.container, 16f, 8f, 16f, 8f, TypedValue.COMPLEX_UNIT_DIP )
Ausgeblendete App-Labels auf dem Startbildschirm
Unter Android gibt es jetzt eine Nutzereinstellung, mit der App-Namen (Labels) auf dem Startbildschirm ausgeblendet werden können. Achten Sie darauf, dass Ihr App-Symbol unverwechselbar und leicht zu erkennen ist.
Interaktive Bild-im-Bild-Funktion auf dem Computer
Im Gegensatz zum herkömmlichen Bild-im-Bild-Modus bleiben diese angepinnten Fenster interaktiv und werden im Desktopmodus immer im Vordergrund anderer Anwendungsfenster angezeigt.
val appTask: ActivityManager.AppTask = activity.getSystemService(ActivityManager::class.java).appTasks[0]
appTask.requestWindowingLayer(
ActivityManager.AppTask.WINDOWING_LAYER_PINNED,
context.mainExecutor,
object : OutcomeReceiver<Int, Exception> {
override fun onResult(result: Int) {
if (result == ActivityManager.AppTask.WINDOWING_LAYER_REQUEST_GRANTED) {
// Task successfully moved to pinned layer
}
}
override fun onError(error: Exception) {}
}
)Neu gestaltete Symbolleiste für die Bildschirmaufzeichnung
Hauptfunktion
Einstellungen für den Ausschluss von VPN-Apps
Mit dem neuen Intent ACTION_VPN_APP_EXCLUSION_SETTINGS kann Ihre App einen vom System verwalteten Einstellungsbildschirm starten, auf dem Nutzer Anwendungen auswählen können, die den VPN-Tunnel umgehen sollen.
val intent = Intent(Settings.ACTION_VPN_APP_EXCLUSION_SETTINGS)
if (intent.resolveActivity(packageManager) != null) {
startActivity(intent)
}API-Updates für OpenJDK 25 und 21
Dieses Update bietet umfangreiche Funktionen und Verbesserungen aus OpenJDK 21 und OpenJDK 25, darunter die neueste Unicode-Unterstützung und verbesserte SSL-Unterstützung für benannte Gruppen in TLS.
Erste Schritte mit Android 17
Sie können jedes unterstützte Pixel-Gerät registrieren oder die 64‑Bit-Systemimages mit dem Android Emulator verwenden.
- Kompilieren Sie mit dem neuen SDK und melden Sie Probleme auf der Feedbackseite.
- Testen Sie Ihre aktuelle App auf Kompatibilität und erfahren Sie, ob Ihre App von Änderungen in Android 17 betroffen ist.
-
ProduktneuigkeitenHeute veröffentlichen wir Android 17, das auf den meisten unterstützten Pixel-Geräten verfügbar sein wird. In den kommenden Monaten werden neue Geräte mit Android 17 auf den Markt kommen.
Matthew McCullough • Lesezeit: 13 Minuten -
ProduktneuigkeitenHeute veröffentlichen wir die ersten Aufgaben mit langem Horizont (Long-Horizon Tasks, LHT). Das sind Aufgaben von großer Komplexität, für die ein Entwickler mehrere Tage oder sogar eine Woche benötigt. Außerdem führen wir die agentische Bewertung ein, beginnend mit Agenten von entsprechenden Modellanbietern.
Matthew McCullough • Lesezeit: 3 Minuten -
ProduktneuigkeitenEine gute Nutzerfreundlichkeit ist das A und O von Android. Um dieses Versprechen zu halten, müssen Geräte schnell, reaktionsschnell und zuverlässig sein.
Blair Harmon • Lesezeit: 2 Minuten
Lassen Sie sich Woche für Woche die neuesten Informationen zur Android-Entwicklung zusenden.