Uygulama kaynakları ekleme

Bit eşlemler ve düzenler gibi uygulama kaynakları, her modülün res/ dizininde türe özel dizinler halinde düzenlenmiştir. Ayrıca her dosyanın farklı cihaz yapılandırmaları için optimize edilmiş alternatif sürümlerini (ör. yüksek yoğunluklu ekranlar için bit eşlemin yüksek çözünürlüklü sürümü) ekleyebilirsiniz.

Android Studio, eklemek istediğiniz kaynağın türüne bağlı olarak yeni kaynaklar ve alternatif kaynaklar eklemenize yardımcı olur. Bu sayfada temel kaynak dosyalarının nasıl ekleneceği, kaynaklarınızın konumunun nasıl değiştirileceği ve kaynak birleştirmenin nasıl çalıştığı açıklanmaktadır.

Belirli kaynak türlerinin nasıl oluşturulacağıyla ilgili ayrıntılar için aşağıdaki sayfalara bakın:

Uygulama kodunuzdan kaynaklara nasıl referans vereceğiniz hakkında bilgi için Uygulama kaynaklarına genel bakış bölümüne bakın.

XML kaynak dosyası ekleme

Önceki sayfa bağlantılarında her kaynak türü için özelleştirilmiş iş akışları açıklansa da aşağıdaki adımları uygulayarak herhangi bir XML kaynak dosyasını ekleyebilirsiniz:

  1. Android veya Proje görünümünde, Proje penceresinde hedef uygulama modülünü tıklayın.

  2. Dosya > Yeni > Android kaynak dosyası'nı seçin.

    Şekil 1. New Kaynak Dosyası iletişim kutusunu açın.

  3. İletişim kutusuna ayrıntıları girin:
    • Dosya adı: XML dosyasının adını girin (.xml son eki gerektirmez).
    • Kaynak türü: Oluşturmak istediğiniz kaynak türünü seçin.
    • Kök öğe: Varsa dosya için kök XML öğesini seçin. Bazı kaynak türleri yalnızca bir kök öğe türünü destekler. Seçilen kaynak türüne bağlı olarak bu ayar düzenlenemeyebilir.
    • Kaynak grubu: Dosyayı kaydetmek istediğiniz kaynak grubunu seçin.
    • Dizin adı: Dizin, kaynak türüne ve yapılandırma niteleyicilerine özel bir şekilde adlandırılmalıdır. Dizin adına manuel olarak yapılandırma niteleyiciler eklemek istemiyorsanız bunu düzenlemeyin (bunun yerine Kullanılabilir niteleyiciler'i kullanın).
    • Kullanılabilir niteleyiciler: Yapılandırma niteleyicileri dizin adınıza manuel olarak eklemek yerine, listeden bir niteleyici seçip Ekle'yi tıklayarak ekleyebilirsiniz.
  4. İstediğiniz tüm niteleyicileri ekledikten sonra Tamam'ı tıklayın.

İpucu: Yeni Kaynak Dosyası iletişim kutusunun, eklemek istediğiniz kaynak türüne özel basitleştirilmiş bir sürümünü açmak için res klasöründeki mevcut bir kaynak dizinini sağ tıklayın ve Yeni > type-name kaynak dosyası'nı seçin.

Satır içi karmaşık XML kaynakları

Bazı karmaşık kaynaklar için birden fazla XML kaynak dosyası gerekir. Örneğin, bir animasyonlu vektörel çizimde bir vektör çekilebilir nesnesi ve bir animasyon nesnesi bulunur ve en az üç XML dosyası gerekir.

Bu örnekte, bunlardan birini veya daha fazlasını yeniden kullanmanız gerekirse üç ayrı XML dosyası oluşturup saklayabilirsiniz. Ancak, XML dosyaları yalnızca bu hareketli vektörel çizim için kullanılıyorsa Android Öğe Paketleme Aracı'nda (AAPT) sağlanan satır içi kaynak biçimini kullanabilirsiniz. AAPT ile tek bir XML dosyasında üç kaynağı da tanımlayabilirsiniz. Daha fazla bilgi için Satır içi karmaşık XML kaynakları bölümüne bakın.

Kaynak dizini ekleyin

Yeni bir kaynak dizini eklemek için şu adımları uygulayın:

  1. Proje penceresinde hedef uygulama modülünü tıklayın.

  2. Dosya > Yeni > Android kaynak dizini'ni seçin.

    2. Şekil. New Resource Directory (Yeni Kaynak Dizini) iletişim kutusu.

  3. İletişim kutusuna ayrıntıları girin:
    • Dizin adı: Dizin, kaynak türüne ve yapılandırma niteleyicilerinin kombinasyonuna özgü bir şekilde adlandırılmalıdır. Dizin adına manuel olarak yapılandırma niteleyicileri eklemek istemiyorsanız bunu düzenlemeyin (bunun yerine Kullanılabilir niteleyiciler'i kullanın).
    • Kaynak türü: Dizinde yer almasını istediğiniz kaynak türünü seçin.
    • Kaynak grubu: Dizinin bulunmasını istediğiniz kaynak kümesini seçin.
    • Kullanılabilir niteleyiciler: Yapılandırma niteleyicileri dizin adınıza manuel olarak eklemek yerine, listeden bir niteleyici seçip Ekle'yi tıklayarak ekleyebilirsiniz.
  4. İstediğiniz tüm niteleyicileri ekledikten sonra Tamam'ı tıklayın.

Kaynak dizininizi değiştirin

Kaynaklarınız varsayılan olarak module-name/src/source-set-name/res/ konumundadır. Örneğin, modülünüzün ana kaynak grubuna ait kaynaklar src/main/res/ içinde, hata ayıklama kaynak grubunun kaynakları ise src/debug/res/ içindedir.

Bununla birlikte, bu yolları sourceSets blokundaki res.srcDirs özelliğiyle başka herhangi bir konumla (build.gradle dosyasına göre) değiştirebilirsiniz. Örneğin:

Modern

android {
    sourceSets {
        main {
            res.srcDirs = ['resources/main']
        }
        debug {
            res.srcDirs = ['resources/debug']
        }
    }
}

Kotlin

android {
    sourceSets {
        getByName("main") {
            res.srcDirs("resources/main")
        }
        getByName("debug") {
            res.srcDirs("resources/debug")
        }
    }
}

Ayrıca, bir kaynak kümesi için birden çok kaynak dizini belirtebilir, ardından derleme araçları bunları birleştirir. Örneğin:

Modern


android {
    sourceSets {
        main {
            res.srcDirs = ['res1', 'res2']
        }
    }
}

Kotlin

android {
    sourceSets {
        main {
            res.srcDirs("res1", "res2")
        }
    }
}

Daha fazla bilgi için kaynak grupları hakkında bilgi edinin.

Kaynak birleştirme

Nihai uygulama dosyanızdaki kaynaklar üç kaynaktan gelebilir:

Her bir kaynak kümesi veya kitaplıktaki tüm kaynaklar benzersiz olduğunda nihai uygulamaya eklenir. Bir kaynak, hem kaynak türü dizininde hem de kaynak niteleyicide (tanımlanmışsa) benzersiz olarak kabul edilir.

Aynı kaynağın iki veya daha fazla eşleşen sürümü varsa son uygulamaya yalnızca bir sürüm dahil edilir. Derleme araçları, hangi sürümün saklanacağını aşağıdaki öncelik sırasına (solda en yüksek öncelik) göre seçer:

derleme varyantı > derleme türü > ürün çeşidi > ana kaynak grubu > kitaplık bağımlılıkları

Örneğin, ana kaynak grubunda aşağıdakiler bulunuyorsa:

  • res/layout/example.xml
  • res/layout-land/example.xml

Hata ayıklama derleme türü de şunları içerir:

  • res/layout/example.xml

Ardından son uygulama, hata ayıklama derleme türünden res/layout/example.xml ve ana kaynak grubundan res/layout-land/example.xml içerir.

Bununla birlikte, derleme yapılandırmanız belirli bir kaynak kümesi için birden fazla kaynak klasörü belirtiyorsa ve bu kaynaklar arasında çakışmalar varsa bir hata oluşur ve her kaynak dizini aynı önceliğe sahip olduğundan birleştirme işlemi başarısız olur.