Android Studio Proje Yapısı (v. s. Eclipse Proje Yapısı)
Android geliştirme öğrenmeye çalışıyorum ve başlangıçta Eclipse ve Android Studio arasında farklı proje yapıları tarafından karıştı. Bu zor dersler Tutulması için tasarlanmış takip ediyor. Herkes bu farklar neden var olduğunu bana haber verebilir mi? Bulunması gerekir?
Eğer iki farklı IDE içinde r.java dosyayı bulmak için olsaydı örneğin, bu yollar, bu gibi görünecektir:
Eclipse:app\gen\com.example.app\R.java
Android Studio:app\build\source\r\debug\com.example.app\R.java
Neden bu yollar farklı mı? Neden benim r.java Android Studio hata ayıklama klasöründe bulunur? Bu bazı hataları erken neden, ve eğer biri bu farklar herhangi bir bilgi varsa onları takdir ediyorum.
CEVAP
Gizem: Studio Proje Yapısı Android ve Sistemi Oluşturmak
Eğer bu Gradle İnşa Sistemi (bahse girerim) dolayı mı bilmiyorum, ama şu ana kadar anladım ne olduğunu söyleyeyim.
Güncelleme 4:2014/09/11 EklediKopya Kağıdı*,* 1 ** 0 ve Variants
(sonunda bu yaz için güvende hissediyorum :D)
Güncelleme 3:2014/09/11 karşılaştırma çalışma alanları ve projeleri kesin olarak güncellenmiştir
Güncelleme 2:2014/04/17 OLARAK proje yapısı daha fazla detay Eklendi
Güncelleme 1:2013/07/29 Eklendi Kişisel Proje Yapısı
Bu Kişisel Proje yapısı (sonunda) android eklentisi ile Kişisel. Android Studio, ancak proje bir yapı gibi ikiye böldü:
Yapısı: Projeler ve Modüller
modülAndroid StudiogibiprojeEclipse
projeAndroid Studiogibiçalışma alanıEclipse(hassas, birbirine bağlı proje ile bir çalışma alanı
the documentation (Android Studio, Eclipse dayanmaktadır) :
Eclipse içinde ne yaparsan yap, bir bağlamda bunu proje. Bir proje temsil eden bir kuruluş birimi. tam yazılım çözümü.
Bitmiş ürün ayrık bir dizi içine çürümüş olabilir izole modülleri, ama onları bir araya getiren proje bir tanım. birlikte ve daha büyük bir bütün içine bağları.
Android, app, ve kütüphane ve başına test uygulama başına bir modül başına bir proje anlamına geliyor.
Eğer aynı proje içinde birden fazla uygulamaları oluşturmak için çalışırsanız, birden çok sorunları vardır. Mümkün, ama eğer deneyin, eğer benim yaptığım gibi), hemen hemen her proje başına tek bir uygulama ile çalışmak üzere tasarlanmış olduğunu göreceksiniz.
Örneğin, bir seçenek için "yeniden inşa projesi", hiç bir şey ile çok sayıda uygulama, diğer birçok proje ayarları olabilir işe yaramaz, ve yerleşik VCS sistemi değil büyük bir zaman var birden çok depoları.
Yapısı: Klasör Yapısı
Üst Düzey Klasörler
1. Ana Proje
Tüm bu olurduproje kapsamında(Eclipse Arazi:Çalışma alanınızı ama projenizle ilgili ne sınırlı) gibi. Örn: eğer verdiğin uygulama adı* 4 HelloWorldProject
*
2. .fikir
Belirli meta veri projesi nerede bu Android Studio (AS) tarafından saklanır. (Eclipse Arazi:project.properties
dosyası)
3. Proje Modülü
Bu gerçek bir proje. örn: eğer verdi uygulama adı Hello world olsaydı 6**
4. gradle
Bu gradle sistem bu jar jar OLARAK gradle Windows (benim durumumda OS) yüklü şekilde iletişim kuruyor sarıcı yani inşa nerede.
5. Dış Kitaplıkları
Bu aslında bir klasör ama Kütüphaneler Başvurulan bir yer değilEclipse Arazi:Kütüphaneler başvurulan) gösterilir. Hedeflenen Platform vb gösterilir.
[Yan not:Bu Tutulma topraklarda çoğumuz başvurulan kitaplıkları silmek ve Proje Özellikleri referans hatalarını düzeltmek için Düzeltmek için kullanılan, hatırladın mı?]
Proje Detaylı bir Klasör
Bu #3 yukarıdaki listede sayıdır. Aşağıdaki alt dizin vardır
1. inşa
Bu make
süreç yani tüm sınıfları tam çıktı.dex, derlenmiş sınıfları ve vb kaynaklar.
Android Studio GUI, sadece birkaç klasörler gösterilir. Önemli parçasısenin R.java burada bulundualtındabuild/source/<flavor>/r/<build type(optional)>/<package>/R.java
2. libs
Bu standart libs gördüğünüz klasörkara tutulmaçok
3. src
Burada, sadece src
klasör ve res
klasöründeki karşılık gelen java
res
klasörüne bakınKara Tutulma. Bu kadar basitleştirme IMHO karşılandı.
Modülleri not:
Modülleri gibiKara Tutulmaprojeler. Burada fikri olan var bir tane Uygulama Projesi (Modül #3 listesinde üstü) ve çok sayıda kütüphane projeleri olarak ayrı Modüller altında küresel proje klasörü (#1 yukarıdaki liste)) hangi Uygulama Projesi bağlıdır. Bu kütüphane projeleri yeniden nasıl kullanılabileceğini diğer uygulamalarda, ben hala öğrenemedim.
[Yan not:Src klasöründe basitleştirmeleri gibi bazı yararları vardır re-organizasyon bütün, ama çok komplikasyon. Komplikasyonlar nedeniyleÇOK ÇOKbu yeni proje düzeni üzerinde ince belgeler.]
Yeni Yapı Sistem
User Guide for the new Build System
Tatlar ve buildTypes açıklaması, vs - yaygara Nedir?
Tatlar ve buildTypes için CheatSheet
BuildType:debug
release
buildTypes
tüm projelerde varsayılan olarak kullanılabilir. Bina/derlemeAYNI KODfarklı APKs oluşturmak için. Örneğin release
APKs istiyorsunuz run Marathon(gizleme), işaret ile sizin anahtar (karşı hata ayıklama anahtarı), kaç iyileştirme (belki) Marathon veya diğer araçlar) kullanımı biraz farklı packageNames
(com.company.product
release
com.company.product.debug
debug
), vb. Biz de release
inşa logcat uygulaması yavaş yapar beri) oturum kapatmak için hata ayıklama bayrağı (BuildConfig.DEBUG
) kullanın. Bunun için daha hızlı debug
geliştirme sırasında inşa yapar, ama aynı zamanda release
optimize edilmiş oyun deposuna koymak için inşa.
Ürün Lezzet:Varsayılan tatlar mevcut (veya daha doğrusu, varsayılan lezzet boştur/isimsiz) vardır. Flavors
olabilirücretsiz sürümüyaücretli sürümüneredeFARKLI BİR KOD. Main
Kod ama farklı sürümü(ya da sürümleri) bir kaç kaynak kodu dosyaları veya aynı kaynakları paylaşmak.
BuildVariant:buildVariant
bir oluşturulan bir MUAYENE aslında karşılık gelir. Yani (sırayla) adlıProduct Flavor
*30= Build Variant
*.
Örnek 1:iki çeşit olarak free
paid
varsa. Bu yapı elde türevleri:
Ücretsiz - hata ayıklama
Serbest bırakın
- Hata ayıklama ödedi
- Serbest ödedi
Bu 4 Olası MUAYENE yapılandırmaları. Birkaç yapılandırmaları belirli bir proje, ama bunlar bir anlam ifade etmiyor olabilirmevcut.
Örnek 2:(yeni projeler/ no tatlar için) 2 buildVariants
veya APKs kullanılabilir, varsayılan lezzet isimsiz olduğu için boş/:
hata ayıklama
bırakın
Bu Intellij's Project Structure ile yardımcı olur: Eğer karşılaştırın
.fikir (1)klasör alt klasörler bir dizi, esas olarak Eclipse iç bilgileri içerir.
Src (2)klasör myactivity.java içerir(3) dosya kaynak kodubu uygulama işlevselliğini uygular. Dosya com aittir.örnek paket.
Res (4)klasör çeşitli görsel kaynakları içerir.
Layout/main.xml dosya (5)uygulama görünümünü tanımlar çeşitli kaynaklardan oluşturdu.
Değerleri klasörü (6)olduğunu saklamak için tasarlanmıştır .çeşitli kaynakları tanımlayan xml dosyaları. Halen, klasör strings.xml Dize kaynakları tanımlarını dosyası içerir. Ekleme Renkli bir bölüm göreceksiniz, layout klasörü aynı zamanda, örneğin, renk tanımlayıcı içerebilir.
Drawable klasörü (7)içeren görüntüler.
(8) gen klasörübu içerirR.java (9)linkler görsel kaynaklar ve Java kaynak kodu dosyası. Aşağıdaki bölümlerde görüleceği gibi, Eclipse statik kaynakları ve R.java entegrasyon destekler. Herhangi bir kaynağa eklenen veya kaldırılan dönmez, R.java ilgili sınıflar ve sınıf alanları otomatik olarak veya buna göre oluşturulan kaldırılır. R.java bu dosya da com aittir.örnek paket.
Can't proje yapısı (Android Studi...
Nasıl Eclipse, Android Studio bir proj...
Eclipse proje alınamadı Android Studio...
Nasıl Eclipse, Android Studio proje al...
Python bir uygulama için en iyi proje ...