Gradle benim için biraz kafa karıştırıcı ve ayrıca herhangi bir yeni android geliştiricisi için. Herkes Android Studio'da Gradle'ın ne olduğunu ve amacının ne olduğunu açıklayabilir mi? Android Studio'ya neden dahil edildi?
Gradle benim için biraz kafa karıştırıcı ve ayrıca herhangi bir yeni android geliştiricisi için. Herkes Android Studio'da Gradle'ın ne olduğunu ve amacının ne olduğunu açıklayabilir mi? Android Studio'ya neden dahil edildi?
Yanıtlar:
Gradle bir yapı sistemidir.
Android Studio'dan önce geliştirme amaçları için Eclipse'yi kullanıyordunuz ve şansınız, Eclipse olmadan Android APK'nızı nasıl oluşturacağınızı bilmiyordunuz.
Bunu komut satırında yapabilirsiniz, ancak SDK'da her aracın (dx, aapt) ne yaptığını öğrenmeniz gerekir. Eclipse, kendi yapı sistemlerini vererek hepimizi bu düşük seviyeli ama önemli, temel detaylardan kurtardı.
Şimdi, res
klasörün neden klasörünüzle aynı dizinde olduğunu merak ettiniz src
mi?
Yapı sisteminin resme girdiği yer burasıdır. Derleme sistemi tüm kaynak dosyaları ( .java
veya .xml
) otomatik olarak alır , ardından uygun aracı uygular (örneğin java
sınıf dosyalarını alır ve dosyalara dönüştürür dex
) ve hepsini tek bir sıkıştırılmış dosyada, sevgili APK'mda gruplandırır.
Bu derleme sistemi bazı kurallar kullanır: bunlara örnek olarak kaynak dosyaları (Eclipse bu \src
klasördür) veya kaynak dosyalarını (Eclipse bu \res
klasördür) içeren dizini belirtmektir .
Şimdi, tüm bu görevleri otomatikleştirmek için bir senaryo olmalı; Linux'ta toplu komut dosyası veya Windows'ta toplu dosya sözdizimini kullanarak kendi derleme sisteminizi yazabilirsiniz. Anladım?
Gradle, diğer derleme sistemlerinden en iyi özellikleri alan ve bunları tek bir sistemde birleştiren başka bir derleme sistemidir. Eksikliklerine dayanılarak iyileştirildi. Bu bir olan JVM yapı sistemi esas demekse Android Studio kullanan Java kendi el yazısı yazabilirsiniz ne olduğunu.
Gradle hakkında harika bir şey, eklenti tabanlı bir sistem olmasıdır . Bu, kendi programlama diliniz varsa ve kaynaklardan bir paket (Java için bir JAR gibi çıktı) oluşturma görevini otomatikleştirmek istiyorsanız, Java veya Groovy'da tam bir eklenti yazabilirsiniz (veya Kotlin, buraya bakın ) ve dünyanın geri kalanına dağıtın.
Google, piyasadaki en gelişmiş derleme sistemlerinden birini gördü ve Groovy veya başka bir yeni dil öğrenmeden çok az veya hiç öğrenme eğrisi olmadan kendi komut dosyalarını yazabileceğinizi fark etti. Bu yüzden Gradle için Android eklentisini yazdılar.
build.gradle
Projenizde dosya (lar) görmüş olmanız gerekir . Görevlerinizi otomatikleştirmek için komut dosyaları yazabileceğiniz yer burasıdır. Bu dosyalarda gördüğünüz kod Groovy kodudur. Eğer yazarsanız System.out.println("Hello Gradle!");
konsolunuzda yazdıracaktır.
Basit bir örnek, gerçek oluşturma işlemi gerçekleşmeden önce bazı dosyaları bir dizinden diğerine kopyalamanız gerektiğidir. Bir Gradle derleme betiği bunu yapabilir.
Google'ın Android için kullanmak istediği yeni oluşturma aracıdır. Karıncadan daha genişletilebilir ve kullanışlı olması nedeniyle kullanılmaktadır. Geliştirici deneyimini geliştirmek içindir.
Google I / O'daki Android Geliştirici Ekibinden Xavier Ducrohet'in bir konuşmasını burada görüntüleyebilirsiniz.
Android Studio'da Xavier ve Tor Norbye tarafından da Google I / O sırasında başka bir konuşma var .
Gradle , Android Studio'da çalışan bir derleme sistemidir .
Diğer dillerde örneğin:
Gradle
Benzer olduğunu söylediğinde make
, ben sadece onun konsept var
Gradle
Android Studio'da ne olduğu ve nasıl kullanılacağı hakkında ayrıntılı bir açıklama .
Gradle Dosyalarını Keşfetme
Gradle Build Dosyaları
Gradle derleme dosyaları Domain Specific Language or DSL
, özel derleme mantığını tanımlamak ve Gradle için Android eklentisinin Android'e özgü öğeleriyle etkileşim kurmak için a kullanır.
Android Studio projeleri, bağımsız olarak oluşturabileceğiniz, test edebileceğiniz ve hata ayıklayabileceğiniz bileşenler olan 1 veya daha fazla modülden oluşur. Her modülün kendi oluşturma dosyası vardır, bu nedenle her Android Studio projesi 2 çeşit Gradle derleme dosyası içerir.
Üst Düzey Derleme Dosyası: Burası, projenizi oluşturan tüm modüller için ortak olan yapılandırma seçeneklerini bulacağınız yerdir.
Modül Seviyesi Derleme Dosyası: Her modülün, modüle özgü derleme ayarlarını içeren kendi Gradle derleme dosyası vardır. Zamanınızın çoğunu projenizin en üst düzey derleme dosyası yerine modül düzeyindeki derleme dosyalarını düzenlemek için harcayacaksınız.
Bu build.gradle
dosyalara göz atmak için Android Studio'nun Proje panelini açın (Proje sekmesini seçerek) ve Gradle Scripts klasörünü genişletin. Gradle Scripts klasöründeki ilk iki öğe proje düzeyinde ve modül düzeyinde Gradle derleme dosyalarıdır
Üst Düzey Gradle Derleme Dosyası
Her Android Studio projesi tek bir üst düzey Gradle derleme dosyası içerir. Bu build.gradle
dosya, Gradle Scripts klasöründe görünen ve açıkça Project olarak işaretlenmiş ilk öğedir.
Çoğu zaman, bu dosyada herhangi bir değişiklik yapmanız gerekmez, ancak içeriğini ve projenizde oynadığı rolü anlamak hala yararlıdır.
Modül Seviyesi Gradle Derleme Dosyaları
Proje düzeyinde Gradle derleme dosyasına ek olarak, her modülün kendi Gradle derleme dosyası vardır. Aşağıda, temel, modül düzeyinde bir Gradle derleme dosyasının açıklamalı sürümü bulunmaktadır.
Diğer Gradle Dosyaları
Build.gradle dosyalarına ek olarak, Gradle Scripts klasörünüz diğer bazı Gradle dosyalarını da içerir. Çoğu zaman projenizde alakalı değişiklikler yaptığınızda otomatik olarak güncelleneceği için bu dosyaları el ile düzenlemeniz gerekmez. Ancak, bu dosyaların projenizdeki rolünü anlamak iyi bir fikirdir.
gradle-wrapper.properties (Gradle Sürümü)
Bu dosya, makinelerinde Gradle yüklü olmasa bile diğer kişilerin kodunuzu oluşturmasına izin verir. Bu dosya, Gradle'ın doğru sürümünün kurulu olup olmadığını kontrol eder ve gerekirse gerekli sürümü indirir.
settings.gradle
Bu dosya, projenizi oluşturan tüm modülleri referans alır.
gradle.properties (Proje Özellikleri)
Bu dosya tüm projeniz için yapılandırma bilgilerini içerir. Varsayılan olarak boştur, ancak projenize bu dosyaya ekleyerek çok çeşitli özellikler uygulayabilirsiniz.
local.properties (SDK Konumu)
Bu dosya, Android Gradle eklentisine Android SDK kurulumunuzu nerede bulabileceğini söyler.
Not: local.properties
Android SDK'nın yerel kurulumuna özgü bilgiler içerir. Bu, bu dosyayı kaynak denetimi altında tutmamanız gerektiği anlamına gelir.
Önerilen okuma - Tutsplus Eğitimi
Bundan kepçeyi açıkça anladım.
Gradle, programın kaynak kodunu oluşturan bir tür oluşturma aracıdır . Bu nedenle, Android Studio'nun önemli bir parçasıdır ve uygulamanızı geliştirmeye başlamadan önce yüklenmesi gerekir.
Ayrı olarak yüklememiz gerekmiyor, çünkü ilk projemizi yaptığımızda Android Studio bunu bizim için yapıyor.
TANIM :: Gradle o araçları ve oluşturmak için bir projenin kaynaklarını yönetmek için esneklik yapýlar bir geliştirici sağlayan bir yapılandırılmış yapı mekanizması tarif edilebilir smaller in size
, targeting specific requirements
belli yapılandırmaları belli cihazlarda
TEMEL YAPILANDIRMALAR
minimumSdk
maximumSdk
targettedSdk
versionCode
versionName
KÜTÜPHANELER :: Daha önce sıkıcı bir görev olan android kütüphanelerini veya diğer üçüncü taraf kütüphanelerini gereksinimlere göre kolayca ekleyebiliriz. Kütüphane mevcut projeye uymuyorsa, geliştiriciye kişinin projede değişiklik yapmak için uygun bir çözüm bulabileceği bir kütüphane gösterilir, böylece kütüphane eklenebilir. Sadece bir bağımlılık hattı
YAPI ÇEŞİTLERİ ÜRETİMİ
Yapı çeşitlerini elde etmek için yapı türlerini yapı aromalarıyla birleştirmek
==================== ====================
| BuildTypes | | ProductFlavours |
-------------------- ====================== --------------------
| Debug,Production | || || | Paid,Free,Demo,Mock|
==================== || || ====================
|| ||
VV VV
=================================================================
| DebugPaid, DebugFree, DebugDemo, DebugMock |
| ProductionPaid, ProductionFree, ProductionDemo, ProductionMock |
=================================================================
KÜÇÜK BOYUT
Gradle, kullanılmayan kaynakları ve kullanılmayan şeyleri entegre kitaplıklardan kaldırarak oluşturulan yapının boyutunu azaltmaya yardımcı olur
İZİNLERİ YÖNETME
Gereksinimlere dayalı olarak belirli senaryolara belirli izinler ekleyerek belirli derlemeler için belirli izinleri belirtebiliriz
BELİRLİ CİHAZLAR İÇİN YAPILAR
Belirli yoğunlukları ve belirli API düzeylerini içeren belirli cihazlar için oluşturma oluşturmayı yönetebiliriz. Bu, birden fazla cihaz türündeki gereksinimlere göre uygulama mağazasında ürün dağıtımlarına yardımcı olur
İYİ REFERANS
Gradle hakkında bilmeniz gereken her şeyi burada bulabilirsiniz: Gradle Plugin Kullanım Kılavuzu
Yeni Derleme Sisteminin Hedefleri
Yeni inşa sisteminin amaçları:
- Kodu ve kaynakları yeniden kullanmayı kolaylaştırın
- Çoklu apk dağıtımı veya uygulamanın farklı tatları için bir uygulamanın çeşitli varyantlarını oluşturmayı kolaylaştırın
- Oluşturma işlemini yapılandırmayı, genişletmeyi ve özelleştirmeyi kolaylaştırın
- İyi IDE entegrasyonu
Neden Gradle?
Gradle, gelişmiş bir derleme sistemi ve eklentiler aracılığıyla özel derleme mantığı oluşturmaya izin veren gelişmiş bir derleme araç takımıdır.
Gradle'ı seçmemizi sağlayan özelliklerinden bazıları şunlardır:
- Yapı mantığını tanımlamak ve değiştirmek için Etki Alanına Özel Dil (DSL)
- Derleme dosyaları Groovy tabanlıdır ve bildirici öğelerin DSL aracılığıyla karıştırılmasına ve özel mantık sağlamak için DSL öğelerini değiştirmek için kod kullanılmasına izin verir.
- Maven ve / veya Ivy aracılığıyla yerleşik bağımlılık yönetimi.
- Çok esnek. En iyi uygulamaların kullanılmasına izin verir, ancak kendi yöntemlerini yapmaya zorlamaz.
- Eklentiler, yapı dosyalarını kullanmak için kendi DSL'lerini ve kendi API'lerini gösterebilir.
- IDE entegrasyonuna izin veren İyi Takım API'sı
Cevap bir , iki yazmak için iki öğreticiye başvuruyorum
Gradle genel amaçlı, bildirim oluşturucu bir araçtır. Genel amaçlıdır, çünkü derleme betiğinde uygulamak istediğiniz hemen hemen her şeyi oluşturmak için kullanılabilir. Yapı dosyasında okunamayan ve daha az bakım gerektirmeyen çok sayıda kod görmek istemediğiniz için bildirimseldir. Gradle, konvansiyonlar fikri ve basit ve beyan edici bir yapı sağlarken, aynı zamanda aracı uyarlanabilir hale getirir ve geliştiricileri genişletme yeteneği sağlar. Ayrıca, varsayılan davranışı özelleştirmek için kolay bir yol ve herhangi bir üçüncü taraf özelliği eklemek için farklı kancalar sağlar.
Gradle, her iki aracın da iyi bölümlerini birleştirir ve ek özellikler sağlar ve Groovy'yi Etki Alanına Özel Dil (DSL) olarak kullanır. Yapı yaşam döngüsü ve kullanım kolaylığı gibi Maven özellikleri ile Ant aracının gücüne ve esnekliğine sahiptir.
Neden Gradle? Neden şimdi?
Derleme aracının yanıtı, standart olmayan uzantı mekanizmaları aracılığıyla komut dosyası işlevselliği eklemektir. Komut dosyası kodunu XML ile karıştırır veya oluşturma mantığınızdan harici komut dosyaları çağırırsınız. Zaman içinde daha fazla özel kod eklemeniz gerektiğini hayal etmek kolaydır. Sonuç olarak, kaçınılmaz olarak kazara karmaşıklık getirirsiniz ve sürdürülebilirlik pencereden dışarı çıkar.
Projenizin yayın sürümünü oluştururken dosyayı belirli bir konuma kopyalamak istediğinizi varsayalım. Sürümü tanımlamak için, meta verilerde projenizi açıklayan bir dizeyi kontrol edersiniz. Belirli bir numaralandırma düzeniyle eşleşiyorsa (örneğin, 1.0-RELEASE), dosyayı A noktasından B noktasına kopyalarsınız. Dış perspektiften önemsiz bir görev gibi gelebilir. Birçok geleneksel aracın yapı dili olan XML'e güvenmeniz gerekiyorsa, bu basit mantığı ifade etmek oldukça zorlaşır.
Java Derleme Araçlarının Gelişimi
Java derleme mantığı XML'de açıklanmalıdır. XML, hiyerarşik verileri tanımlamak için mükemmeldir, ancak program akışını ve koşullu mantığı ifade etmede yetersiz kalır. Bir yapı komut dosyası karmaşık bir şekilde büyüdükçe, bina kodunu korumak kabus haline gelir.
Ant'de , JAR hedefini derleme hedefine bağlı yaparsınız. Ant, projenizi nasıl yapılandıracağınız konusunda herhangi bir rehberlik vermez. Maksimum esnekliğe izin verse de, Ant her derleme betiğini benzersiz ve anlaşılması zor hale getirir. Projeniz için gereken harici kütüphaneler genellikle sürüm kontrolüne tabi tutulur, çünkü bunları merkezi bir konumdan çekmek için otomatik bir mekanizma yoktur.
Temmuz 2004'te serbest bırakılan Maven 1 bu süreci hafifletmeye çalıştı. Standart bir proje ve dizin yapısı ile bağımlılık yönetimi sağlamıştır. Ne yazık ki, özel mantığın uygulanması zordur
Gradle , bu oluşturma araçları nesline tam olarak uyar ve modern oluşturma araçlarının birçok gereksinimini karşılar (Şekil 1). Etkileyici bir DSL, yapılandırma yaklaşımı üzerinde bir sözleşme ve güçlü bağımlılık yönetimi sağlar. XML'den vazgeçmek ve yapı mantığınızı tanımlamak için dinamik Groovy dilini tanıtmak için doğru hareketi yapar. Zorlayıcı geliyor, değil mi?
Gradle, diğer oluşturma araçlarının en iyi özelliklerini birleştirir.
Gradle'ın İlgi Çekici Özellik Seti
Neden Java Projelerinizi Karınca veya Maven'den Daha Derecede Yapabilirsiniz?
Android için varsayılan derleme aracı (ve JVM'deki derleme araçlarının yeni yıldızı) karmaşık, çok dilli derlemelerin komut dosyalarını kolaylaştırmak için tasarlanmıştır. Yine de Ant veya Maven kullanıyorsanız değiştirmelisiniz?
Derleme komut dosyanızdaki Gradle'ın güç özelliklerinin kilidini açmanın anahtarı, aşağıdaki resimde gösterildiği gibi etki alanı modelini bulmak ve uygulamaktır.
Gradle, kurumsal yapınıza özgü tüm gereksinimleri bilemez. Kancaları yaşam döngüsü aşamalarına maruz bırakarak Gradle, yapı komut dosyasının yürütme davranışını izlemeye ve yapılandırmaya izin verir.
Gradle, Groovy'de uygulanan bir DSL'i açığa çıkararak modeli için bir kelime haznesi oluşturur. Karmaşık bir problem etki alanı ile uğraşırken, bu durumda, mantığı ifade etmek için ortak bir dil kullanabilmek, yazılım oluşturma görevi güçlü bir araç olabilir.
Başka bir örnek, derleme araçları tarafından çözülen çok yaygın bir sorun olan dış kitaplıklara bağımlılıkları ifade etme yöntemidir. Kullanıma hazır Gradle, derleme komut dosyanız için, onları almak istediğiniz bağımlılıkları ve depoları tanımlamanıza olanak tanıyan iki yapılandırma bloğu sağlar. Standart DSL elemanları ihtiyaçlarınızı karşılamıyorsa, Gradle'ın genişletme mekanizması aracılığıyla kendi kelime bilginizi bile tanıtabilirsiniz.
Diğer Derleme Araçlarıyla Entegrasyon
Gradle, aşağıdaki resimde gösterildiği gibi öncekilerden Ant, Maven ve Ivy ile iyi oynuyor.
Projenizi Derlemeden Dağıtmaya Otomatikleştirme
Resimde: Dağıtım hattının aşamaları.
Kodu derleme
Koşu birimi ve entegrasyon testleri
Statik kod analizi yapma ve test kapsamı oluşturma
Dağıtım oluşturma
Hedef ortamı sağlama
Teslim edilebilir ürünü dağıtma
Duman ve otomatik fonksiyonel testlerin yapılması
Gradle bir yapı sistemidir . Derleme sistemleri , program derleme işlemini otomatikleştirmek için tasarlanmış yazılım araçlarıdır. Derleme sistemleri çeşitli biçimlerde gelir ve çeşitli yazılım derleme görevleri için kullanılır. Birincil amaçları verimli bir şekilde yürütülebilir dosyalar oluşturmaktır.
Bir diğer ilgili terim, bir yazılım derlemesinin oluşturulmasını otomatikleştirme işlemi olan Build otomasyonudur ve aşağıdakileri içeren ilişkili işlemleri içerir: bilgisayar kaynak kodunun ikili koda derlenmesi, ikili kodun paketlenmesi ve otomatik testlerin çalıştırılması.
Diğer diller için birkaç benzer yapı sistemi vardır ( buradaki tam listeye bakın ):
Söylemsel olma riski altında, bunun arkasında Android Studio / Gradle deneyiminin neden bu kadar kötü olduğu sorusu olduğunu düşünüyorum.
Tipik Clojure deneyimi:
Tipik Android Studio / Gradle deneyimi:
Bunun Gradle'ın hatası olduğuna emin değilim. Ancak "Eclipse projesinden içe aktarma" oldukça lapa lapa görünüyor. Gradle'ın iddia edilen tüm karmaşıklığı ve bir inşa sisteminin erdemleri için Android Studio, derleme bağımlılıklarını veya inşa sürecini Eclipse'den çok iyi ithal etmiyor gibi görünüyor.
Tam bir bağımlılık grafiğini içe aktarmanın ne zaman başarısız olduğunu söylemez. Android Studio, sorunun nasıl çözüleceği konusunda yararlı bir yardım veya ipucu vermemektedir. Eclipse klasörlerinde nereye bakabileceğinizi söylemez. Hangi kütüphanenin eksik olduğunu söylemiyor. Ya da onlar için Maven vb.
2016'da Leiningen / Clojars veya düğümün npm'si, Python'un pipi veya Debian apkg (ve diğer diller ve sistemler için birçok benzer paket yöneticisinin) iyi çalışır ... eksik bağımlılıklar geçmişte kaldı.
Android hariç. Android Studio artık eksik bağımlılık cehennemi yaşadığım tek yer.
Bunun Google'ın hatası olduğunu söylemeye meyilliyim. Güçlü bir dönüştürme işlemi üretmeden Eclipse'den Android Studio / Gradle'a geçmeye karar verdiklerinde Android ekosistemini (ve mevcut binlerce Android projesini / çevrimiçi öğreticiyi) kırdılar. Eclipse'de projeleri çalışan insanlar onları AS'ye adapte etmiyorlar (muhtemelen onlar için bir acı olduğu için). AS'de bu projeleri kullanmaya çalışan insanlar da aynı sorunlara çarpıyor.
Her neyse, Gradle bu süper güçlü yapı sistemiyse, neden hala sdk yöneticisinde diğer birçok bağımlılığı yönetiyorum? Diyelim ki ndk bunu gerektiren bir proje neden Gradle dosyasında belirtmiyor, böylece gerektiğinde otomatik olarak kuruluyor ve oluşturuluyor? NDK neden özel? Hedef platformlar için benzer şekilde mi? Neden sadece projemi onlara karşı kontrol etmek ve tüm bunları benim için sahne arkasında sıralamak yerine IDE'ye açıkça yüklüyorum?
Gradle
gelişmiş bir derleme sistemi ve eklentiler aracılığıyla özel derleme mantığı oluşturmayı sağlayan gelişmiş derleme araç takımıdır!
Avantajları:
Bildiri girişleri
DSL ile aşağıdaki manifest girişlerini yapılandırmak mümkündür:
Yapı varyantı
Varsayılan olarak, Android eklentisi projeyi otomatik olarak uygulamanın hem hata ayıklamasını hem de yayın sürümünü oluşturacak şekilde ayarlar.
Bağımlılıklar
Yerel dosya sisteminizde JAR dosyaları gibi bir modülün bağlı olduğu ikili arşivleriniz varsa, bu bağımlılıkları söz konusu modülün derleme dosyasında bildirebilirsiniz.
Önce depo listeye eklenmeli, daha sonra bağımlılık Maven veya Ivy'nin eserlerini beyan edecek şekilde beyan edilmelidir.
Gradle, Groovy JVM diline Java'nın karıncasıdır. Temel olarak, Groovy'nin oluşturma aracı. Ant'in aksine, tam Groovy diline dayanır. Örneğin, Gradle komut dosyasına belirli bir etki alanı diline güvenmek yerine bir şeyler yapmak için Groovy komut dosyası kodu yazabilirsiniz.
IntelliJ'in özel entegrasyonunu bilmiyorum, ancak Groovy'yi "özel" dil ilkelleri yazabileceğiniz ve "Groovy dilinin bir parçası" olacak şekilde "genişletebildiğinizi" hayal edin. (Groovy'nin meta programlaması kendi başına bütün bir tartışmadır.) IntelliJ / Google, Gradle'ı çok üst düzey bir oluşturma dili oluşturmak için kullanabilir, ancak bu, genişletilebilir, açık bir standart üzerinde bir dil derlemesidir.
Gradle, bağımlılıkları yöneten ve özel yapı mantığı tanımlamanıza izin veren android için gelişmiş bir yapı araç takımıdır. özellikler gibidir
Derleme işlemini özelleştirin, yapılandırın ve genişletin.
Aynı projeyi kullanarak uygulamanız için farklı özelliklere sahip birden fazla APK oluşturun.
Kodu ve kaynakları yeniden kullanın.
Gradle, yalnızca Android projeleri için değil, birçok farklı ortama entegre edilebilen otomatik bir derleme araç takımıdır.
Burada gradle ile yapabileceğiniz birkaç şey var.
Gradle'ın android stüdyo projeleriniz için varsayılan yapılandırmaları olduğundan Yeni Projeler için Minimum Yapılandırma Gerekli.
Bağımlılık Beyanı. Yerel veya uzak sunucuda barındırılan bağımlılık jar dosyalarını veya kitaplık dosyalarını bildirebilirsiniz.
Gradle, projenizin kaynağından otomatik olarak bir test dizini ve bir test APK'si oluşturur.
Gerekli tüm bilgileri eklerseniz, örneğin keyPassword
keyAlias
Gradle derleme dosyanıza ve , imzalı APK'ler oluşturmak için Gradle'ı kullanabilirsiniz.
Gradle, farklı paketlerle birden fazla APK oluşturabilir ve tek bir modülden yapılandırmalar oluşturabilir.
Android Studio'da Gradle, bağımlılıkları yöneterek ve özel oluşturma mantığı sağlayarak android paketleri (apk dosyaları) oluşturmak için kullanılan özel bir oluşturma aracıdır.
APK dosyası (Android Uygulama paketi), özel olarak biçimlendirilmiş bir zip dosyasıdır
Bir apk dosyası imzalanır ve yürütüldüğü ADB (Android Hata Ayıklama Köprüsü) kullanılarak cihaza aktarılır.
Gradle özel bir derleme aracıdır ve APK oluşturmak için kullanılır veya uygulama paketi kiti olarak bilinir.
tarafından @Brian Gardner:
Gradle, programlama projeleri için kapsamlı bir derleme aracı ve bağımlılık yöneticisidir. Groovy tabanlı bir etki alanına özgü dili vardır. Gradle ayrıca Java, Android ve Scala da dahil olmak üzere birçok proje türü için konvansiyonel inşa desteği sağlar.
Gradle Özelliği:
Gradle, birden fazla kaynaktan, projeden, kütüphaneden vb. 10 bin satır kod içeren karmaşık Android projelerinin oluşturulmasını otomatikleştirmeyi mümkün kılan şeydir. diğer cevaplar Gradle'ın bu yönüyle ilgili daha fazla ayrıntı sağlar.
Ancak, Android geliştirmede yeniyseniz,% 99 oranında Gradle , projenizin oluşturulmasını durduran şeydir . Android oluşturma sürecini etkili bir şekilde gizleyen ve temelde deneyimsiz geliştiriciler tarafından kullanılamaz hale getiren, yani basit bir giriş seviyesi Android Uygulaması oluşturmak için, şüphesiz yeni başlayanların pazarlık etmedikleri birçok şeyi incelemesi ve anlaması gerekebilecek, anlaşılmaz, karmaşık bir sistemdir. gibi:
Tüm bunlar Android geliştiricilerinin bilmesi ilginç ve faydalıdır, ancak kolay olmaktan uzaktır ve girişe karşı müthiş bir engel sunmaktadır. OP'ye bu soruyu sorması için ilham veren şeyin, Grappy tarafından sürekli olarak engellenmek ve inşa etmek için basit bir uygulama almaya çalışarak çok uzun zaman geçirdikten sonra kaçınılmaz olarak neofit geliştiricisine çarpan hayal kırıklığı hissi olduğundan şüpheleniyorum. Sorun, tüm bu teknolojiler için mevcut olan oldukça yüksek miktarda teknik dokümantasyon nedeniyle aşırı derecede artmaktadır. Ayrıca büyük miktarda geliştirme ihtiyaçları için Gradle aşırıya kaçar.
Bir alternatif, android SDK'da bulunan araçları otomatikleştirerek projenizi oluşturan bir kabuk komut dosyası yazmaktır. Bu yaklaşımın erdemleri çoktur, yeni başlayanlar için muhtemelen inşa sürecini ve Android ekosistemini incelemek ve anlamak için en iyi yoldur ve uygulamanızın nasıl oluşturulduğunu tamamen kontrol etmenizi sağlar. Ancak bu yaklaşım derinlemesine tamir edilemeyen teknoloji kafaları için android'i deneyen deneyimsiz noobs'lara göre daha uygundur.
Yokluğu ile dikkat çeken şey (lütfen böyle bir şey varsa beni bilgilendirin), oluşturma sürecini gizlemeden aynı anda basitleştiren (netbeans veya eclipse değil) azaltılmış özellik setine sahip bir giriş seviyesi, hafif IDE'dir. Gradle kullanın (Ant ile yanlış olan ne). Birkaç yaygın yapılandırmaya uyan APK'ları oluşturmayı ve bu şekilde kullanmaya karar verirseniz, tam bir Android Studio projesine dönüşebilecek bir proje yapısı kullanmayı kolaylaştırmalıdır.
Kısacası Gradle, Android Studio tarafından iki önemli işlemi uygulamak için sağlanan bir araçtır:
Arama Sonuçları Web üzerinden sunulan snippet | inşa etmek. gradle. Gradle, oluşturma, test etme, dağıtma vb. süreç olur.
Android Studio'da Gradle, android uygulama projelerimizi oluşturmak için kullanılır, dolayısıyla bir yapı sisteminin rolünü oynar. Android Studio'dan önce, Eclipse'de, uygulamaları ANT kullanarak tutulmada Android Uygulamaları oluşturmak ve çalıştırmak için GUI tabanlı adımlar tarafından devralınan komut satırı aracını kullanarak derleyip oluşturduk. Her android uygulama geliştirme aracı kaynakları, java kaynak kodunu, harici kütüphaneleri derlemeli ve bunları son APK olarak birleştirmelidir.
Gradle , kod derleme, test etme, dağıtma ve kodun .dex dosyalarına dönüştürülmesinden ve böylece uygulamanın cihazda çalıştırılmasından sorumlu olan bir derleme sistemidir.
Android Studio önceden yüklenmiş Gradle sistemi ile birlikte geldiğinden, projemizi oluşturmak için ek çalışma zamanı yazılımları yüklemeye gerek yoktur. Ne zaman tıklarsanAndroid stüdyosundaki düğmeyi , bir gradle görevi otomatik olarak tetiklenir ve projeyi oluşturmaya başlar ve gradle görevini tamamladıktan sonra uygulama AVD'de veya bağlı cihazda çalışmaya başlar.
Gradle gibi bir derleme sistemi bir derleyici, bağlayıcı vb. Değildir, ancak derleme, dosya bağlama, test senaryoları çalıştırma ve sonunda kodu Android Uygulamanız için bir apk dosyasına paketlemeyi kontrol eder ve denetler.
Biri uygulama için ve diğeri proje seviyesi (modül seviyesi) yapı dosyaları için olan her android stüdyo projesi için iki build.gradle dosyası vardır .
Derleme işleminde, derleyici kaynak kodunu, kaynakları, dış kütüphaneleri JAR dosyalarını ve AndroidManifest.xml dosyasını (uygulama hakkındaki meta verileri içerir) alır ve bunları bytecode içeren .dex (Dalvik Yürütülebilir dosyaları) dosyalarına dönüştürür . Bu bayt kodu uygulamanızı çalıştırmak için tüm android cihazlar tarafından desteklenir. Daha sonra APK Manager, .dex dosyalarını ve diğer tüm kaynakları tek bir apk dosyasında birleştirir. APK Paketleyici hata ayıklama veya serbest bırakma işaretleriilgili hata ayıklama veya serbest bırakma anahtar deposunu kullanarak apk.
Hata ayıklama apk genellikle test amaçlı kullanılır veya sadece geliştirme aşamasında kullanıldığını söyleyebiliriz. Uygulamanız istenen özelliklerle tamamlandığında ve uygulamanızı harici kullanım için yayınlamaya hazır olduğunuzda,bir sürüm anahtar deposu kullanılarak imzalanmış Sürüm apk'sine.
Şimdi gradle dosyalarına biraz ışık tutalım.
setting.gradle setting.gradle (Gradle ayarı) dosyası, uygulamanızda kullanılan tüm modülleri belirtmek için kullanılır.
build.gradle (proje seviyesi) Üst düzey (modül) build.gradle dosyası, proje düzeyinde derleme yapılandırmalarını tanımlayan proje düzeyinde derleme dosyasıdır. Bu dosya android uygulama projesindeki tüm modüllere yapılandırmalar uygular.
build.gradle (uygulama düzeyi) Uygulama seviyesi build.gradle dosyası android projesinin her modülünde bulunur. Bu dosya belirli bir uygulama modülü için applicationID, sürüm adı (apk sürümü), sürüm kodu, minimum ve target sdk olarak paket adınızı içerir. Harici kütüphaneleri (jar dosyalarını değil) eklediğinizde, bunları projenize uygulamanın bağımlılıkları olarak dahil etmek için uygulama düzeyi sınıf dosyasında belirtmeniz gerekir.
Not: Akıllı Telefon, Tablet veya TV gibi ayrı modüller için varyasyonlarda belirli bir uygulama geliştirilirse, herkes için ayrı not dosyaları oluşturulmalıdır. Gradle sisteminizi komut satırı üzerinden bile başlatabilirsiniz aracıyla . Bunun için aşağıdaki komutlar kullanılır:
./gradlew build - (derleme projesi)
./gradlew clean derleme - (projeyi tam sıfırdan
derleme ) ./gradlew clean derleme - (testi çalıştırma)
./gradlew wrapper - (mevcut tüm görevleri görmek için)
Gradle = Groovy + Beşik Hans Dockter forum yorumu
Android Studio'da "Build" veya başka bir şey olarak adlandırılabilecek karmaşa biraz gereksiz.
Geliştirme topluluğunda kendimiz için işleri zorlaştırmayı seviyoruz.