Android derleme yapısı

Android projeleri, uygulamanızın kullandığı derlemeyle ilgili birçok dosya ve dizin yapısı içerir uygulama kaynağınızı ve kaynaklarınızı düzenleyin. Sıradaki adım genel yapıya ve temel adımlara göz atacağız. önemli bir rol oynar.

Bu tabloda, bir Android projesindeki tipik dosyalar listelenmektedir. Her birinin açıklaması dosya veya dizinde hangi içeriğin ait olduğu ile ilgili notlar bulunur. En iyi ve bu açıklamalar bir projeyle eşleşmeyebilir indirdiğiniz veya internet üzerinden indirdiğiniz içerikler.

Derleme dosyalarınızı yazarken bildirimli yaklaşımdan yararlanın: mantık ve görev inşa edin tanımlar yalnızca eklentilerde görünür. Derleme mantığını eklentilerle sınırlandırarak derleme dosyaları, anlaşılması için daha doğrudan olan veri bildirimlerine dönüşür düzenlemenizi sağlar. Gelecek sürümler aşağıdaki gibi alternatif bir spesifikasyon içerebilir: Declarative Gradle (Açıklayıcı Gradle), dosyası olarak da kaydedebilir.

Klasör/Dosya

Kullanım

.gradle/

Gradle proje önbellek dizini

Gradle tarafından yönetilir ve indirilen Gradle dağıtımı, proje önbelleği ve yapılandırma dosyalarını içerir.

Bu dizindeki dosyaları değiştirmeyin!

.fikir/

Android Studio projesi meta verileri

Bu dizindeki dosyaları değiştirmeyin!

derleme.gradle(.kts)

Kök derleme dosyası

Yalnızca alt projeler genelinde ortak bir eklenti sınıf yolu oluşturmak için eklenti bildirimleri içermelidir.

Diğer kod, ayarlarda veya iç içe yerleştirilmiş proje düzeyinde derleme dosyalarında bulunmalıdır.

gradle.properties

Gradle yürütme yapılandırması

Yığın boyutu, önbelleğe alma ve paralel yürütme gibi Gradle derleme ortamı özelliklerini kontrol eden Gradle özelliklerini içerir.

Eklenip daha sonra AGP DSL'de yapılacak değişiklikleri azaltmak için bazı geçici Android özellikleri burada tanımlanmıştır.

gradlew (linux, Mac)

gradlew.bat (Windows)

Gradle sarmalayıcı dosyası

Gradle dağıtımı indirip komutları yönlendirerek derlemenizi önyükler. Bu sayede, Gradle'ı önceden yüklemek zorunda kalmadan derlemeleri çalıştırabilirsiniz.

local.properties

Yerel makine yapılandırması

Yerel makineyle ilgili özellikler (ör. Android SDK'nın konumu) içerir.

Bu dosyayı kaynak kontrolünden hariç tut

ayarlar.gradle(.kts)

Gradle derlemesini başlatma

Gradle başlatma ve proje yapılandırması için şu gibi genel derleme bilgilerini içerir:

  • proje adı
  • bu derlemeye dahil edilecek alt projelerin listesi
  • eklentileri ve bağımlılıkları bulmak için depo spesifikasyonları
  • harici Sürüm Kataloğu içe aktarmaları.

gradle/

ƒ libs.versions.toml

Sürüm Kataloğu

Bağımlılıklar ve derlemenizde kullanılan eklentiler için değişkenler tanımlar. Burada hangi sürümleri kullanmak istediğinizi belirterek projenizdeki tüm alt projelerde tutarlılık sağlarsınız.

ƒ sarmalayıcı/

ƒ gradle‐Wrapper.jar

Gradle önyüklemesi yürütülebilir

Belirtilen Gradle dağıtımını indirir (mevcut değilse) ve bağımsız değişkenleri ileterek bu dağıtımı çalıştırır

ƒ gradle‐Wrapper.özellikleri

Gradle sarmalayıcı yapılandırması

Gradle dağıtımının nereye indirileceğini (hangi sürümün kullanılacağını belirtir).

uygulama/

Alt proje dizini

Alt projeler (Android Studio'da "modüller" olarak bilinir) uygulamalar veya kitaplıklar oluşturabilir ve başka alt projelere ya da harici bağımlılıklara bağlı olabilir.

app, üst düzey bir uygulama alt projesinin geleneksel adıdır (ancak bu ad zorunlu değildir). Diğer alt projeler farklı adlara sahip benzer yapılara sahiptir.

Tüm dizinler alt proje olabilir, en az bir build.gradle(.kts) dosyası içermeli ve settings.gradle(.kts) kullanılarak derlemeye dahil edilmelidir.

🎃 build.gradle(.kts)

Alt proje düzeyinde derleme dosyası

Bu alt projenin nasıl oluşturulacağını açıklar. Her alt proje ayrı bir derleme dosyası gerektirir ve

  • bu alt projeyi oluşturmak için kullanılan eklentiler
  • eklentilerin gerektirdiği yapılandırma blokları
  • bu alt projeyi oluştururken dahil edilen bağımlılıklar (kitaplıklar ve platformlar)

Derleme dosyalarınıza derleme mantığı (Kotlin işlevi tanımları veya koşulları gibi) ya da görev bildirimleri eklememelisiniz. Derleme mantığı ve görevler yalnızca eklentilerin içinde olmalıdır.

ƒ src/

Alt proje kaynak dosyaları

Kaynak dosyaları (uygulama kodu ve kaynaklar) kaynak kümeleri halinde gruplandırır. main kaynak kümesi, tüm varyantlarda ortak olan kaynak dosyaları, diğer kaynak kümeleri ise bir varyanta özgü kaynak dosyaları içerir.

ƒ ana/

Ana kaynak grubu

Tüm derleme varyantlarında ortak olan kaynak kodu ve kaynaklar. Bu kaynak tüm derlemeler için temel oluşturur ve diğer daha spesifik kaynak kümeleri bu kaynağa eklenir veya kaynağı geçersiz kılar.

ƒ Java/

ƒ kotlin/

Kotlin ve Java kaynak kodu

java dizini, karma Java ve Kotlin kaynak kodu içerebilir. Bu alt proje yalnızca Kotlin kodu içeriyorsa bu dizini (kotlin.

Android
), Kotlin öncelikli bir platformdur. Java kaynağı desteklenir ancak yeni API'ler Kotlin dilini hedefler. Tüm yeni kodlar ve mevcut kodda yapılan önemli güncellemeler için Kotlin'i kullanmanızı öneririz.

🎃 çözüm/

Android kaynak dosyaları

XML dosyaları ve görüntüler gibi uygulama kaynaklarını içerir. Tüm uygulamalar, başlatıcı simgeleri gibi bazı temel kaynakları kullanır. Ancak düzenler ve menüler gibi bu kaynakların çoğu yalnızca görünüme dayalı uygulamalarda kullanılmaktadır. Oluşturma uygulamaları, bu dizin altında tanımlanan Dize kaynaklarını kullanır.

🎃 AndroidManifest.xml

Android uygulaması meta verileri

Sisteme bildirmek için Android paket yöneticisi tarafından okuma

  • uygulamanız tarafından tanımlanan bileşenler
  • gerekli izinler
  • cihaz uyumluluğu
  • Android platformu kısıtlamaları

ƒ androidTest/

Cihaz testi kaynak grubu

Android destekli bir cihazda veya emülatörde çalıştırılacak testlere yönelik kaynak içerir. Bu testler, gerçek Android ortamına erişebilir, ancak ana makine testlerinden daha yavaş yürütülür.

main kaynak kümesindeki tüm kaynak dosyalar, androidTest altında kaynak tarafından kullanılabilir.

ƒ test/

Ana makine testi kaynak grubu

Bir cihazda çalıştırılan testlerin aksine, JVM'de yerel olarak çalıştırılan testlere ait kaynak içerir. Bu testler, cihaz testlerine kıyasla çok daha hızlı yapılır. Ancak tüm sistem çağrıları (uygulamanızı çalıştıran yaşam döngüleri de dahil) sahte, sahte, sustalı veya başka bir şekilde simüle edilmelidir.

main kaynak grubundaki tüm kaynak dosyalar, test edilen kaynak tarafından kullanılabilir.

ƒ proGuard-rules.pro

R8 yapılandırma kuralları

Uygulama daraltma, optimizasyon ve kod karartmayı kontrol etmek için kurallar tanımlar. R8, gereksiz kod ve kaynakları kaldırır, çalışma zamanı performansını optimize eder ve tanımlayıcıları yeniden adlandırarak kodunuzu daha da en aza indirir.