I'm mencoba untuk belajar pengembangan android dan saya awalnya bingung dengan proyek yang berbeda struktur antara Eclipse dan Android Studio. Hal ini membuat sulit untuk mengikuti tutorial yang dirancang untuk Eclipse. Bisa siapa saja biarkan aku tahu mengapa perbedaan ini ada? Mereka harus ada?
Misalnya, jika saya menemukan R.java file dalam dua berbeda IDEs, jalan akan terlihat seperti ini:
Eclipse: app\gen\com.example.app\R.java
Android Studio: app\build\source\r\debug\com.example.app\R.java
Kenapa jalur ini berbeda? Mengapa saya R.java terletak di folder debug di Android Studio? Ini menyebabkan beberapa kesalahan di awal, dan kalau ada yang punya wawasan tentang perbedaan-perbedaan ini, saya akan menghargai mereka.
Saya don't tahu apakah ini karena Gradle Membangun Sistem (I'd bertaruh itu), tapi saya'akan memberitahu anda apa yang saya've dipahami sejauh ini.
Update 4: 2014/09/11 Ditambahkan Contekan untuk BuildTypes
, Rasa
dan Varian
(akhirnya saya merasa percaya diri untuk menulis ini :D)
Update 3: 2014/09/11 Diperbarui perbandingan ruang kerja dan proyek-proyek harus tepat
Update 2: 2014/04/17 Menambahkan lebih detail untuk SEBAGAI struktur proyek
Update 1: 2013/07/29 Menambahkan IntelliJ Struktur Proyek
Yang IntelliJ's struktur Proyek (ditampilkan di bagian akhir) adalah untuk IntelliJ dengan android plugin. Android Studio, bagaimanapun, memiliki struktur proyek dibagi seperti berikut:
modul di Android Studio seperti proyek di Gerhana proyek di Android Studio seperti ruang kerja di Gerhana (harus tepat, sebuah ruang kerja dengan saling proyek) Dari [dokumentasi][1] (Android Studio adalah berdasarkan Intellij IDEA) :
apa Pun yang anda lakukan di IntelliJ IDEA, anda melakukan itu dalam konteks proyek. Proyek adalah suatu unit organisasi yang mewakili solusi perangkat lunak yang lengkap.
produk jadi Anda dapat didekomposisi menjadi serangkaian diskrit, terisolasi modul, tapi itu's a pengertian proyek yang membawa mereka bersama-sama dan mengikat mereka ke dalam keseluruhan yang lebih besar. Untuk Android, itu berarti salah satu proyek per aplikasi, dan satu modul per perpustakaan dan per aplikasi tes. Ada beberapa masalah jika anda mencoba untuk membangun beberapa aplikasi yang ada di dalam proyek yang sama. It's mungkin, tetapi jika anda mencoba (seperti yang saya lakukan), anda akan melihat bahwa hampir semuanya dirancang untuk bekerja dengan satu aplikasi per proyek. Misalnya, ada pilihan untuk "membangun kembali proyek", yang tidak masuk akal dengan beberapa aplikasi, banyak proyek lain pengaturan akan sia-sia, dan built-in sistem VCS isn't besar ketika anda hanya memiliki beberapa repositori.
Struktur: Struktur Folder
Top Level Folder###
1. Proyek Utama###
Ini akan menjadi seluruh konteks proyek (Gerhana Tanah: Seperti ruang kerja anda, tetapi terbatas pada apa yang's relevan untuk proyek anda). Ex:
HelloWorldProject
jika nama aplikasi yang anda berikan adalahHelloWorld
2. .ide###
Ini di mana proyek tertentu metadata disimpan oleh Android Studio (AS). (Gerhana Tanah:
proyek.properties
file)3. Modul Proyek###
Ini adalah proyek yang sebenarnya. ex:
HelloWorld
jika aplikasi anda, nama yang anda berikan adalah HelloWorld4. gradle###
Ini adalah di mana gradle membangun sistem's jar wrapper yaitu jar ini adalah bagaimana berkomunikasi dengan gradle diinstal di Windows (OS dalam kasus saya).
5. Perpustakaan Eksternal###
Ini tidak benar-benar sebuah folder, tetapi tempat di mana Dirujuk Perpustakaan (Gerhana Tanah: Dirujuk Perpustakaan) yang akan ditampilkan. Berikut ini's di mana Target Platform ditampilkan dll. [Catatan: Ini di mana banyak dari kita di Eclipse Lahan yang digunakan untuk menghapus dirujuk perpustakaan dan Fix Project Properties untuk memperbaiki kesalahan referensi, ingat?]
Folder proyek secara Detail##
Ini adalah nomor #3 pada daftar di atas. Berikut sub dirs
1. membangun###
Ini memiliki fasilitas yang lengkap keluaran dari
membuat
proses yaitu kelas.dex, yang disusun dalam kelas-kelas dan sumber daya, dll. Di Android Studio GUI, hanya beberapa folder yang akan ditampilkan. Bagian yang penting adalah bahwa anda R.java ditemukan di sini bawahmembangun/sumber/<rasa>/r/<membangun jenis(opsional)>/<paket>/R.java
2. libs###
Ini adalah standar libs yang anda lihat di gerhana tanah terlalu
3. src###
Di sini, anda hanya melihat
jawa
danres
folder yang sesuai dengansrc
dan folderres
folder di Gerhana Tanah. Ini adalah banyak disambut penyederhanaan IMHO.Catatan pada modul-Modul:##
Modul-modul seperti Gerhana Tanah proyek-proyek. Berikut gagasan adalah bahwa anda memiliki satu proyek aplikasi (Modul #3 dalam daftar di atas) dan beberapa proyek-proyek perpustakaan(sebagai Modul terpisah di bawah global folder proyek (#1 pada daftar di atas)) mana proyek aplikasi tergantung pada. Cara ini proyek-proyek perpustakaan dapat digunakan kembali di aplikasi lain, saya masih belum't menemukan. [Catatan: seluruh re-organisasi memiliki beberapa manfaat seperti penyederhanaan dalam folder src, tapi begitu banyak komplikasi. Komplikasi terutama karena SANGAT tipis dokumentasi pada proyek baru ini tata letak.]
Baru Membangun Sistem
Panduan pengguna untuk Membangun Sistem
Penjelasan dari rasa dan buildTypes, dll - Apa keributan tentang?##
CheatSheet untuk rasa dan buildTypes
BuildType:
debug
danrilis
adalahbuildTypes
yang tersedia secara default pada semua proyek. Mereka adalah untuk membangun/menyusun KODE yang SAMA untuk menghasilkan berbagai APKs. Misalnya padarilis
APKs anda yang ingin menjalankan proguard(untuk kebingungan), tanda itu dengan kunci anda (seperti terhadap debug kunci), menjalankan optimasi (mungkin melalui proguard atau alat-alat lain), gunakan sedikit berbedapackageNames
(kami menggunakancom.perusahaan.produk
untukmelepaskan
dancom.perusahaan.produk.debug
untukdebug
), dll. Kami juga menggunakan debug bendera (BuildConfig.DEBUG
) untuk mematikan logging untuk logcat (karena itu membuat aplikasi lambat) padarilis
membangun. Hal ini membuat untuk lebih cepatdebug
membangun selama pembangunan, tetapi juga dioptimalkanrilis
membangun untuk menempatkan di play store. Produk Rasa: tidak Ada standar rasa yang tersedia (atau tepatnya, rasa default adalah kosong/tanpa nama).Rasa
bisa menjadi versi gratis ** atau versi dibayar di mana mereka memiliki KODE yang BERBEDA. Mereka yangUtama
Kode tapi versi yang berbeda(atau tidak ada versi) dari beberapa file kode sumber atau sumber daya. BuildVariant: AbuildVariant
adalah apa yang dihasilkan APK benar-benar sesuai dengan. Mereka bernama suka jadi (dalam urutan)Produk Rasa
+Membangun Type
=Membangun Varian
. Contoh 1: jika anda memilikifree
dandibayar
sebagai dua rasa. Membangun varian yang akan anda dapatkan adalah: Gratis - debug Gratis - rilis Dibayar - debug Dibayar - rilis Jadi itu adalah 4 kemungkinan APK konfigurasi. Beberapa konfigurasi yang mungkin tidak masuk akal dalam suatu proyek tertentu, tetapi mereka sedang yang tersedia. Contoh 2:** (untuk proyek-proyek baru/ tanpa rasa) Anda memiliki 2buildVariants
atau Apk yang tersedia, karena default rasa tanpa nama/kosong: debug rilisBandingkan dengan Intellij's Struktur Proyek jika yang membantu:#
Itu .ide (1) folder berisi sejumlah subfolder, terutama dengan internal IntelliJ IDEA informasi. Src (2) folder berisi MyActivity.java (3) file source code yang mengimplementasikan fungsionalitas dari aplikasi anda. File termasuk com.contoh paket. Res (4) folder berisi berbagai visual resources. The layout/main.xml file (5) mendefinisikan tampilan aplikasi merupakan sumber dari berbagai jenis. Folder values (6) ini dimaksudkan untuk menyimpan .file xml yang menggambarkan sumber-sumber dari berbagai jenis. Saat ini, folder yang berisi strings.xml file dengan String sumber daya definisi. Seperti yang anda akan melihat dari Menambahkan bagian Warna, tata letak folder juga dapat mengandung, misalnya, deskripsi warna. Folder ditarik (7) berisi gambar. Gen (8) folder mengandung R.java (9) file yang menghubungkan visual sumber daya dan kode sumber Java. Seperti yang anda akan melihat dari bagian bawah, IntelliJ IDEA mendukung integrasi yang erat antara sumber daya statis dan R.java. Secepat apapun sumber daya yang ditambahkan atau dihapus, sesuai kelas-kelas dan bidang dalam R.java secara otomatis dibuat atau dihapus. Yang R.java file juga termasuk com.contoh paket.
Android Studio: app\build\source\r\debug\com.example.app\R.java
Mengapa jalur ini berbeda? Mengapa saya R.java terletak di folder debug di Android Studio? Ini menyebabkan beberapa kesalahan di awal, dan kalau ada yang punya wawasan tentang perbedaan-perbedaan ini, saya akan menghargai mereka.
Sederhananya, Android Studio dikonfigurasi untuk membangun debug Membangun Jenis pada sistem anda.
Eclipse/ADT dirancang untuk mendukung membangun tunggal pada suatu waktu (dari apa yang saya tahu). Salah satu tujuan utama dari new membangun sistem (dari pengguna guide):
Make it easy to create several variants of an application,
either for multi-apk distribution or for different flavors of an application
Jadi yang mana seperti Eclipse/ADT bisa menghasilkan satu R.java
file, Android Studio mendukung beberapa. Yang dihasilkan R.java
terletak di debug
folder karena secara default baru membangun sistem yang mendukung debug
dan rilis
membangun jenis dari kelelawar. Jika anda berubah anda membangun varian (tombol pojok kiri bawah dari AS) untuk melepaskan akan menghasilkan R.java
di release
direktori.
Ini mungkin tidak berarti apa-apa untuk proyek-proyek sederhana, tapi dukungan dari Membangun Varian berarti drastis penyederhanaan proses membangun bagi banyak pengembang, termasuk proyek I'm bekerja pada.
Proyek kami mendukung 4 rasa dengan 2 membangun jenis (debug dan release), untuk mendukung total 8 berbeda APK kombinasi. Dan masing-masing kombinasi tersebut memiliki konfigurasi yang sedikit berbeda, jadi ini membangun sistem benar-benar bekerja untuk kita. My android studio diinstal pada mesin yang berbeda, tetapi jika memori menyajikan saya dengan benar R.java
file yang ada di membangun/sumber/<rasa>/r/<membangun jenis>/package/R.java
. Ketika kami CI membangun server file APK menggunakan masing-masing R.java
files untuk menghasilkan paket terpisah.
Google Menghentikan dukungan untuk Android Developer Tools (ADT) dalam Gerhana berakhir, sesuai dengan pengumuman kami. Anda harus bermigrasi aplikasi anda proyek-proyek pembangunan untuk Android Studio sesegera mungkin. Untuk informasi lebih lanjut tentang transisi ke Android Studio, lihat melakukan Migrasi ke Android Studio.
Jadi terbaik untuk Android development tool Android Studio hanya untuk semua dukungan masa depan Android M ---
Untuk android Studio 3.0.1 dan memilih semua fitur:
Struktur dalam versi 3.0.1 tidak terlihat sama sekali seperti semua jawaban yang lain.
Baru-baru ini struktur adalah seperti yang ditampilkan pada tahun 2018, Android Studio 3.0.1 01/2018.
Newbie agak ditemukan sesuatu yang menyerupai untuk digunakan dalam fitur sub-folder:
Update Android Studio 3.0.1 01_2018:
ToolTip: