Android Studio'daki iml dosyaları nedir?


186

Android Studio projesinde iml dosyaları nedir? Modüller için yapılandırma dosyası olduğunu okudum. Nasıl çalıştığını anlamıyorum ve projenize eklediğiniz harici modüller ile entegre etmek için sadece sınıf komut dosyalarını kullanamıyorum.

Ayrıca, çoğu zaman AS bunları üretir, bu yüzden proje davranışını kontrol edemiyorum. Eclipse ve AS gibi farklı IDE'lerde çalışan bir ekibim varsa, projemi IDE agnostik olacak şekilde ayarlamak mümkün mü?

Bu sistemin nasıl çalıştığını tam olarak anlamıyorum.

Yanıtlar:


172

Android Studio projesinde iml dosyaları nedir?

Bir Google araması iml fileortaya çıkar:

IML, Java uygulamaları geliştirmek için kullanılan bir IDE olan IntelliJ IDEA tarafından oluşturulan bir modül dosyasıdır. Java, Eklenti, Android veya Maven bileşeni olabilecek bir geliştirme modülü hakkında bilgi depolar; modül yollarını, bağımlılıkları ve diğer ayarları kaydeder.

( bu sayfadan )

neden projenize eklediğiniz harici modüllerle entegre etmek için not dosyaları kullanmıyorsunuz.

"Harici modüller ile entegrasyon için sınıf komut dosyaları" veya kendi modüllerinizi kullanırsınız.

Ancak Gradle, IntelliJ IDEA'nın özgün proje modeli değildir - ayrıdır, .imldosyalarda tutulur ve .idea/dizinlerdeki meta verilerdir . Android Studio'da, bu şeyler büyük ölçüde Gradle derleme komut dosyalarından oluşturulur, bu nedenle bazen dosyaları değiştirdiğinizde "projeyi Gradle dosyalarıyla senkronize et" istenir build.gradle. Bu nedenle, .imldosyaları yeniden oluşturmaya zahmet etmiyorsunuz .idea/, çünkü içerikleri yeniden oluşturulacak.

Eclipse ve AS gibi farklı IDE'lerde çalışan bir ekibim varsa, proje IDE'sini nasıl agnostik hale getirebilirim?

Büyük ölçüde yapamazsınız.

Eclipse tarzı dizin yapısını (örneğin, proje kök dizinindeki kaynaklar ve manifest) kullanan bir Android projeniz olabilir. Gradle'a build.gradlebu yapıdaki dosyaları nasıl bulacağınızı öğretebilirsiniz . Ancak, diğer meta veriler ( compileSdkVersionbağımlılıklar vb.) Neredeyse kolayca kopyalanmayacaktır.

Diğer alternatifler:

  • Herkesi Maven gibi Eclipse ve Android Studio'ya eşit şekilde entegre edilmiş (veya bakış açınıza bağlı olarak değil) başka bir oluşturma sistemine taşıyın

  • Umut bu andmore belki Gradle yapı komut alınan Android projeler inşa edebilirsiniz bir Eclipse IDE olabilir böylece, yakında çıkartıyor

  • Herkesin bir IDE kullanmasını sağlayın


1
iml dosyasını kaldırırsam ne olur? iyi olacak mı?
E-Place

1
@ E-Place: Android Studio kullanıyorsanız, genellikle projeyi içe aktararak Android Studio'yu yeniden oluşturması gerekir. Android Studio onsuz çalışamaz.
CommonsWare

iml nasıl yaratılabilir? 4'ten fazla iml dosyam var
E-Place

@ E-Place: Normalde, .imlproje kökünde bir .imldosya ve her modül dizininde bir dosya (örn app/.) Olacaktır . Araçlar> Android> Project'i Gradle Dosyaları ile Senkronize Et'i deneyebilirsiniz. Aksi takdirde, projeyi yeniden içe aktarmanız gerekebilir. Bu alanda başka endişeleriniz varsa, lütfen yeni bir Yığın Taşması sorusu sorun.
CommonsWare

1
Sen olabilir herkes en az açısından, aynı IDE kullanan var *.imldosya ve .idea// Sen dağıtma varsayarak kullanarak dosyaları senkronize dizinde gitveya benzeri. Bunun için git, .gitignore@Pavel Synek'in önerdiği gibi, senkronize etmek istemediğiniz dosyalara dosyada başvurulduğundan emin olun . Yerel olarak onları geri / depo ve Yenilenme silin gerekir, ama bu sadece var mv, git commitve mv.
Sarah Messer

76

Ekle .ideave *.imlkarşı .gitignorebaşarıyla ithalat ve projeyi derlemek için, bu dosyaları gerekmez.


16
Tamam, ama bunlar ne? Nasıl çalışırlar ve etkileri nelerdir? Başka bir projenin kaynağına bakıyorum ve iml dosyasında sadece orada mevcut olan bir modül var, örneğin gigya için ve manifest dışında başka bir yerde görmüyorum. Peki, bu modül projede mevcut mu yoksa hayır mı?
shadox

3
.ideabir bütün olarak asla göz ardı edilmemelidir. Tüysüz kurallar ve özel sözlükler gibi bir takımın kesinlikle sürüm kontrolüne teslim edilmesini isteyeceği birkaç dosya içerir.
M-Pixel

2
Bu, soruyu cevaplamaya bile çalışmaz.
papatya

12

Bunlar modül bilgilerini ve meta verilerini tutan proje dosyalarıdır.

Sadece eklemek *.imliçin .gitignore.

Android Studio'da: Projenizi yeniden oluşturmak için CTRL+ tuşuna basın F9. Eksik *.imldosyalar oluşturulacaktır.


2

Bu dosyalar Android Studio düzenleyicisi tarafından oluşturulur ve kullanılır.

Sürüm denetimi için bu dosyaları teslim etmeniz gerekmez.

Git, teslim edilmesi gerekmeyen dosya ve dizinlerin listesini öğrenmek için dosya ve dizin listesini içeren .gitignore dosyasını kullanır.

Android stüdyosu, herhangi bir sürüm kontrolünde kontrol edilmesi gerekmeyen tüm dosyaları ve dizinleri listeleyen .gitingnore dosyalarını otomatik olarak oluşturur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.