SORU
2 Temmuz 2013, Salı


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
16 Temmuz 2013, Salı


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ı

Android Studio Project Structure

Ü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

Intellij Project Structure Snapshot

.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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DominicFear

    DominicFear

    30 Kasım 2006
  • megablueblaster

    megablueblas

    23 HAZİRAN 2006
  • THE RED DRAGON

    THE RED DRAG

    6 ŞUBAT 2009