- Gradle kullanarak ürün varyantlarının ve derleme türlerinin gelişmiş yönetimi ile dağıtımı optimize etme.
- Google Play'de uyumluluk ve benzersizliği sağlamak için SDK, ad alanları ve uygulama kimliklerinin ayrıntılı kontrolü.
- Kaynak kısıtlı ortamlarda IDE ve derleme sisteminin performansını optimize etmek.
- Yerel C++ kütüphanelerinin entegrasyonu ve dinamik ortamlar için BuildConfig sınıfının kullanımı.
Mobil uygulama geliştirmeye yeni başlıyorsanız, bir derleme oluşturmanın sadece çalıştırma düğmesine basmaktan ibaret olmadığını muhtemelen fark etmişsinizdir. Android derleme sistemi, tüm kodunuzu ve kaynaklarınızı alıp APK dosyasına veya Android Uygulama Paketine (AAB) dönüştüren motordur; bunlar nihayetinde kullanıcıların cihazlarına ulaşan paketlerdir.
Tüm bunların sorunsuz çalışması için Android Studio, Gradle ve özel eklentisine güveniyor ; bu sayede uygulamanın imzasından destekleyeceğimiz işletim sistemi sürümlerine kadar her şeyi özelleştirebiliyoruz. İlk başta kolay değil, ancak varyantlarınızı ve bağımlılıklarınızı nasıl organize edeceğinizi öğrendikten sonra, projenizi çoğaltmak zorunda kalmadan ücretsiz, ücretli veya deneme sürümlerini yayınlayabilirsiniz.
Yapının kalbi: Gradle ve dosyaları
Derleme sürecini yönetmek için Kotlin DSL veya Groovy gibi dilleri kullanan çeşitli metin dosyalarıyla etkileşim kurmamız gerekiyor. İlk olarak, Gradle Wrapper (gradlew) var ki bu harika çünkü tüm ekibin aynı Gradle sürümünü kullanmasını sağlayarak tipik "benim bilgisayarımda çalışıyor" senaryosunu önlüyor.
Projenin kök dizininde, Gradle'a hangi modüllerin uygulamanın bir parçası olduğunu ve depoların nasıl yapılandırıldığını belirttiğimiz settings.gradle.kts dosyasını buluyoruz. Ardından , tüm modüller arasında paylaşılacak eklenti sürümlerini tanımlayan en üst düzey build.gradle dosyası geliyor. Ancak asıl önemli olan , SDK ve bağımlılıklar gibi uygulamaya özgü ayrıntıları yapılandırdığımız modül düzeyindeki build.gradle dosyasıdır .
Android SDK'yı Öğrenmek
SDK'yı yapılandırmak, uygulamanızın eski cihazlarda çökmesini veya güncelliğini yitirmesini önlemek için hayati önem taşır. ` compileSdk`, kod yazarken hangi Android API'lerinin kullanılabileceğini tanımlar; ideal olarak, en yeni özelliklerden yararlanmak için her zaman en son sürümü kullanmalısınız. Öte yandan, ` minSdk` kırmızı çizgidir: bundan daha düşük bir sürüme sahip herhangi bir cihaz uygulamayı yükleyemez.
Hedef SDK'yı da unutmamalıyız ; bu, işletim sistemine uygulamayı o belirli sürümde zaten test ettiğimizi bildirir. Cihazda hedef sürümden daha yeni bir Android sürümü varsa, sistem uygulamanın düzensiz davranmasını önlemek için bir uyumluluk modu etkinleştirir.
Ürün çeşitleri ve üretim tipleri
İşte işler burada ilginçleşiyor. Yapı Türleri Bunlar, gelişim aşamalarını birbirinden ayırmaya yarar. Varsayılan olarak elimizde şunlar bulunur: debugBu, hata ayıklamaya olanak tanır ve genel bir anahtar kullanır. releaseBu, halka açık kullanım için optimize edilmiş, gizlenmiş ve imzalanmış sürümdür.
"Lite" ve "Pro" sürümlerini ayrı ayrı yayınlamak istiyorsanız, şunu kullanmalısınız: Ürün AromalarıBunlar, ortak kodun yeniden kullanılmasına olanak tanır ancak sürüme bağlı olarak kaynakları veya işlevleri değiştirir. Bir derleme türünü bir ürün varyantıyla birleştirdiğimizde, şunu elde ederiz: derleme varyantı (örneğin, demoDebugBunu yönetmek için şunları kullanıyoruz: varyantların boyutlarıBu özellik, uygulamadaki farklı tatları gruplandırmanıza ve karıştırmanıza olanak tanır.
Kimlik ve Ad Alanı Yönetimi
El Uygulama Kimliği Bu, uygulamanızın Google Play'deki kimliğidir; yayınladıktan sonra değiştirirseniz, mağaza bunun tamamen yeni bir uygulama olduğunu düşünecektir. Kullanmak mümkün. applicationIdSuffix Böylece hata ayıklama sürümü farklı bir kimliğe sahip olur ve kurulabilir. aynı cep telefonunda her iki sürüm de Çarpışmadan.
Diğer yandan, ad alanı (namespace) , R ve BuildConfig sınıflarının oluşturulduğu paketi tanımlar. Karmaşıklıkları önlemek için ad alanı ve applicationId'nin aynı olması önerilse de, uygulamanın mağazadaki kimliğini değiştirmeden kaynak kodunu yeniden düzenlemeniz gerekiyorsa bunları ayırmak mümkündür.
İmza ve güvenlik yapılandırması
İmzalanmamış bir uygulama dağıtılamaz. Bunun için bir anahtar deposuna ve özel anahtara ihtiyacımız var. Şifreleri doğrudan Gradle dosyasına yazmamak çok önemlidir ; en iyi uygulama, bunları ortam değişkenlerinden veya sürüm kontrolüne yüklenmeyen yerel bir özellikler dosyasından yüklemektir.
IDE performans optimizasyonu
Android Studio, RAM'i çok fazla tüketebilir. Bunu önlemek için studio.vmoptions dosyasını düzenleyerek maksimum yığın boyutunu (Xmx) artırabilirsiniz. Bilgisayarınız düşük kaynaklarla çalışıyorsa, Güç Tasarrufu Modunu etkinleştirmek , gereksiz kod denetimi işlemlerini devre dışı bırakmak ve her şeyden önemlisi, emülatör yerine fiziksel bir cihazda hata ayıklama yapmak en iyisidir .
Windows'ta, antivirüs yazılımları Gradle'ın oluşturduğu her dosyayı tarayarak derleme sürecini yavaşlatabilir. Çözüm, önemli bir hız artışı elde etmek için Gradle klasörlerini, Android SDK'yı ve projeleri gerçek zamanlı taramadan hariç tutmaktır .
BuildConfig ve Yerel Kütüphanelerin Kullanımı
Sınıf Yapılandırma Oluştur Bu, Gradle'ın otomatik olarak oluşturduğu önemli bir araçtır. Hangi modda olduğumuzu bize bildirir. DEBUG o RELEASE kod aracılığıyla, bu da idealdir üretimde günlükleri gizle Veya geliştirme ortamı ile canlı ortam arasındaki sunucu URL'sini değiştirin.
Ham güce ihtiyaç duyanlar için Android Studio entegrasyon imkanı sunuyor. CMake veya ndk-build kullanarak C++Harici projeleri birbirine bağlayabilir ve nelerin bağlanacağını kontrol edebiliriz. ABI'ler (ikili arayüzler)Paketleme yöntemini kullanmak istiyoruz. abiFiltersGereksiz mimarileri dahil ederek nihai dosyanın çok büyük olmasını önlüyoruz.
Kaynak Setlerini Düzenleme
Gradle, kodu şu şekilde düzenler: köken kümeleriDizin src/main/ Bu, herkesin paylaştığı şeyleri içeriyor, ancak şöyle klasörler oluşturabiliriz: src/debug/ o src/full/ Sadece o sürümde bulunan kodu eklemek için. Bir tane var. öncelik hiyerarşisi: Derleme varyantındaki dosyalar, derleme türündeki dosyalara göre önceliklidir ve bunlar da ürün varyantındaki ve ana koddaki dosyalara göre önceliklidir.
Yapılandırma dosyaları, bellek yönetimi ve sürüm dilimleme gibi tüm bu ekosistem sayesinde, basit bir projeyi ölçeklenebilen ve herhangi bir Android cihaza uyum sağlayabilen profesyonel bir altyapıya dönüştürmek mümkün olup, paketleme sürecinin verimli ve mağazadaki dağıtımın güvenli olması sağlanmaktadır.




