Android 9 (API düzeyi 28) kullanıma sunulan yeni özellikler ve API'ler, yararlanabileceğiniz yeni davranış değişikliklerini de içerir. Bu belgede, uygulamalarınızı Android 9'a taşımak için uygulamanız gereken iki temel aşamaya genel bir bakış sunulmaktadır:
- Android 9 ile temel uyumluluğu sağlama
Mevcut uygulamanızın platformun yeni sürümünde tam olarak çalıştığını doğrulayın. Bu aşamada yeni API'ler kullanmıyor veya uygulamanızın
targetSdkVersion
değerini değiştirmiyorsunuz ancak küçük değişiklikler yapmanız gerekebilir. - Yeni platformu hedefleme, Android 9 SDK'sı ile derleme ve Android 9 özellikleriyle derleme
Google Cloud'un yeni özelliklerinden yararlanmaya platformu,
targetSdkVersion
uygulamasını28
olarak güncelleyin, uygulamanın devam ettiğini doğrulayın düzgün şekilde çalışmasını sağlayın ve ardından yeni API'leri kullanmaya başlayın.
Android 9 çalıştıran bir cihazı hazırlama
Uyumlu bir cihazınız varsa Cihazınız için üreticiden Android 9 sistem görüntüsü; için burayı tıklayın fabrika resimlerini Pixel cihazlar. için genel talimatlar yanıp sönen sistem görüntülerine buradan ulaşabilirsiniz.
Android Emulator için Android 9 sistem görüntüsünü de indirebilirsiniz. Bu liste SDK Yöneticisi Google API'leri Intel x86 Atom Sistem Görüntüsü olarak Android API 28.
Not: Android 9 emülatör sistem resmi, Android Studio 3.1 ve sonraki sürümlerde indirilebilir. Android Studio 3.2, maksimum uyumluluk sağlar. Daha fazla bilgi için Android 9 SDK'sını edinme başlıklı makaleyi inceleyin.
Android 9 ile uyumluluk sağlama
Buradaki amaç, mevcut uygulamanızın şu anki haliyle çalışmasını sağlamaktır
Android 9 Bazı platform değişiklikleri, uygulamanızın davranışını etkileyebileceğinden bazı düzenlemeler yapmanız gerekebilir ancak yeni API'ler kullanmanız veya targetSdkVersion
'nizi değiştirmeniz gerekmez.
Uyumluluk testi yapma
Android 9 ile uyumluluğu test etmek, çoğunlukla uygulamanızı yayınlamaya hazırlanırken yaptığınız test türüyle aynıdır. Bu, Temel Uygulama Kalitesi Yönergeleri ve Test için En İyi Uygulamalar'ı incelemek için iyi bir zamandır.
Ancak testin başka bir yönü de vardır: Android 9, Android platformunda targetSdkVersion
değerinizi değiştirmeseniz bile uygulamanızın davranışını etkileyebilecek veya uygulamayı tamamen bozabilecek değişiklikler yapar. Bu nedenle, sitenizdeki önemli değişiklikleri,
ve değişiklikleri karşılamak için uyguladığınız düzeltmeleri test edin.
Tablo 1. Tüm uygulamaları etkileyen önemli değişiklikler Android 9 cihazlarda yüklü olan telefonlar.
Değişim | Özet |
---|---|
SDK olmayan arayüzlerle ilgili kısıtlamalar |
Doğrudan, JNI aracılığıyla veya yansıma yoluyla olsun, SDK olmayan belirli arayüzlere erişim artık engellenmektedir. Kısıtlanmış arayüzlere erişmeye çalışıldığında aşağıdakiler gibi hatalar ortaya çıkar:
NoSuchFieldException ve NoSuchMethodException .
Bkz. Kısıtlamalar
SDK dışı arayüzlerdeki işlemler başlıklı makaleye göz atın.
|
Kripto sağlayıcı kaldırıldı |
Android 9'dan itibaren Crypto JCA sağlayıcısı kaldırıldı. Aramalar
varış noktası: SecureRandom.getInstance("SHA1PRNG", "Crypto")
NoSuchProviderException atacak.
|
Daha sıkı UTF-8 kod çözücü | Android 9'da, Java dili için UTF-8 kod çözücü daha katıdır ve Unicode standardına uyar. |
Boşta kalan uygulamaların kamera, mikrofon ve sensörlere erişimi engellendi | Uygulamalar boştayken artık kamera, mikrofon veya SensorManager sensörlerine erişemez. |
Android 9'da çalışan tüm uygulamalarda yapılan davranış değişikliklerinin daha kapsamlı bir listesi için Davranış Değişiklikleri belgesine bakın.
Hedef sürümünüzü güncelleme ve Android P özelliklerini kullanma
Bu bölümde, targetSdkVersion
sürümünüzü 28'e güncelleyerek ve Android 9'da kullanılabilen yeni özellikleri ekleyerek Android 9 için tam desteğin nasıl etkinleştirileceği açıklanmaktadır.
Android 9, size yeni API'ler sunmanın yanı sıra bazı davranışlar da
targetSdkVersion
sürümünüzü 28'e güncellediğinizde değişecektir. Bazı davranış değişiklikleri, uygulamanızın çalışmasını engellememek için kod değişiklikleri gerektirebileceğinden, targetSdkVersion
değerini değiştirdiğinizde uygulamanızın nasıl etkilenebileceğini anlamak için öncelikle Android 9'u hedefleyen uygulamalar için davranış değişikliklerinin tümünü inceleyin.
Not: Aşağıdaki adımları izleyerek platform uyumluluğunu sağlayın: Dolayısıyla, öncelikle bu adımları tamamladığınızdan emin olun.
Android 9 SDK'sını edinme
Android Studio 3.1 veya sonraki sürümleri kullanarak uygulamanızı Android 9 ile derlemek için SDK paketlerini edinebilirsiniz. Android 9'daki yeni özelliklere henüz ihtiyacınız yoksa ve yalnızca platformun bu sürümüne göre derlemek istiyorsanız Android Studio 3.1'i kullanabilirsiniz. Android Studio 3.2, Android 9 özellikleri için tam destek sağlar.
Android 9 uygulamanızı test etme
Yukarıdaki hazırlıklar tamamlandıktan sonra uygulamanızı derleyip Böylece, Android 9'u hedeflerken düzgün şekilde çalışmasını sağlayabilirsiniz. (API düzeyi 28). Bu, kampanya performansını incelemek için Temel Uygulama Kalite Yönergeleri ve En İyi Test Uygulamaları.
Uygulamanızı targetSdkVersion
değeri P olarak ayarlayarak oluşturduğunuzda dikkat etmeniz gereken belirli platform değişiklikleri vardır. Bu değişikliklerin bazıları, Android 9'da yeni özellikler uygulamasanız bile uygulamanızın davranışını önemli ölçüde etkileyebilir veya uygulamanızı tamamen bozabilir.
Tablo 2'de, daha fazla bilginin bağlantılarını içeren bu değişikliklerin listesi verilmiştir.
Tablo 2. targetSdkVersion
28 olarak ayarlandığında uygulamaları etkileyen önemli değişiklikler.
Değişim | Özet |
---|---|
Ön plan hizmeti izni | Ön plan hizmetlerini kullanmak isteyen uygulamaların artık önce FOREGROUND_SERVICE iznini istemesi gerekiyor. Bu normal bir izin olduğundan sistem, istekte bulunan uygulamaya otomatik olarak verir. İzin olmadan ön plan hizmeti başlatıldığında SecurityException hatası oluşur. |
Bouncy Castle şifrelerinin desteğinin sonlandırılması |
Android 9, Bouncy Castle'ın sağlayıcısından gelen birkaç şifreyi kullanımdan kaldırarak bunların lehine sonuçlanıyor
Conscrypt sağlayıcısı tarafından sağlanır. getInstance() için yapılan aramalar
Bouncy isteğinde bulun
Kale sağlayıcı NoSuchAlgorithmException hata oluşturuyor. Hataları gidermek için
getInstance() işlevinde bir sağlayıcı belirtin (yani, varsayılan uygulamayı isteyin).
|
Build.serial 'e doğrudan erişim kaldırıldı
|
Build.serial tanımlayıcısına ihtiyaç duyan uygulamalar artık READ_PHONE_STATE isteğinde bulunmalıdır.
izninin ardından Android 9'a eklenen yeni Build.getSerial() yöntemini kullanın.
|
WebView veri dizininin paylaşılmasına izin verilmez | Uygulamalar artık işlemler arasında tek bir WebView veri dizinini paylaşamaz. Uygulamanızda WebView, CookieManager veya android.webkit paketindeki başka bir API kullanan birden fazla işlem varsa ikinci işlem bir WebView yöntemi çağırdığında uygulamanız kilitlenir. |
Uygulamanın veri dizinine erişim SELinux tarafından engellendi | Sistem, uygulama başına SELinux korumalı alanlarını uygular ve her birinde uygulama başına SELinux kısıtlamaları uygulanır uygulamanın gizli veri dizini. Başka bir uygulamanın veri dizinine yola göre doğrudan erişmeye artık izin verilmiyor. Uygulamalar, FD'leri iletmek de dahil olmak üzere IPC mekanizmalarını kullanarak veri paylaşmaya devam edebilir. |
Android 9'u hedefleyen uygulamalarda davranış değişikliklerinin daha kapsamlı bir listesi için Davranış Değişiklikleri belgesine bakın.
Android 9'da sunulan yeni özellikleri ve API'leri keşfetmek için Android 9 Özellikleri ve API'leri başlıklı makaleyi inceleyin.