Android 11 veya önceki sürümlerde özel başlangıç ekranı uyguluyorsanız
uygulamasını SplashScreen
API'ye aktarmak için
Android 12 ve sonraki sürümlerde doğru şekilde görüntülendiğinden emin olun.
Android 12'den itibaren sistem, Android sistem varsayılan açılışını uygular.
ekranı açık
soğuk ve sıcak
başlangıcı tüm uygulamalar için. Varsayılan olarak
bu sistem başlangıç ekranı, uygulamanızın başlatıcı simge öğesi kullanılarak oluşturulur
ve windowBackground
olduğunu unutmayın.
Uygulamanızı taşımazsanız Android 12 ve kalitesi düşebilir veya istenmeyen sonuçlar verebilir.
Mevcut başlangıç ekranınız bir
android:windowBackground
özelliğini geçersiz kılacak özel bir tema, Sistem, özel başlangıç ekranınızı varsayılan bir Android sistemiyle değiştirir başlangıç ekranı (Android 12 ve sonraki sürümlerde). Bu, uygulamanızın amacı olmayabilir sahip olacaksınız.Mevcut başlangıç ekranınız özel bir
Activity
kullanılarak uygulanırsa uygulamanızın Android 12 veya sonraki sürümleri çalıştıran cihazlarda başlatılması yinelenen başlangıç ekranları: sistem başlangıç ekranı ve mevcut başlangıç ekranı etkinliğinizi izler.
taşıma sürecini yönetmek için aşağıdaki adımları uygulayın. Taşıma işleminden sonra API, başlatma süresini iyileştirir, başlangıç ekranı deneyimi üzerinde tam kontrol sağlar. ve platformdaki diğer uygulamalarla daha tutarlı bir lansman deneyimi oluşturur.
Başlangıç ekranı karşılaştırma kitaplığı
SplashScreen
API'yi doğrudan kullanabilirsiniz ancak
Androidx SplashScreen
uyumlu kitaplığı
. Uyumluluk kitaplığı SplashScreen
API'yi kullanır.
geriye dönük uyumluluk sağlar ve başlangıç ekranı için tutarlı bir görünüm ve tarz oluşturur
tüm Android sürümlerinde gösterilir. Bu doküman, uyumluluk kodu kullanılarak yazılmıştır
kitaplığını açar.
Android 11 ve önceki sürümlere taşıma işlemini doğrudan SplashScreen
API'yi kullanarak yapıyorsanız
Başlangıç ekranınız taşıma işleminden öncekiyle tamamen aynı görünür. Başlangıç tarihi
Android 12'nin başlangıç ekranı, Android 12'nin tarzını sunar.
SplashScreen
uyumluluk kitaplığını kullanarak taşıma yaparsanız sistem
tüm Android sürümlerinde aynı başlangıç ekranı
kullanılır.
Başlangıç ekranı uygulamanızı taşıma
Mevcut başlangıç ekranınızı taşımak için aşağıdaki adımları tamamlayın ve bu sürümlerdeki talimatları uygulayın.
Bu prosedür, taşıdığınız uygulama türü için geçerlidir.
var. Özel bir Activity
hizmetinden veri taşıyorsanız en iyi
uyarlamak için bu dokümanda açıklanan uygulamaları
özelleştirilmiş başlangıç ekranı Activity
. SplashScreen
API, başlatmayı da azaltır
özel bir başlangıç ekranı etkinliğiyle eklenen gecikmeyi gösterir.
Başlangıç ekranınızı taşımak için aşağıdakileri yapın:
build.gradle
dosyasında,compileSdkVersion
öğenizi değiştirin veSplashScreen
uyumluluk kitaplığını bağımlılara göre gösterir.build.gradle android { compileSdkVersion 31 ... } dependencies { ... implementation 'androidx.core:core-splashscreen:1.0.0-beta02' }
Theme.SplashScreen
adlı çocuğun ebeveyni ile bir tema oluşturun. Örneğin,postSplashScreenTheme
veActivity
için kullanılması gereken tema çizilebilir veya animasyonlu hale getirilecekwindowSplashScreenAnimatedIcon
değeri çekilebilir. Diğer özellikler isteğe bağlıdır.<style name="Theme.App.Starting" parent="Theme.SplashScreen"> <!-- Set the splash screen background, animated icon, and animation duration. --> <item name="windowSplashScreenBackground">@color/...</item> <!-- Use windowSplashScreenAnimatedIcon to add a drawable or an animated drawable. One of these is required. --> <item name="windowSplashScreenAnimatedIcon">@drawable/...</item> <!-- Required for animated icons. --> <item name="windowSplashScreenAnimationDuration">200</item> <!-- Set the theme of the Activity that directly follows your splash screen. This is required. --> <item name="postSplashScreenTheme">@style/Theme.App</item> </style>
Simgenizin altına bir arka plan rengi eklemek istiyorsanız
Theme.SplashScreen.IconBackground
temasını vewindowSplashScreenIconBackground
özelliği için de geçerlidir.Manifest'te, başlangıç etkinliğinin temasını belirlediğiniz temayla değiştirin hesap oluşturabilirsiniz.
<manifest> <application android:theme="@style/Theme.App.Starting"> <!-- or --> <activity android:theme="@style/Theme.App.Starting"> ...
Aramadan önce başlangıç etkinliğinde
installSplashScreen
adlı kişiyi arayınsuper.onCreate()
.Kotlin
class MainActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { // Handle the splash screen transition. val splashScreen = installSplashScreen() super.onCreate(savedInstanceState) setContentView(R.layout.main_activity) ...
Java
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // Handle the splash screen transition. SplashScreen splashScreen = SplashScreen.installSplashScreen(this); super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); } }
installSplashScreen
, başlangıç ekranı nesnesini döndürür. Bunu isteğe bağlı olarak
animasyonu özelleştirmek veya başlangıç ekranını ekranda daha uzun süre tutmak için kullanın.
gerekir. Animasyonu özelleştirmeyle ilgili daha fazla ayrıntı için bkz.
Başlangıç ekranını ekranda daha uzun süre tutma
ve
Başlangıç ekranını kapatmak için animasyonu özelleştirin.
Özel başlangıç ekranı etkinliğinizi başlangıç ekranına uyarlama
Android 12 ve sonraki sürümler için başlangıç ekranına geçtikten sonra
önceki özel başlangıç ekranınızla (Activity
) yapılacak. Aşağıdakiler mevcut:
seçenekler:
- Özel etkinliği saklayabilir, ancak görüntülenmesini engelleyebilirsiniz.
- Marka bilinci oluşturma nedenleriyle özel etkinliği kaldırma.
- Özel etkinliği kaldırın ve uygulamanızı gerektiği şekilde uyarlayın.
Özel Etkinliğin görüntülenmesini engelleme
Önceki başlangıç ekranınız (Activity
) öncelikli olarak yönlendirme için kullanılıyorsa
nasıl kaldırabileceğinizi düşünün. Örneğin, her ay web sitenizdeki gerçek
veya alt bileşenlere sahip tekil bir etkinliğe
geçmelerini sağlar. YouTube'da
her şeyi olduğu gibi
SplashScreen.setKeepOnScreenCondition
oluşturmak yerine yönlendirme etkinliğini kaybetmemek için kullanılır. İşlem devam ediyor
başlangıç ekranını bir sonraki etkinliğe aktarır ve
için geçerlidir.
Kotlin
class RoutingActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { val splashScreen = installSplashScreen() super.onCreate(savedInstanceState) // Keep the splash screen visible for this Activity. splashScreen.setKeepOnScreenCondition { true } startSomeNextActivity() finish() } ...
Java
public class RoutingActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { SplashScreen splashScreen = SplashScreen.installSplashScreen(this); super.onCreate(savedInstanceState); // Keep the splash screen visible for this Activity. splashScreen.setKeepOnScreenCondition(() -> true ); startSomeNextActivity(); finish(); } ...
Marka bilinci oluşturma için özel aktiviteyi sakla
Marka bilinci oluşturma amacıyla önceki bir başlangıç ekranını Activity
kullanmak istiyorsanız
sistem başlangıç ekranından özel başlangıç ekranınıza geçebiliriz
Animasyonu açılışı kapatmak için özelleştirerek Activity
dokunun.
Ancak, mümkünse bu senaryodan kaçınmak ve SplashScreen
kullanmak en iyisidir.
Başlangıç ekranınızı markalamanızı sağlayacak API.
Bir iletişim kutusu görüntülemeniz gerekirse sonraki özel başlangıç ekranı etkinliğinde veya ana etkinlik bölümünde otomatik olarak seçebilirsiniz.
Özel başlangıç ekranı Etkinliği'ni kaldırma
Genel olarak önceki özel başlangıç ekranınızı (Activity
) kaldırmanızı öneririz.
başlangıç ekranlarının yinelenmesini önlemek, verimliliği artırmak,
ve başlangıç ekranı yüklenme sürelerini azaltabilirsiniz. Proje yöneticilerinin
kullanabilirsiniz.
Bileşenleriniz, modülleriniz veya kitaplıklarınız için geç yükleme özelliğini kullanın. Yüklemekten kaçınma veya uygulamanın çalışması için gerekli olmayan bileşenleri ya da kitaplıkları büyük önem taşır. Bunları daha sonra, uygulama ihtiyaç duyduğunda yükleyebilirsiniz.
Uygulamanızın düzgün çalışması için gerçekten bir bileşene ihtiyacı varsa bunu yalnızca veya bunu yüklemek için bir arka plan ileti dizisi kullanarak uygulama başladıktan sonra.
Application.onCreate()
cihazınızı mümkün olduğunca hafif tutmaya çalışın yapmasını sağlar.Ayrıca, Bileşenleri başlatmak için Uygulama Başlatma kitaplığı unutmayın. Bunu yaparken tüm için gerekli modülleri devreye sokmayın ve geç yüklenen modüller kullanılabilir hale gelir.
Yerel olarak az miktarda veri yüklerken yer tutucu oluşturun. Şunu kullanın: önerilen tema yaklaşımını seçin ve oluşturma hazır. Geriye dönük uyumlu bir başlangıç ekranı uygulamak için adımları Başlangıç ekranını ekranda daha uzun süre tutun.
Yer tutucuları gösterin. Belirsiz sürelere sahip ağ tabanlı yüklemeler için başlangıç ekranını kapatın ve eşzamansız yükleme için yer tutucular gösterin. İçerik alanına, görünümü yansıtan incelikli animasyonlar yükleme durumu. Yüklenen içerik yapısının iskelet yapısı içerik yüklenirken geçişin yumuşak bir geçişini mümkün olduğunca kolaylaştırmaktır.
Önbelleğe almayı kullanma Bir kullanıcı, uygulamanızı ilk kez açtığında, aşağıdaki şekilde gösterildiği gibi, bazı kullanıcı arayüzü öğeleri için yükleme göstergeleri İlgili içeriği oluşturmak için kullanılan Kullanıcı uygulamanıza tekrar döndüğünde önbelleğe alınmış bu içeriği o ana kadar Daha yeni içerikler yüklemeniz gerekir.