| Key concepts | Set up your development environment | Build an RE SDK | Consume the RE SDK | Testing, and building for distribution |
Temel kavramlar
Bu bölümde, SDK çalışma zamanı mimarisi, çalışma zamanı etkin SDK'ların nasıl yüklendiği, geriye dönük uyumluluk ve mevcut SDK'ların SDK çalışma zamanına nasıl taşınacağı açıklanmaktadır.
Sözlük
- Çalışma zamanı etkin SDK (RE SDK): SDK Çalışma Zamanı ortamında çalışmak ve uygulamayla süreçler arası iletişim (IPC) üzerinden iletişim kurmak için oluşturulmuş bir SDK.
- Çalışma zamanına duyarlı SDK (RA SDK): Uygulamaya statik olarak bağlanan, çalışma zamanı etkin olmayan bir SDK. Bu SDK, mevcut SDK kodunuzun yanı sıra çalışma zamanı etkin SDK'nızı çağırmak için yeni kod da içerebilir.
- Bu bazen statik olarak bağlanmış veya statik SDK olarak da adlandırılır.
- Shim: Süreçler arası veya süreçler arası iletişim (IPC) genelinde iletişimi soyutlamaya ve aynı uygulama-SDK arayüzünü korumaya yardımcı olan bir Jetpack kitaplığıdır.
SDK Runtime mimarisi
SDK Çalışma Zamanı, istemci-sunucu türünde bir model kullanır.
Aradaki temel fark, "istemci" (uygulama) ve "sunucu"nun (çalışma zamanı özellikli SDK'lar) aynı cihazda çalışması ve bu iletişimin süreçler arasında gerçekleşmesidir.
Bu zorlukların üstesinden gelmenize yardımcı olmak için SDK Çalışma Zamanı'nda uygulama-SDK entegrasyonunu basitleştirecek aşağıdaki Jetpack kitaplıklarını ve araçlarını geliştirdik:
- Sarmalayıcı kitaplık: Sarmalayıcı kitaplık (veya sarmalayıcı), süreçler arası iletişimi ya da süreçler arası iletişim (IPC) işlemlerini soyutlamaya yardımcı olur. Ayrıca aynı uygulama-SDK arayüzünün korunmasına da yardımcı olur.
- Geriye dönük uyumluluk kitaplığı: Bu kitaplık, geriye dönük uyumluluğu ele alarak SDK Çalışma Zamanı'nın kullanılabilir olup olmadığına bakılmaksızın SDK'nızın uyumlu olmasını sağlar.
- Kullanıcı Arayüzü Kitaplığı: Ayrıca, uzaktan sunum işlemlerini (ör. kullanıcı arayüzünü çalışma zamanı etkin SDK'dan getirme veya görünümleri yeniden boyutlandırma ve yeniden düzenleme) gerçekleştirmek için kitaplıklar da sunuyoruz.
Yükleme akışında yapılan değişiklikler
Çalışma zamanı etkin SDK'nızı Android Studio'da veya diğer araçlarda oluşturduğunuzda, çalışma zamanı etkin SDK'lara yönelik bir yayınlama biçimi olan Android SDK paketi (ASB) oluşturursunuz.
bundletool, çalışma zamanı etkin SDK'nız için bir APK oluşturmak üzere ASB'yi işler: Bu ayrı APK, SDK kodunuzu içerir ancak uygulama kodu içermez.
Uygulamanın manifest dosyası, çalışma zamanı özellikli SDK'nızın adı ve sürümüne bağımlılık bildiriyor ve bu bağımlılık, yükleyici uygulaması tarafından çözülüyor.
Yükleyici, SDK APK'sını aldıktan sonra yükleme, SDK APK'sının yüklenmesiyle başlar. Başarılı olursa uygulamanın APK'sı yüklenir.
Uygulama Android 13 ve önceki sürümlerde ya da SDK Çalışma Zamanı'nı desteklemeyen cihazlarda yüklüyse akış farklıdır. Bu senaryoda mağaza, hem çalışma zamanı özellikli SDK'nızı hem de uygulama kodunu içeren tek bir APK yükler. Daha fazla bilgi edinmek için dağıtım bölümünü okuyun.
Bir uygulama üretimde bu SDK'yı kullandığında uygulama mağazası bu ASB'den doğru SDK APK'sını oluşturur ve yükler.
Geriye dönük uyumluluk
SDK Çalışma Zamanı Android 14'te kullanıma sunulduğundan SDK veya uygulama geliştiriciler için ek yük oluşturmadan önceki sürümleri desteklememiz gerekiyordu.
Android 13 ve önceki sürümlerde geriye dönük uyumluluğu sağlamak için, cihazın SDK Çalışma Zamanı desteğinden bağımsız olarak çalışma zamanı özellikli SDK'nızı sorunsuz bir şekilde çalıştırabilen bir Jetpack kitaplığı kullanıma sunduk.
Bu kılavuzu uyguladığınızda çalışma zamanı özellikli SDK'nız varsayılan olarak geriye dönük uyumlu hale gelir ve başka bir işlem yapmanız gerekmez.
Geriye dönük uyumlulukla ilgili işlemlerin hangi aşamalarda yapılması gerektiğini vurguluyoruz. Ancak genel olarak doğru bağımlılıkları beyan ettiğinizden ve uygun olduğunda *Compat sınıflarını kullandığınızdan emin olmanız gerekir.
Mevcut SDK'ları taşıma
Çalışma zamanına taşımak istediğiniz mevcut bir SDK'nız varsa kod tabanınızın tamamını tek seferde yeniden düzenlemeniz gerekmez. Bunun yerine, mevcut SDK mantığını yeni çalışma zamanı özellikli SDK'ya kademeli olarak taşıyabilirsiniz.
Mevcut bir SDK'yı SDK Runtime'a taşımak için aşağıdaki üç aşamayı öneririz:
- Çalışma zamanı özellikli bir SDK'nın yanı sıra, kalın bir çalışma zamanı özellikli SDK'dan oluşan bir geçiş dönemi oluşturma. Bu sayede, işletme mantığını mevcut SDK'nızdan kademeli olarak taşıyabilir ve A/B testi için bir test platformu elde edebilirsiniz.
- Uygulama geçişini kolaylaştırmak için mevcut tüm SDK iş mantığını, benzer bir ince çalışma zamanı farkında SDK ile birlikte kararlı bir duruma taşıma
- Çalışma zamanı özellikli SDK'nızı doğrudan kullanmak için ince bir çalışma zamanı özellikli SDK olmadan tam taşıma ile ilgilenen uygulamaları destekleme
1. aşama: Geçiş dönemi - Kalın çalışma zamanı uyumlu SDK
İşletme mantığınızın bir kısmını çalışma zamanına duyarlı SDK'nızda tutmayı seçerek başlayabilirsiniz. Buna, kalın çalışma zamanı farkında SDK veya uygulama içi sarmalayıcı diyoruz.
Bu yaklaşım, yeni oluşturulan çalışma zamanı özellikli bir SDK'nın yanı sıra SDK'nızın tüm veya bazı özelliklerini statik uygulama kitaplığında tutmanıza olanak tanır.
Bu sayede, kullanım alanlarınızı çalışma zamanı özellikli SDK'ya kademeli olarak taşıyabilir ve çalışma zamanı özellikli SDK'nızı mevcut SDK'nıza karşı test edebilirsiniz.
Bu aşamada, uygulamanızın statik uygulama kitaplığı (çalışma zamanı odaklı SDK) çalışma zamanı odaklı SDK'nızı kullanmak için gereken işi yaptığından uygulama geliştiricinin SDK'nızı kullanma şeklini değiştirmesi gerekmez.
2. aşama: Sabit durum: İnce çalışma zamanı farkında SDK
Kalın çalışma zamanı farkında SDK'nın aksine, ince sarmalayıcı veya ince çalışma zamanı farkında SDK (ince RA_SDK), statik olarak bağlanmış kitaplık SDK'nızda yalnızca API çevirisi ve çalışma zamanı etkin SDK çağırma kodu içerir.
Bu aşamada, tüm SDK kodunuzu statik uygulama kitaplığı SDK'nızdan çalışma zamanı etkin SDK'nıza taşımış olmanız gerekir.
Uygulama geliştiricilerin 1. aşamada herhangi bir değişiklik yapması gerekmez. Bunun nedeni, uygulama içi ince çalışma zamanı özellikli SDK'nızın, SDK Çalışma Zamanı içindeki çalışma zamanı özellikli SDK'nızı çağırma işlemini gerçekleştirmesidir.
3. aşama: Tam taşıma
Bu son aşamada, tüm SDK özelliklerinizi çalışma zamanı etkin SDK'ya taşıdınız ve tüm statik kitaplıkları uygulamadan kaldırdınız.
Bu noktada, uygulama istemcilerinizin artık kitaplıklarınızı derlemelerine dahil etmesi gerekmez. Bunun yerine, yalnızca SDK bağımlılıklarını manifestte listelemeleri ve SDK çağrılarını uygulama kodlarına dahil etmeleri yeterlidir.
SDK çağrıları, sistem tarafından SDK çalışma zamanına yönlendirilir. Burada, çalışma zamanı özelliğinin etkin olduğu SDK'nız otomatik olarak yüklenir.
2. adım: Geliştirme ortamınızı ayarlayın