Aşağıda, Android Studio 3.6 ve önceki sürümlerin ve Android Gradle eklentisi 3.6.0 ve önceki sürümlerin sürüm notları verilmiştir.
Android Studio'nun eski sürümleri
3.6 (Şubat 2020)
Android Studio 3.6, çeşitli yeni özellikler ve iyileştirmeler içeren önemli bir sürümdür.
Ayrıca bu sürümün hazırlanmasına yardımcı olan tüm topluluk katılımcılarımıza da teşekkür ederiz.
3.6.3 (Nisan 2020)
Bu küçük güncellemede çeşitli hata düzeltmeleri mevcuttur. Önemli hata düzeltmelerinin listesini görmek için Sürüm Güncellemeleri blogundaki ilgili yayını okuyun.
3.6.2 (Mart 2020)
Bu küçük güncellemede çeşitli hata düzeltmeleri mevcuttur. Önemli hata düzeltmelerinin listesini görmek için Sürüm Güncellemeleri blogundaki ilgili yayını okuyun.
3.6.1 (Şubat 2020)
Bu küçük güncellemede çeşitli hata düzeltmeleri mevcuttur. Önemli hata düzeltmelerinin listesini görmek için Sürüm Güncellemeleri blogundaki ilgili yayını okuyun.
Tasarım araçları
Android Studio'nun bu sürümü, Düzen Düzenleyici ve Kaynak Yöneticisi dahil olmak üzere çeşitli tasarım araçlarında güncellemeler içerir.
Tasarım düzenleyicilerde bölünmüş görünüm ve yakınlaştırma
Bu sürümde, görsel tasarım düzenleyicilerinde yapılan aşağıdaki güncellemeler yer almaktadır:
-
Sayfa düzeni düzenleyici ve gezinme düzenleyici gibi tasarım düzenleyicileri artık kullanıcı arayüzünüzün hem Tasarım hem de Kod görünümlerini aynı anda görmenizi sağlayan bir Bölünmüş görünüm sunuyor. Düzenleyici penceresinin sağ üst köşesinde, görüntüleme seçenekleri arasında geçiş yapmak için artık üç düğme bulunmaktadır:
- Bölünmüş görünümü etkinleştirmek için Bölünmüş simgesini tıklayın.
- XML kaynak görünümünü etkinleştirmek için Kaynak simgesini tıklayın.
- Tasarım görünümünü etkinleştirmek için Tasarım simgesini tıklayın .
-
Tasarım düzenleyicilerindeki yakınlaştırma ve kaydırma kontrolleri, düzenleyici penceresinin sağ alt köşesindeki kayan bir panele taşındı.
Daha fazla bilgi edinmek için Düzen Düzenleyici ile kullanıcı arayüzü oluşturma başlıklı makaleyi inceleyin.
Renk Seçici Kaynak Sekmesi
XML'inizdeki renk seçiciyi veya tasarım araçlarını kullanırken uygulamanızdaki renk kaynağı değerlerini hızlıca güncellemenize yardımcı olmak için IDE artık renk kaynağı değerlerini sizin yerinize doldurur.
Resource Manager
Kaynak Yöneticisi aşağıdaki güncellemeleri içerir:
- Kaynak Yöneticisi artık çoğu kaynak türünü desteklemektedir.
- Kaynak Yöneticisi artık bir kaynak ararken tüm proje modüllerindeki sonuçları gösterir. Önceden, aramalar yalnızca seçili modülden sonuç döndürüyordu.
- Filtre düğmesi, yerel bağımlı modüller, harici kitaplıklar ve Android çerçevesindeki kaynakları görüntülemenizi sağlar. Filtreyi tema özelliklerini göstermek için de kullanabilirsiniz.
- Artık içe aktarma işlemi sırasında kaynağın üzerindeki metin kutusunu tıklayarak kaynakları yeniden adlandırabilirsiniz.
Daha fazla bilgi için Kaynak Yöneticisi ile uygulamanızın kullanıcı arayüzü kaynaklarını yönetme başlıklı makaleyi inceleyin.
Android Gradle eklentisinde yapılan güncellemeler
Android Gradle eklentisinin en son sürümü, derleme hızı için optimizasyonlar, Maven yayınlama eklentisi desteği ve Görüntü Bağlama desteği de dahil olmak üzere birçok güncelleme içerir. Daha fazla bilgi edinmek için sürüm notlarının tamamını okuyun.
Bağlamayı görüntüleme
Görünüm bağlama, her XML düzen dosyası için bir bağlama sınıfı oluşturarak görünümlerle etkileşime geçen kodları daha kolay yazmanıza olanak tanır. Bu sınıflar, ilgili düzende kimliği olan tüm görünümlere doğrudan referanslar içerir.
findViewById()
yerine geçtiği için görünüm bağlama, geçersiz bir görünüm kimliğinden kaynaklanan null işaretçi istisnaları riskini ortadan kaldırır.
Görüntü bağlamayı etkinleştirmek için Android Gradle eklentisinin 3.6.0 veya sonraki bir sürümünü kullanmanız ve her modülün build.gradle
dosyasına aşağıdakileri eklemeniz gerekir:
Groovy
android { buildFeatures.viewBinding = true }
Kotlin
android { buildFeatures.viewBinding = true }
Değişiklikleri Uygulama
Artık bir sınıf ekleyebilir ve ardından Kod Değişikliklerini Uygula veya Değişiklikleri Uygula ve Etkinliği Yeniden Başlat'ı tıklayarak bu kod değişikliğini çalışan uygulamanıza dağıtabilirsiniz .
Bu iki işlem arasındaki fark hakkında daha fazla bilgi edinmek için Değişiklikleri uygulama başlıklı makaleyi inceleyin.
Hazır Uygulamalar desteğini etkinleştirmek için yeniden yapılandır menüsü seçeneği
Artık uygulama projenizi oluşturduktan sonra taban modülünüzü aşağıdaki gibi dilediğiniz zaman anında etkinleştirebilirsiniz:
- Menü çubuğundan Görünüm > Araç Pencereleri > Proje'yi seçerek Proje panelini açın.
- Genellikle "app" olarak adlandırılan temel modülünüzü sağ tıklayın ve Yeniden Düzenle > Hazır Uygulama Desteğini Etkinleştir'i seçin.
- Görünen iletişim kutusunda açılır menüden temel modülünüzü seçin.
- Tamam'ı tıklayın.
Not: Yeni Proje Oluştur sihirbazında temel uygulama modülünüzü anında etkinleştirme seçeneği kaldırıldı.
Daha fazla bilgi için Google Play Instant'a Genel Bakış başlıklı makaleyi inceleyin.
APK Analizcisi'nde sınıf ve yöntem bayt kodunun kodunu kaldırma
DEX dosyalarını incelemek için APK Analiz Aracı'nı kullanırken sınıf ve yöntem bayt kodunu aşağıdaki gibi gösterebilirsiniz:
- Menü çubuğundan Derle > APK'yı analiz et'i seçin.
- Görüntülenen iletişim kutusunda, incelemek istediğiniz APK'ya gidin ve APK'yı seçin.
- Aç'ı tıklayın.
- APK Analizör'de, incelemek istediğiniz DEX dosyasını seçin.
- DEX dosya görüntüleyicisinde, analiz ettiğiniz APK'nın ProGuard eşleme dosyasını yükleyin.
- İncelemek istediğiniz sınıfı veya yöntemi sağ tıklayın ve Kod dizesini göster'i seçin.
Yerel araç setleri
Aşağıdaki güncellemeler, Android Studio'da yerel (C/C++) geliştirmeyi destekler.
Kotlin desteği
Android Studio'daki ve daha önce Java'da desteklenen aşağıdaki NDK özellikleri artık Kotlin'de de desteklenmektedir:
-
Bir JNI beyanından C/C++'daki ilgili uygulama işlevine gidin. Yönetilen kaynak kod dosyasında satır numarasının yanındaki C veya C++ öğe işaretçisinin üzerine gelerek bu eşlemeyi görüntüleyin.
-
JNI beyanı için otomatik olarak bir yoksunluk uygulama işlevi oluşturun. Önce JNI beyanını tanımlayın, ardından C/C++ dosyasında etkinleştirmek için "jni"yi veya yöntem adını yazın.
-
Kullanılmayan yerel uygulama işlevleri kaynak kodunda uyarı olarak vurgulanır. Uygulaması eksik olan JNI tanımları da hata olarak vurgulanır.
-
Yerel uygulama işlevini yeniden adlandırdığınızda (yeniden yapılandırdığınızda) tüm ilgili JNI bildirimleri güncellenir. Doğal uygulama işlevini güncellemek için bir JNI beyanını yeniden adlandırın.
-
Dolaylı olarak bağlı JNI uygulamaları için imza kontrolü.
Diğer JNI iyileştirmeleri
Android Studio'daki kod düzenleyici artık daha iyi tür ipuçları, otomatik tamamlama, denetimler ve kod yeniden düzenleme dahil olmak üzere daha sorunsuz bir JNI geliştirme iş akışı sunuyor.
Yerel kitaplıklar için APK yeniden yükleme {:#3.6-reload-apk}
Artık projenizdeki APK IDE dışında güncellendiğinde yeni bir proje oluşturmanıza gerek yoktur. Android Studio, APK'daki değişiklikleri algılar ve APK'yı yeniden içe aktarma seçeneği sunar.
Yalnızca Kotlin APK kaynaklarını ekleme
Artık önceden oluşturulmuş APK'lar için profil oluşturup hata ayıkladığınızda yalnızca Kotlin'e yönelik harici APK kaynakları ekleyebilirsiniz. Daha fazla bilgi edinmek için Kotlin/Java kaynaklarını ekleme başlıklı makaleyi inceleyin.
Memory Profiler'da sızıntı algılama
Artık Bellek Profilleyici'de bir yığın dökümünü analiz ederken Android Studio'nun uygulamanızdaki Activity
ve Fragment
örnekleri için bellek sızıntısı olduğunu düşündüğü profilleme verilerini filtreleyebilirsiniz.
Filtrenin gösterdiği veri türleri şunlardır:
-
Kaldırılmış ancak hâlâ referans verilen
Activity
örnekleri. -
Geçerli bir
FragmentManager
'ye sahip olmayan ancak yine de referans verilenFragment
örnekleri.
Yalnızca Kotlin APK kaynaklarını ekleme
Artık önceden oluşturulmuş APK'lar için profil oluşturup hata ayıkladığınızda yalnızca Kotlin'e yönelik harici APK kaynakları ekleyebilirsiniz. Daha fazla bilgi edinmek için Kotlin/Java kaynaklarını ekleme başlıklı makaleyi inceleyin.
Memory Profiler'da sızıntı algılama
Artık Bellek Profilleyici'de bir yığın dökümünü analiz ederken Android Studio'nun uygulamanızdaki Activity
ve Fragment
örnekleri için bellek sızıntısı olduğunu düşündüğü profilleme verilerini filtreleyebilirsiniz.
Filtrenin gösterdiği veri türleri şunlardır:
-
Kaldırılmış ancak hâlâ referans verilen
Activity
örnekleri. -
Geçerli bir
FragmentManager
'ye sahip olmayan ancak yine de referans verilenFragment
örnekleri.
Aşağıdakiler gibi belirli durumlarda filtre yanlış pozitif sonuç verebilir:
- Bir
Fragment
oluşturuldu ancak henüz kullanılmadı. - Bir
Fragment
önbelleğe alınıyor ancakFragmentTransaction
kapsamında değil.
Bu özelliği kullanmak için öncelikle Android Studio'ya bir yığın dökümü kaydedin veya bir yığın dökümü dosyası aktarın. Bellek sızıntısı olabilecek parçaları ve etkinlikleri görüntülemek için Bellek Profilleyici'nin yığın dökümü bölmesinde Etkinlik/Parça Sızıntıları onay kutusunu işaretleyin.
Emülatörler
Android Studio 3.6, aşağıda açıklandığı gibi Android Emulator 29.2.7 ve sonraki sürümlerde bulunan çeşitli güncellemelerden yararlanmanıza yardımcı olur.
İyileştirilmiş Konum Desteği
Android Emulator 29.2.7 ve sonraki sürümleri, GPS koordinatlarını ve rota bilgilerini taklit etmek için ek destek sağlar. Emülatörler Genişletilmiş denetimler'i açtığınızda, Konum sekmesindeki seçenekler artık iki sekme altında düzenlenir: Tek noktalar ve Rotalar.
Tek puanlar
Tek noktalar sekmesinde, Google Haritalar web görünümünü kullanarak ilgi çekici yerleri arayabilirsiniz. Bu işlem, Google Haritalar'ı telefonda veya tarayıcıda kullanırken yaptığınız gibidir. Haritada bir konum aradığınızda veya tıkladığınızda, haritanın alt kısmındaki Noktayı kaydet'i seçerek konumu kaydedebilirsiniz. Kayıtlı tüm konumlarınız Genişletilmiş denetimler penceresinin sağ tarafında listelenir.
Emülatörlerin konumunu haritada seçtiğiniz konuma ayarlamak için Genişletilmiş denetimler penceresinin sağ alt kısmındaki Konum ayarla düğmesini tıklayın.
.
Güzergahlar
Tek noktalar sekmesine benzer şekilde Rotalar sekmesinde, iki veya daha fazla konum arasında rota oluşturmak için kullanabileceğiniz bir Google Haritalar web görünümü bulunur. Rota oluşturmak ve kaydetmek için aşağıdakileri yapın:
- Harita görünümünde, rotanızdaki ilk hedefi aramak için metin alanını kullanın.
- Arama sonuçlarından konumu seçin.
- Gezin düğmesini seçin.
- Haritada rotanızın başlangıç noktasını seçin.
- (İsteğe bağlı) Rotanıza başka duraklar eklemek için Hedef ekle'yi tıklayın.
- Harita görünümünde Rotayı kaydet'i tıklayarak rotanızı kaydedin.
- Rota için bir ad belirtin ve Kaydet'i tıklayın.
Emülatör'ün kaydettiğiniz rotayı izlediğini simüle etmek için Kayıtlı rotalar listesinden rotayı seçin ve Genişletilmiş denetimler penceresinin sağ alt kısmındaki Rotayı oynat'ı tıklayın. Simülasyonu durdurmak için Rotayı durdur'u tıklayın.
.
Belirtilen rotayı izleyen Emülatör'ü sürekli olarak simüle etmek için Oynatma işlemini tekrarla'nın yanındaki anahtarı etkinleştirin. Emülatör'ün belirtilen rotayı takip etme hızını değiştirmek için Oynatma hızı açılır listesinden bir seçenek belirleyin.
Çoklu ekran desteği
Android Emulator artık uygulamanızı birden fazla ekrana dağıtmanıza olanak tanır. Bu ekranlar özelleştirilebilir boyutları destekler ve çoklu pencere ile çoklu ekran özelliklerini destekleyen uygulamaları test etmenize yardımcı olabilir. Bir sanal cihaz çalışırken aşağıdaki şekilde iki ek ekran daha ekleyebilirsiniz:
-
Genişletilmiş denetimler bölümünü açıp Ekranlar sekmesine gidin.
-
İkincil ekran ekle'yi tıklayarak başka bir ekran ekleyin.
-
İkincil ekranlar altındaki açılır menüden aşağıdakilerden birini yapın:
-
Önceden ayarlanmış en boy oranlarından birini seçin
-
Özel'i seçin ve özel ekranınız için yükseklik, genişlik ve dpi'yi ayarlayın.
-
(İsteğe bağlı) Üçüncü bir ekran eklemek için İkincil ekran ekle'yi tıklayın.
-
Belirtilen ekranları çalışan sanal cihaza eklemek için Değişiklikleri uygula'yı tıklayın.
Android Automotive OS için yeni sanal cihazlar ve proje şablonları
Android Studio'yu kullanarak yeni bir proje oluşturduğunuzda artık Yeni Proje Oluştur sihirbazındaki Otomotiv sekmesinde üç şablondan birini seçebilirsiniz: Etkinlik yok, Medya hizmeti ve Mesajlaşma hizmeti. Mevcut projelere Android Automotive cihaz desteği eklemek için menü çubuğundan Dosya > Yeni > Yeni Modül'ü ve ardından Automotive Modülü'nü seçin. Ardından Yeni Modül Oluştur sihirbazı, Android Automotive proje şablonlarından birini kullanarak yeni bir modül oluşturmanıza rehberlik eder.
.
Ayrıca artık Sanal Cihaz Yapılandırması sihirbazındaki Automotive sekmesinde aşağıdaki seçeneklerden birini belirleyerek Android Automotive OS cihazlar için Android sanal cihaz (AVD) oluşturabilirsiniz.
- Polestar 2: Polestar 2 ana birimini taklit eden bir AVD oluşturun.
- Automotive (1024p yatay): Genel 1.024 x 768 piksel Android Automotive ana birimleri için bir AVD oluşturun.
.
Devam ettirilebilir SDK indirmeleri
Android Studio, SDK Yöneticisi'ni kullanarak SDK bileşenlerini ve araçlarını indirirken artık indirme işlemini baştan başlatmak yerine kesintiye uğrayan (ör. ağ sorunu nedeniyle) indirme işlemlerini devam ettirmenize olanak tanır. Bu geliştirme, özellikle internet bağlantısının güvenilir olmadığı durumlarda Android Emulator veya sistem resimleri gibi büyük indirmelerde faydalıdır.
Ayrıca, arka planda çalışan bir SDK indirme göreviniz varsa artık durum çubuğundaki kontrolleri kullanarak indirme işlemini duraklatabilir veya devam ettirebilirsiniz.
Win32 desteği sonlandırıldı
Android Studio'nun Windows 32 bit sürümü Aralık 2019'dan sonra güncelleme almayacak ve Aralık 2020'den sonra destek almayacak. Android Studio'yu kullanmaya devam edebilirsiniz. Ancak ek güncellemeler almak için iş istasyonunuzu Windows'un 64 bit sürümüne yükseltin.
Daha fazla bilgi için Windows 32 bit desteğinin sonlandırılması konulu blog yazısını okuyun.
Gradle senkronizasyon süresini optimize etmek için yeni seçenek
Önceki sürümlerde Android Studio, Gradle senkronizasyonu sırasında tüm Gradle görevlerinin listesini alıyordu. Büyük projelerde görev listesinin alınması, senkronizasyon süresinin uzamasına neden olabilir.
Gradle senkronizasyon performansını artırmak için Dosya > Ayarlar > Deneysel'e gidin ve Gradle senkronizasyonu sırasında Gradle görev listesini derlemeyin'i seçin.
Bu seçeneği etkinleştirdiğinizde Android Studio, senkronizasyon sırasında görev listesini oluşturmayı atlar. Bu sayede Gradle Sync daha hızlı tamamlanır ve kullanıcı arayüzü yanıt verebilirliği artar. IDE, görev listesini oluşturmayı atladığında Gradle panelindeki görev listelerinin boş olduğunu ve derleme dosyalarındaki görev adı otomatik tamamlama özelliğinin çalışmadığını unutmayın.
Gradle'ın çevrimdışı modunu açma/kapatma için yeni konum
Gradle'ın çevrimdışı modunu etkinleştirmek veya devre dışı bırakmak için önce menü çubuğundan Görünüm > Araç Pencereleri > Gradle'yi seçin. Ardından, Gradle penceresinin üst kısmına yakın bir yerde Çevrimdışı Modu Aç/Kapat'ı tıklayın.
IntelliJ IDEA 2019.2
Temel Android Studio IDE'si, 2019.2 sürümü ile birlikte IntelliJ IDEA'daki iyileştirmelerle güncellendi.
Diğer IntelliJ sürümlerinden 2019.2 sürümüne dahil edilen iyileştirmeler hakkında daha fazla bilgi edinmek için aşağıdaki sayfalara bakın:
Topluluğa katkıda bulunanlar
Android Studio 3.6'yı iyileştirmek için hatalarımızı tespit etmemize ve başka yöntemler bulmamıza yardımcı olan tüm topluluk katılımcılarımıza teşekkür ederiz. Özellikle aşağıdaki kullanıcılara, bildirdikleri hatalar nedeniyle teşekkür ederiz:
|
|
|
3.5 (Ağustos 2019)
Android Studio 3.5, Project Marble'ın bir sonucu olarak yayınlanan önemli bir sürümdür. Android Studio 3.3 sürümünden itibaren Project Marble girişimi, IDE'nin üç ana alanını iyileştirmeye odaklanan birden fazla sürümde yer aldı: sistem sağlığı, özellik iyileştirmeleri ve hataları düzeltme.
Bu ve diğer Project Marble güncellemeleri hakkında bilgi edinmek için Android Developers blog yayınını veya aşağıdaki bölümleri okuyun.
Ayrıca bu sürümün hazırlanmasına yardımcı olan tüm topluluk katılımcılarımıza da teşekkürlerimizi sunmak istiyoruz.
3.5.3 (Aralık 2019)
Bu küçük güncelleme, çeşitli hata düzeltmeleri ve performans iyileştirmeleri içerir.
3.5.2 (Kasım 2019)
Bu küçük güncelleme, çeşitli hata düzeltmeleri ve performans iyileştirmeleri içerir. Önemli hata düzeltmelerinin listesini görmek için Sürüm Güncellemeleri blogundaki ilgili yayını okuyun.
3.5.1 (Ekim 2019)
Bu küçük güncellemede çeşitli hata düzeltmeleri ve performans iyileştirmeleri yer almaktadır. Önemli hata düzeltmelerinin listesini görmek için Sürüm Güncellemeleri blogundaki ilgili yayını okuyun.
Project Marble: Sistem sağlığı
Bu bölümde, Android Studio 3.5'teki sistem sağlığını iyileştirmeye yönelik değişiklikler açıklanmaktadır.
Önerilen bellek ayarları
Android Studio artık işletim sisteminizin Android Studio işlemleri (ör. temel IDE, Gradle daemon ve Kotlin daemon) için ayırması gereken maksimum RAM miktarını artırarak performansı iyileştirebileceğinizi algılarsa sizi bilgilendirir. Bildirimdeki işlem bağlantısını tıklayarak önerilen ayarları kabul edebilir veya Dosya > Ayarlar'ı (veya macOS'te Android Studio > Tercihler'i) seçip Görünüm ve Davranış > Sistem Ayarları bölümündeki Bellek Ayarları bölümünü bularak bu ayarları manuel olarak düzenleyebilirsiniz. Daha fazla bilgi için Maksimum yığın boyutu başlıklı makaleyi inceleyin.
Bellek kullanımı raporu
Android Studio'daki bellek sorunlarının bazen yeniden oluşturulması ve bildirilmesi zordur. Android Studio, bu sorunun çözülmesine yardımcı olmak için menü çubuğundan Yardım > Bellek Kullanımını Analiz Et'i tıklayarak bir bellek kullanımı raporu oluşturmanıza olanak tanır. Bunu yaptığınızda IDE, bellek sorunlarının kaynağını belirlemenize yardımcı olmak için verileri yerel olarak kişisel bilgilerden arındırır ve ardından verileri Android Studio ekibine göndermek isteyip istemediğinizi sorar. Daha fazla bilgi için Bellek kullanımı raporu oluşturma başlıklı makaleyi inceleyin.
Windows: Antivirüs dosyası G/Ç optimizasyonu
Android Studio artık belirli proje dizinlerinin gerçek zamanlı antivirüs taramasından hariç tutulup tutulmadığını otomatik olarak kontrol ediyor. Derleme performansını iyileştirmek için ayarlamalar yapılabileceğinde Android Studio sizi bilgilendirir ve antivirüs yapılandırmanızı optimize etmeyle ilgili talimatlar sağlar. Daha fazla bilgi edinmek için Antivirüs yazılımının derleme hızı üzerindeki etkisini en aza indirme başlıklı makaleyi inceleyin.
Project Marble: Özellik cilalama
Bu bölümde, Android Studio 3.5'teki mevcut özellikleri iyileştirmeye yönelik değişiklikler açıklanmaktadır.
Değişiklikleri Uygulama
Değişiklikleri Uygulama, uygulamanızı yeniden başlatmadan ve bazı durumlarda mevcut etkinliği yeniden başlatmadan kod ve kaynak değişikliklerini çalışan uygulamanıza aktarmanıza olanak tanır. Değişiklikleri Uygulama, uygulamanızın durumunu korumak için tamamen yeni bir yaklaşım uygular. APK'nızın bayt kodunu yeniden yazan Anında Çalıştır'ın aksine Değişiklikleri Uygula, Android 8.0 (API düzeyi 26) veya sonraki sürümlerde desteklenen çalışma zamanı enstrümasyonundan yararlanarak sınıfları anında yeniden tanımlar.
Daha fazla bilgi için Değişiklikleri uygulama bölümüne bakın.
Uygulama dağıtım akışı
IDE'de, uygulamanızı hangi cihaza dağıtmak istediğinizi hızlıca seçmenizi sağlayan yeni bir açılır menü bulunur. Bu menüde, uygulamanızı aynı anda birden fazla cihazda çalıştırmanıza olanak tanıyan yeni bir seçenek de bulunur.
Gradle senkronizasyonu ve önbelleği algılama iyileştirmesi
IDE artık Gradle'ın, sabit disk tüketimini azaltmak için derleme önbelleğinizi düzenli olarak temizlediğini daha iyi algılar. Önceki sürümlerde bu durum, IDE'nin eksik bağımlılıkları bildirmesine ve Gradle senkronizasyonunun başarısız olmasına neden oluyordu. Artık IDE, Gradle senkronizasyonunun başarıyla tamamlanmasını sağlamak için gerektiğinde bağımlılıkları indirir.
İyileştirilmiş derleme hatası çıkışı
Derleme penceresi artık aşağıdaki derleme işlemleri için daha iyi hata raporları (ör. bildirilen hatanın dosya ve satır bağlantısı) sunar:
- AAPT derleme ve bağlama
- R8 ve ProGuard
- Dexing
- Kaynak birleştirme
- XML dosyası ayrıştırma
- Javac, Kotlinc ve CMake derlemesi
Proje Yükseltmeleri
IDE'yi ve Android Gradle eklentisini güncellemenize yardımcı olacak daha fazla bilgi ve işlem sunmak için iyileştirilmiş güncelleme deneyimi. Örneğin, daha fazla senkronizasyon ve derleme hatası, güncelleme sırasında hataları azaltmanıza yardımcı olacak işlemler içerir.
IDE'yi Android Gradle eklentisi gibi diğer bileşenlerden bağımsız olarak güncelleyebileceğinizi unutmayın. Bu nedenle, yeni bir sürüm kullanıma sunulduğunda IDE'yi güvenle güncelleyebilir, diğer bileşenleri ise daha sonra güncelleyebilirsiniz.
Düzenleyici
Android Studio 3.5, düzen görselleştirme, yönetim ve etkileşimde çeşitli iyileştirmeler içerir.
ConstraintLayout
ile çalışırken Özellikler panelinde yeni bir Kısıtlar bölümü, seçili kullanıcı arayüzü bileşeninin kısıtlama ilişkilerini listeler. Bir kısıtlamayı hem tasarım yüzeyinden hem de kısıtlamalar listesinden seçerek kısıtlamayı her iki alanda da vurgulayabilirsiniz.
Benzer şekilde, artık bir kısıtlamayı seçip Delete
tuşuna basarak silebilirsiniz. Ayrıca, Control
tuşunu (macOS'te Command
) basılı tutarak ve kısıtlama sabitleyicisini tıklayarak da kısıtlamaları silebilirsiniz. Control
veya Command
tuşunu basılı tutarken fareyle bir ankrajın üzerine geldiğinizde, ilişkili tüm kısıtlamaların tıklayarak silebilirsiniz anlamına gelen kırmızı renkte göründüğünü unutmayın.
Bir görünüm seçildiğinde, aşağıdaki resimde gösterildiği gibi Özellikler panelinin Kısıtlama Widget'ı bölümündeki + simgelerinden birini tıklayarak kısıtlama oluşturabilirsiniz. Yeni bir kısıtlama oluşturduğunuzda, artık düzen düzenleyicisi kısıtlamayı seçip vurgular ve yeni eklediğiniz öğeyle ilgili anında görsel geri bildirim sağlar.
Artık düzen düzenleyici, kısıtlama oluştururken yalnızca kısıtlama uygulayabileceğiniz uygun ankraj noktalarını gösterir. Daha önce, düzen düzenleyici, bunlara sınırlama uygulayıp uygulayamayacağınızdan bağımsız olarak tüm görünümlerdeki tüm ana noktaları vurguluyordu. Ayrıca, kısıtlamanın hedefi artık mavi bir yer paylaşımıyla vurgulanır. Bu vurgulama, özellikle başka bir bileşenle örtüşen bir bileşeni kısıtlamaya çalışırken yararlıdır.
Android Studio 3.5, yukarıdaki güncellemelere ek olarak aşağıdaki düzen düzenleyici iyileştirmelerini de içerir:
- Kısıtlama widget'ı ve varsayılan kenar boşluğu açılır menüsü artık kenar boşlukları için boyut kaynaklarını kullanmanıza olanak tanır.
- Sayfa düzeni düzenleyici araç çubuğunda, tasarım yüzeyinin boyutunu belirleyen cihazların listesi güncellendi. Ayrıca, yeniden boyutlandırma sırasındaki sabitleme davranışı iyileştirildi ve tasarım yüzeyindeki yeniden boyutlandırma tutamakları artık her zaman görünür. Boyut değiştirirken yaygın cihaz boyutlarını gösteren yeni yer paylaşımları görünür.
- Layout Editor'da, tutarlılığı artıran ve bileşenler, metinler ve kısıtlamalar arasındaki kontrastı azaltan yeni bir renk şeması vardır.
- Taslak modu artık metnin gösterilmediği bazı bileşenler için metin desteği içeriyor.
Bu değişiklikler hakkında daha fazla bilgi için Android Studio Project Marble: Layout Editor başlıklı makaleyi inceleyin.
Veri Bağlama
IDE, Veri Bağlama için artan ek açıklama işleme desteği eklemenin yanı sıra XML'de veri bağlama ifadeleri oluştururken akıllı düzenleyici özelliklerini ve performansını iyileştirir.
C/C++ projeleri için iyileştirilmiş destek
Android Studio 3.5, C/C++ projeleri için desteği iyileştiren çeşitli değişiklikler içerir.
Tek varyant senkronizasyonu için Derleme Varyantları panelinde yapılan iyileştirmeler
Artık Derleme Varyantları panelinde hem etkin derleme varyantını hem de etkin ABI'yi belirtebilirsiniz. Bu özellik, modül başına derleme yapılandırmasını basitleştirir ve Gradle senkronizasyon performansını da iyileştirebilir.
Daha fazla bilgi için Derleme varyantını değiştirme bölümüne bakın.
NDK'nın yan yana sürümleri
Artık NDK'nın birden fazla sürümünü yan yana kullanabilirsiniz. Bu özellik, projelerinizi yapılandırırken size daha fazla esneklik sunar. Örneğin, aynı makinede NDK'nın farklı sürümlerini kullanan projeleriniz varsa bu özellikten yararlanabilirsiniz.
Projenizde Android Gradle eklentisi 3.5.0 veya sonraki bir sürüm kullanılıyorsa projenizdeki her modülün kullanması gereken NDK sürümünü de belirtebilirsiniz. Tekrar üretilebilir derlemeler oluşturmak ve NDK sürümleri ile Android Gradle eklentisi arasındaki uyumsuzlukları azaltmak için bu özelliği kullanabilirsiniz.
Daha fazla bilgi için NDK, CMake ve LLDB'yi yükleme ve yapılandırma başlıklı makaleyi inceleyin.
ChromeOS Destek Ekibi
Android Studio artık HP Chromebook x360 14, Acer Chromebook 13/Spin 13 gibi ChromeOS cihazları ve sistem gereksinimleri bölümünde okuyabileceğiniz diğer cihazları resmi olarak destekliyor. Başlamak için uyumlu ChromeOS cihazınıza Android Studio'yu indirin ve yükleme talimatlarını uygulayın.
Not: ChromeOS'teki Android Studio şu anda uygulamanızı yalnızca bağlı bir donanım cihazına dağıtmayı desteklemektedir. Daha fazla bilgi edinmek için Uygulamaları donanım cihazında çalıştırma başlıklı makaleyi inceleyin.
Özellik modülleri için koşullu yayınlama
Koşullu yayınlama, özellik modüllerinin uygulama yükleme sırasında otomatik olarak indirilmesi için belirli cihaz yapılandırma şartlarını belirlemenize olanak tanır. Örneğin, artırılmış gerçeklik (AR) işlevini içeren bir özellik modülünü, uygulama yüklenirken yalnızca AR'yi destekleyen cihazlarda kullanılacak şekilde yapılandırabilirsiniz.
Bu yayınlama mekanizması şu anda aşağıdaki cihaz yapılandırmalarına göre uygulama yükleme sırasında bir modülün indirilmesini kontrol etmeyi desteklemektedir:
- OpenGL ES sürümü dahil olmak üzere cihaz donanım ve yazılım özellikleri
- Kullanıcının ülkesi
- API seviyesi
Bir cihaz, belirttiğiniz tüm koşulları karşılamıyorsa modül uygulama yükleme sırasında indirilmez. Ancak uygulamanız daha sonra Play Core Kitaplığı'nı kullanarak modülü isteğe bağlı olarak indirme isteğinde bulunabilir. Daha fazla bilgi edinmek için Koşullu yayınlamayı yapılandırma başlıklı makaleyi inceleyin.
IntelliJ IDEA 2019.1
Temel Android Studio IDE'si, 2019.1 sürümü ile birlikte IntelliJ IDEA'daki iyileştirmelerle (ör. tema özelleştirme) güncellendi.
Android Studio'ya dahil edilen son IntelliJ sürümü 2018.3.4'tür. Diğer IntelliJ sürümlerinden Android Studio'nun bu sürümüne toplu olarak dahil edilen iyileştirmeler hakkında daha fazla bilgi edinmek için aşağıdaki hata düzeltme güncellemelerine bakın:
- IntelliJ IDEA 2018.3.6{: .external-link}
- IntelliJ IDEA 2018.3.5{: .external-link}
Android Gradle eklentisi 3.5.0 güncellemeleri
Android Gradle eklentisi 3.5.0'daki yenilikler (ör. artımlı ek açıklama işleme ve önbelleğe alınabilir birim testleri için iyileştirilmiş destek) hakkında bilgi edinmek için sürüm notlarına bakın.
Topluluğa katkıda bulunanlar
Android Studio 3.5'i iyileştirmenin diğer yollarını ve hataları keşfetmemize yardımcı olan tüm topluluk katılımcılarımıza teşekkür ederiz. Özellikle P0 ve P1 hatalarını bildiren aşağıdaki kişilere teşekkür etmek isteriz:
|
|
|
3.4 (Nisan 2019)
Android Studio 3.4, çeşitli yeni özellikler ve iyileştirmeler içeren önemli bir sürümdür.
3.4.2 (Temmuz 2019)
Bu küçük güncellemede çeşitli hata düzeltmeleri ve performans iyileştirmeleri yer almaktadır. Önemli hata düzeltmelerinin listesini görmek için Sürüm Güncellemeleri blogundaki ilgili yayını okuyun.
3.4.1 (Mayıs 2019)
Bu küçük güncelleme, çeşitli hata düzeltmeleri ve performans iyileştirmeleri içerir. Önemli hata düzeltmelerinin listesini görmek için Sürüm Güncellemeleri blogundaki ilgili yayını okuyun.
3.4.0 ile ilgili bilinen sorunlar
Uygulamanızı Android Q Beta çalıştıran bir cihaza dağıtırken profil oluşturma devre dışı bırakılır.
- Veri Bağlama Kitaplığı kullanılırken
LiveDataListener.onChanged()
, NPE ile başarısız olabilir. Bu soruna yönelik düzeltme, Android Studio 3.4.1'e dahil edilecek ve Android Studio 3.5'in en son önizleme sürümünde kullanıma sunulmuştur. ( sorun #122066788'e bakın)
IntelliJ IDEA 2018.3.4
Temel Android Studio IDE'si, 2018.3.4 sürümüne kadar IntelliJ IDEA'daki iyileştirmelerle güncellendi.
Android Gradle eklentisi 3.4.0 güncellemeleri
Android Gradle eklentisi 3.4.0'taki yenilikler hakkında bilgi edinmek için sürüm notlarına bakın.
Yeni Proje Yapısı İletişim Kutusu
Yeni Proje Yapısı iletişim kutusu (PSD), bağımlılıklarını güncellemenizi ve projenizin farklı yönlerini (ör. modüller, derleme varyantları, imzalama yapılandırmaları ve derleme değişkenleri) yapılandırmanızı kolaylaştırır.
Menü çubuğundan Dosya > Proje Yapısı'nı seçerek PSD'yi açabilirsiniz. PSD'yi Windows ve Linux'da Ctrl+Shift+Alt+S
, macOS'te ise Command+;
(virgül) tuşuna basarak da açabilirsiniz. PSD'nin yeni ve güncellenen bölümlerinin bazılarının açıklamalarını aşağıda bulabilirsiniz.
Değişkenler
PSD'nin yeni değişkenler bölümü, derleme değişkenleri oluşturmanıza ve yönetmenize olanak tanır. Bu değişkenler, bağımlılıkların sürüm numaralarını projenizde tutarlı tutmak için kullanılanlar gibi olabilir.
- Projenizin Gradle derleme senaryolarında halihazırda bulunan derleme değişkenlerini hızlıca görüntüleyip düzenleyin.
- Doğrudan PSD'den proje veya modül düzeyinde yeni derleme değişkenleri ekleyin.
Not: Mevcut derleme yapılandırma dosyalarınız karmaşık Groovy komut dosyaları aracılığıyla değer atıyorsa bu değerleri PSD üzerinden düzenleyemeyebilirsiniz. Ayrıca, PSD'yi kullanarak Kotlin ile yazılmış derleme dosyalarını düzenleyemezsiniz.
Modüller
Mevcut bir modüldeki tüm derleme varyantlarına uygulanan özellikleri yapılandırın veya Modüller bölümünden projenize yeni modüller ekleyin. Örneğin, defaultConfig
mülklerini yapılandırabilir veya imzalama yapılandırmalarını yönetebilirsiniz.
Bağımlılıklar
Aşağıdaki adımları uygulayarak proje senkronizasyonu sırasında Gradle tarafından çözülen projenizin bağımlılık grafiğindeki her bağımlılığı inceleyin ve görselleştirin:
- PSD'nin sol bölmesinde Bağımlılıklar'ı seçin.
- Modüller bölmesinde, çözülmüş bağımlılıkları incelemek istediğiniz bir modülü seçin.
- PSD'nin sağ tarafında, aşağıda gösterilen Çözüme Ulaştırılan Bağımlılıklar bölmesini açın.
Ayrıca, önce PSD'nin Bağımlılar bölümünden bir modül seçip Tanımlanmış Bağımlılıklar bölümündeki (+) düğmesini tıklayarak ve eklemek istediğiniz bağımlılık türünü seçerek projenize hızlıca bağımlılık arayabilir ve ekleyebilirsiniz.
Seçtiğiniz bağımlılık türüne bağlı olarak, bağımlılık modüle eklemenize yardımcı olacak aşağıdakine benzer bir iletişim kutusu görürsünüz.
Derleme varyantları
PSD'nin bu bölümünde, projenizdeki her modül için derleme varyantları ve ürün çeşitleri oluşturup yapılandırın. Manifesto yer tutucuları, ProGuard dosyaları ekleyebilir, imzalama anahtarları atayabilir ve daha fazlasını yapabilirsiniz.
Öneriler
Proje bağımlılıkları ve derleme değişkenleri için önerilen güncellemeleri aşağıda gösterildiği gibi Öneriler bölümünde görebilirsiniz.
Yeni Resource Manager
Kaynak Yöneticisi, uygulamanızda kaynakları içe aktarmak, oluşturmak, yönetmek ve kullanmak için yeni bir araç penceresidir. Menü çubuğundan Görünüm > Araç Pencereleri > Kaynak Yöneticisi'ni seçerek araç penceresini açabilirsiniz. Kaynak Yöneticisi şunları yapmanıza olanak tanır:
- Kaynakları görselleştirme: İhtiyacınız olan kaynakları hızlıca bulmak için çizilebilir öğeleri, renkleri ve düzenleri önizleyebilirsiniz.
- Toplu içe aktarma: Birden fazla çizilebilir öğeyi Kaynak Yöneticisi araç penceresine sürükleyip bırakarak veya Çizilebilir öğeleri içe aktar sihirbazını kullanarak tek seferde içe aktarabilirsiniz. Sihirbaza erişmek için araç penceresinin sol üst köşesindeki (+) düğmesini ve ardından açılır menüden Çizilebilirleri İçe Aktar'ı seçin.
-
SVG'leri
VectorDrawable
nesnelerine dönüştürme: SVG resimleriniziVectorDrawable
nesnelerine dönüştürmek için Çizilebilir öğeleri içe aktar sihirbazını kullanabilirsiniz. - Öğeleri sürükleyip bırakma: Kaynak Yöneticisi araç penceresinden, çizilebilir öğeleri Düzenleyici'nin hem tasarım hem de XML görünümlerine sürükleyip bırakabilirsiniz.
- Alternatif sürümleri görüntüleme: Artık Araç penceresindeki bir kaynağı çift tıklayarak kaynaklarınızın alternatif sürümlerini görüntüleyebilirsiniz. Bu görünümde, oluşturduğunuz farklı sürümler ve dahil edilen nitelikler gösterilir.
- Karo ve liste görünümleri: Kaynaklarınızı farklı düzenlemelerde görselleştirmek için araç penceresindeki görünümü değiştirebilirsiniz.
Daha fazla bilgi edinmek için Uygulama kaynaklarını yönetme ile ilgili kılavuzu okuyun.
APK'lar için profil oluştururken ve hata ayıklarken derleme kimliklerini kontrol etme
APK'nızdaki .so
paylaşılan kitaplıklar için hata ayıklama simgesi dosyaları sağladığınızda Android Studio, sağlanan simge dosyalarının derleme kimliğinin APK'daki .so
kitaplıklarının derleme kimliğiyle eşleşip eşleşmediğini doğrular.
APK'nızdaki yerel kitaplıkları bir derleme kimliğiyle derlerseniz Android Studio, simge dosyalarınızdaki derleme kimliğinin yerel kitaplıklarınızdaki derleme kimliğiyle eşleşip eşleşmediğini kontrol eder ve eşleşme yoksa simge dosyalarını reddeder. Derlemeyi bir derleme kimliğiyle yapmadıysanız yanlış simge dosyaları sağlama, hata ayıklamayla ilgili sorunlara neden olabilir.
Varsayılan olarak R8 etkin
R8, şeker çıkarma, küçültme, karartma, optimize etme ve dex çıkarma işlemlerini tek bir adımda entegre eder. Bu da belirgin bir derleme performansı artışı sağlar. R8, Android Gradle eklentisi 3.3.0'da kullanıma sunuldu ve artık 3.4.0 ve sonraki sürümlerin kullanıldığı hem uygulama hem de Android kitaplık projeleri için varsayılan olarak etkinleştirildi.
Aşağıdaki resimde, R8'in kullanıma sunulmasından önceki derleme sürecine genel bir bakış sunulmaktadır.
Artık R8 ile şeker çıkarma, küçültme, karartma, optimizasyon ve kod çıkarma (D8) işlemlerinin tümü aşağıda gösterildiği gibi tek bir adımda tamamlanıyor.
R8'in mevcut ProGuard kurallarınızla çalışacak şekilde tasarlandığını unutmayın. Bu nedenle, R8'den yararlanmak için herhangi bir işlem yapmanız gerekmeyebilir. Ancak, ProGuard'dan farklı bir teknoloji olduğu ve özellikle Android projeleri için tasarlandığı için sıkıştırma ve optimizasyon, ProGuard'ın kaldıramayabileceği kodların kaldırılmasına neden olabilir. Bu nedenle, bu olasılık düşük bir durumda, bu kodu derleme çıkışınızda tutmak için ek kurallar eklemeniz gerekebilir.
R8'i kullanırken sorun yaşarsanız sorununuzun çözümü olup olmadığını kontrol etmek için R8 uyumluluk SSS bölümünü okuyun. Çözümü bulamadıysanız lütfen hata bildirin.
R8'i devre dışı bırakmak için projenizin gradle.properties
dosyasına aşağıdaki satırlardan birini ekleyebilirsiniz:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
Not: Belirli bir derleme türü için uygulama modülünüzün build.gradle
dosyasında useProguard
değerini false
olarak ayarlarsanız Android Gradle eklentisi, projenizin gradle.properties
dosyasında R8'i devre dışı bırakıp bırakmadığınızdan bağımsız olarak uygulamanızın kodunu söz konusu derleme türü için küçültmek üzere R8'i kullanır.
Gezinme Düzenleyici artık tüm bağımsız değişken türlerini destekliyor
Gezinme bileşeni tarafından desteklenen tüm bağımsız değişken türleri artık Gezinme Düzenleyici'de de desteklenmektedir. Desteklenen türler hakkında daha fazla bilgi için Hedefler arasında veri geçirme başlıklı makaleyi inceleyin.
Düzenleyici iyileştirmeleri {:#layout-editor}
Düzen Düzenleyici'deki Özellikler bölmesi, yapılandırabileceğiniz özellikleri göstermek için genişletebileceğiniz bölümler içeren tek bir sayfaya dönüştürüldü. Özellikler bölmesinde aşağıdaki güncellemeler de yer alır:
- Yeni bir Tanımlanmış Özellikler bölümü, sayfa düzeni dosyasının belirttiği özellikleri listeler ve yenilerini hızlıca eklemenize olanak tanır.
- Özellikler bölmesinde artık her özelliğin yanında, özelliğin değeri bir kaynak referansı olduğunda dolu, aksi takdirde boş olan göstergeler de yer alıyor.
- Hata veya uyarı içeren özellikler artık vurgulanıyor. Kırmızı vurgulamalar hataları (örneğin, geçersiz düzen değerleri kullandığınızda) ve turuncu vurgulamalar uyarıları (örneğin, sabit kodlanmış değerler kullandığınızda) gösterir.
Bağımlılıkları hızlı bir şekilde içe aktarmak için yeni intent işlemi
Kodunuzda belirli Jetpack ve Firebase sınıflarını kullanmaya başlarsanız yeni bir intent işlemi, gerekli Gradle kitaplığı bağımlılığını projenize eklemenizi önerir (henüz yapmadıysanız). Örneğin, önce gerekli android.arch.work:work-runtime
bağımlılığını içe aktarmadan WorkManager
sınıfına referans verirseniz intent işlemi, bunu aşağıda gösterildiği gibi tek tıklamayla kolayca yapmanıza olanak tanır.
Özellikle Jetpack, destek kitaplığını yönetmesi ve güncellemesi daha kolay ayrı paketler halinde yeniden paketlediğinden bu intent işlemi, kullanmak istediğiniz Jetpack bileşenleri için yalnızca ihtiyacınız olan bağımlılıkları hızlıca eklemenize yardımcı olur.
3.3 (Ocak 2019)
Android Studio 3.3, çeşitli yeni özellikler ve iyileştirmeler içeren önemli bir sürümdür.
3.3.2 (Mart 2019)
Bu küçük güncellemede çeşitli hata düzeltmeleri ve performans iyileştirmeleri yer almaktadır. Önemli hata düzeltmelerinin listesini görmek için Sürüm Güncellemeleri blogundaki ilgili yayını okuyun.
3.3.1 (Şubat 2019)
Bu küçük güncelleme, çeşitli hata düzeltmeleri ve performans iyileştirmeleri içerir.
IntelliJ IDEA 2018.2.2
Temel Android Studio IDE'si, 2018.2.2 sürümüne kadar IntelliJ IDEA'daki iyileştirmelerle güncellendi.
Android Gradle eklentisi güncellemeleri
Android Gradle eklentisindeki yenilikler hakkında bilgi edinmek için sürüm notlarına bakın.
Gezinme Düzenleyici
Gezinme Düzenleyici, Gezinme Mimarisi Bileşeni'ni kullanarak gezinmeyi hızlıca görselleştirmenize ve uygulamanıza yerleştirmenize olanak tanır.
Daha fazla bilgi için Gezinme mimari bileşeniyle gezinmeyi uygulama başlıklı makaleyi inceleyin.
Kullanılmayan Android Studio dizinlerini silme
Android Studio'nun ana sürümünü ilk kez çalıştırdığınızda, Android Studio'nun ilgili kurulumunun bulunamadığı sürümlerinin önbellekleri, ayarları, dizinleri ve günlüklerini içeren dizinleri arar. Ardından Kullanılmayan Android Studio Dizinlerini Sil iletişim kutusunda, kullanılmayan bu dizinlerin konumları, boyutları ve son değiştirilme zamanları gösterilir ve bunları silme seçeneği sunulur.
Android Studio'nun silme için dikkate aldığı dizinler aşağıda listelenmiştir:
- Linux:
~/.AndroidStudio[Preview]X.Y
- Mac:
~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]X.Y
- Windows:
%USER%.AndroidStudio[Preview]X.Y
Tiftik iyileştirmeleri
Gradle'den çağrılan Lint önemli ölçüde daha hızlıdır. Daha büyük projelerde Lint'in dört kat daha hızlı çalıştığını görebilirsiniz.
Yeni Proje Oluştur sihirbazı
Yeni Proje Oluştur sihirbazı yeni bir görünüme kavuştu ve yeni Android Studio projelerinin oluşturulmasını kolaylaştıran güncellemeler içeriyor.
Daha fazla bilgi için Proje oluşturma başlıklı makaleyi inceleyin.
Profiler güncellemeleri
Android Studio 3.3, bağımsız profilleyicilerin birkaçında güncellemeler içerir.
Performans iyileştirmeleri
Kullanıcı geri bildirimleri doğrultusunda, profil oluşturucular kullanılırken oluşturma performansı büyük ölçüde iyileştirildi. Özellikle performans sorunları yaşamaya devam ederseniz lütfen geri bildirim göndermeye devam edin.
Profilleyici bellek tahsisi izleme seçenekleri
Bellek Profilleyici, profil oluşturma sırasında uygulama performansını artırmak için artık bellek ayırma işlemlerini varsayılan olarak düzenli aralıklarla örnekliyor. İsterseniz Android 8.0 (API seviyesi 26) veya sonraki sürümleri çalıştıran cihazlarda test yaparken Ayrıntılandırma İzleme açılır menüsünü kullanarak bu davranışı değiştirebilirsiniz.
Ayrıntı İzleme açılır menüsünü kullanarak aşağıdaki modlar arasından seçim yapabilirsiniz:
-
Tam: Tüm nesne bellek tahsislerini yakalar. Çok sayıda nesne ayıran bir uygulamanız varsa profilleme sırasında önemli performans sorunları görebileceğinizi unutmayın.
-
Örneklendi: Nesne bellek tahsislerinin dönemsel bir örneğini yakalar. Bu, varsayılan davranıştır ve profil oluşturma sırasında uygulama performansı üzerinde daha az etkiye sahiptir. Kısa süre içinde çok sayıda nesne ayıran uygulamalarda bazı performans sorunlarına rastlayabilirsiniz.
-
Kapalı: Bellek ayırmayı devre dışı bırakır. Daha önce seçilmemişse bu mod, CPU kaydı yapılırken otomatik olarak etkinleştirilir ve kayıt bittiğinde önceki ayarlara geri döner. Bu davranışı CPU kayıt yapılandırması iletişim kutusunda değiştirebilirsiniz.
İzleme hem Java nesnelerini hem de JNI referanslarını etkiler.
Kare oluşturma verilerini inceleme
Artık CPU Profiler'da Java uygulamanızın ana kullanıcı arayüzü ileti dizisinde ve RenderThread'da her bir kareyi oluşturmasının ne kadar sürdüğünü inceleyebilirsiniz. Bu veriler, kullanıcı arayüzünde takılmalara ve düşük kare hızlarına neden olan darboğazları incelerken faydalı olabilir. Örneğin, pürüzsüz bir kare hızını korumak için gereken 16 ms'den uzun süren her kare kırmızı renkte gösterilir.
Kare oluşturma verilerini görmek için Sistem çağrılarını izlemenize olanak tanıyan bir yapılandırma kullanarak izleme kaydı oluşturun. İzlemeyi kaydettikten sonra, kayıt zaman çizelgesinde FRAMES (KADROLAR) adlı bölümün altında her kareyle ilgili bilgileri bulun.
Kare hızı sorunlarını inceleme ve düzeltme hakkında daha fazla bilgi edinmek için Yavaş oluşturma başlıklı makaleyi inceleyin.
Etkinlik zaman çizelgesindeki parçalar
Etkinlik zaman çizelgesinde artık parçaların ne zaman eklenip ne zaman kaldırıldığı gösterilir. Ayrıca, fareyle bir parçanın üzerine geldiğinizde parçanın durumunu gösteren bir ipucu gösterilir.
Ağ profilleyicisinde bağlantı yükü için biçimlendirilmiş metni görüntüleme
Önceden ağ profilleyici, yalnızca bağlantı yüklerinden gelen ham metni gösteriyordu. Android Studio 3.3 artık JSON, XML ve HTML dahil olmak üzere belirli metin türlerini varsayılan olarak biçimlendiriyor. Yanıt ve İstek sekmelerinde, biçimlendirilmiş metni görüntülemek için Ayrıştırılmış Metni Görüntüle bağlantısını, ham metni görüntülemek için Kaynağı Görüntüle bağlantısını tıklayın.
Daha fazla bilgi için Network Profiler ile ağ trafiğini inceleme başlıklı makaleyi inceleyin.
SDK bileşenlerinin otomatik olarak indirilmesi
Projenizin SDK platformlarından, NDK'dan veya CMake'den bir SDK bileşenine ihtiyacı olduğunda, Gradle artık SDK Yöneticisi'ni kullanarak ilgili lisans sözleşmelerini daha önce kabul etmiş olmanız koşuluyla gerekli paketleri otomatik olarak indirmeye çalışıyor.
Daha fazla bilgi için Gradle ile eksik paketleri otomatik olarak indirme başlıklı makaleyi inceleyin.
Clang-Tidy desteği
Android Studio artık yerel kod içeren projeler için Clang-Tidy'yi kullanarak statik kod analizi desteği sunmaktadır. Clang-Tidy desteğini etkinleştirmek için NDK'nızı r18 veya sonraki bir sürüme güncelleyin.
Ardından Ayarlar veya Tercihler iletişim kutusunu açıp Düzenleyici > Denetlemeler > C/C++ > Genel > Clang-Tidy'ye giderek denetimleri etkinleştirebilir veya yeniden etkinleştirebilirsiniz. Ayarlar veya Tercihler iletişim kutusunda bu denetimi seçtiğinizde, en sağdaki panelin Seçenek bölümünde etkin ve devre dışı olan Clang-Tidy denetimlerinin listesini de görebilirsiniz. Ek kontrolleri etkinleştirmek için bunları listeye ekleyin ve Uygula'yı tıklayın.
Clang-Tidy'yi ek seçeneklerle yapılandırmak için Clang-Tidy Kontrol Seçenekleri'ni Yapılandır'ı tıklayın ve açılan iletişim kutusuna ekleyin.
C++ özelleştirme seçeneklerinin kaldırılması
C++ Desteğini Özelleştir iletişim kutusundan aşağıdaki seçenekler kaldırıldı:
- İstisna Desteği (-fexceptions)
- Çalışma Zamanı Türü Bilgi Desteği (-ftti)
İlgili davranışlar, Android Studio aracılığıyla oluşturulan tüm projelerde etkinleştirilir.
CMake 3.10.2 sürümü
CMake 3.10.2 sürümü artık SDK Yöneticisi'ne dahil edildi. Gradle'in varsayılan olarak 3.6.0 sürümünü kullanmaya devam ettiğini unutmayın.
Gradle'ın kullanacağı CMake sürümünü belirtmek için modülünüzün build.gradle
dosyasına aşağıdakileri ekleyin:
android {
...
externalNativeBuild {
cmake {
...
version "3.10.2"
}
}
}
build.gradle
'te CMake'i yapılandırma hakkında daha fazla bilgi için Gradle'i manuel olarak yapılandırma başlıklı makaleyi inceleyin.
Minimum CMake sürümlerini belirtmek için yeni "+" söz dizimi
Ana modülünüzün build.gradle
dosyasında CMake sürümünü belirtirken artık CMake'in cmake_minimum_required()
komutunun davranışıyla eşleşecek şekilde "+" işareti ekleyebilirsiniz.
Dikkat: Dinamik bağımlılıklar beklenmedik sürüm güncellemelerine ve sürüm farklılıklarının çözüme ulaştırılması zorluğuna neden olabileceğinden, "+" söz dizimini diğer derleme bağımlılıklarıyla birlikte kullanmaktan kaçınılmalıdır.
Android App Bundle'lar artık Hazır Uygulamaları destekliyor
Android Studio artık Google Play Instant için tam destek sunarak Android App Bundle'lar oluşturmanıza olanak tanır. Başka bir deyişle, artık tek bir Android Studio projesinden hem yüklü uygulama hem de hazır uygulama deneyimleri oluşturabilir, dağıtabilir ve bunları tek bir Android App Bundle'a dahil edebilirsiniz.
Yeni Proje Oluştur iletişim kutusunu kullanarak yeni bir Android Studio projesi oluşturuyorsanız Projenizi yapılandırın > Bu proje anında uygulamaları destekler seçeneğinin yanındaki kutuyu işaretlediğinizden emin olun. Ardından Android Studio, normalde olduğu gibi yeni bir uygulama projesi oluşturur ancak uygulamanızın temel modülüne Anında uygulama desteği eklemek için manifest dosyanıza aşağıdaki özellikleri ekler:
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
<dist:module dist:instant="true" />
...
</manifest>
Ardından, menü çubuğundan Dosya > Yeni > Yeni Modül'ü ve ardından Yeni Modül Oluştur iletişim kutusunda Anında Dinamik Özellik Modülü'nü seçerek anında etkinleştirilen bir özellik modülü oluşturabilirsiniz. Bu modülü oluşturmanın, uygulamanızın temel modülünü de anında etkinleştirdiğini unutmayın.
Uygulamanızı yerel bir cihaza hazır uygulama deneyimi olarak dağıtmak için çalıştırma yapılandırmanızı düzenleyin ve Genel > Hazır uygulama olarak dağıt seçeneğinin yanındaki kutuyu işaretleyin.
Tek varyantlı proje senkronizasyonu
Projenizi derleme yapılandırmanızla senkronize etmek, Android Studio'nun projenizin nasıl yapılandırıldığını anlamasına yardımcı olan önemli bir adımdır. Ancak bu işlem büyük projeler için zaman alabilir. Projenizde birden fazla derleme varyantı kullanılıyorsa proje senkronizasyonlarını yalnızca şu anda seçtiğiniz varyantla sınırlayarak optimize edebilirsiniz.
Bu optimizasyonu etkinleştirmek için Android Gradle eklentisi 3.3.0 veya sonraki bir sürümle birlikte Android Studio 3.3 veya sonraki bir sürümü kullanmanız gerekir. Bu koşulları karşıladığınızda IDE, projenizi senkronize ederken bu optimizasyonu etkinleştirmenizi ister. Optimizasyon, yeni projelerde de varsayılan olarak etkindir.
Bu optimizasyonu manuel olarak etkinleştirmek için Dosya > Ayarlar > Deneysel > Gradle'i (Mac'te Android Studio > Tercihler > Deneysel > Gradle) tıklayın ve Yalnızca etkin varyantı senkronize et onay kutusunu işaretleyin.
Not: Bu optimizasyon şu anda yalnızca Java programlama dilini içeren projeleri desteklemektedir. Örneğin, IDE projenizde Kotlin veya C++ kodu algılarsa bu optimizasyonu otomatik olarak etkinleştirmez ve manuel olarak etkinleştirmeniz gerekmez.
Daha fazla bilgi için Tek varyantlı proje senkronizasyonunu etkinleştirme başlıklı makaleyi inceleyin.
Hızlı geri bildirim sağlama
Android Studio'nun iyileştirilmesine yardımcı olmak için kullanım istatistiklerini paylaşmayı etkinleştirdiyseniz IDE penceresinin alt kısmındaki durum çubuğunda şu iki yeni simgeyi görürsünüz:
IDE ile ilgili mevcut deneyiminizi en iyi yansıtan simgeyi tıklamanız yeterlidir. Bunu yaptığınızda IDE, Android Studio ekibinin duygularınızı daha iyi anlamasını sağlayan kullanım istatistikleri gönderir. IDE ile ilgili olumsuz bir deneyim belirtmeniz gibi bazı durumlarda ek geri bildirimde bulunma fırsatı sunulur.
Henüz yapmadıysanız Ayarlar iletişim kutusunu (Mac'te Tercihler) açarak, Görünüm ve Davranış > Sistem Ayarları > Veri Paylaşımı'na gidip Kullanım istatistiklerini Google'a gönder'i işaretleyerek kullanım istatistiklerinin paylaşılmasını etkinleştirebilirsiniz.
3.2 (Eylül 2018)
Android Studio 3.2, çeşitli yeni özellikler ve iyileştirmeler içeren önemli bir sürümdür.
3.2.1 (Ekim 2018)
Android Studio 3.2'deki bu güncelleme aşağıdaki değişiklikleri ve düzeltmeleri içerir:
- Paketlenmiş Kotlin sürümü 1.2.71 oldu.
- Varsayılan derleme araçları sürümü artık 28.0.3'tür.
- Gezinme kitaplığındaki bağımsız değişken türleri
type
yerineargType
olarak adlandırıldı. - Aşağıdaki hatalar düzeltildi:
- Veri Bağlama kitaplığı kullanılırken alt çizgi içeren değişken adları derleme hatalarına yol açıyordu.
- CMake, IntelliSense ve diğer CLion özelliklerinin başarısız olmasına neden oluyordu.
SliceProvider
eklemek,androidx.*
kitaplıklarını kullanmayan projelerde derleme hatalarına yol açıyordu.- Bazı Kotlin birim testleri çalıştırılmıyordu.
- Veri bağlamayla ilgili bir sorun
PsiInvalidElementAccessException
'ye yol açıyordu. <merge>
öğeleri bazen Düzen Düzenleyici'nin kilitlenmesine yol açıyordu.
3.2.0 ile ilgili bilinen sorunlar
Not: Bu sorunlar Android Studio 3.2.1 sürümünde giderilmiştir.
Kotlin 1.2.70 sürümünü kullanmamanızı önemle tavsiye ederiz.
Kotlin 1.2.61 sürümü, Android Studio'nun donmasına neden olabilecek bir hatayı düzeltir ancak Kotlin 1.2.70 bu düzeltmeyi içermez.
Ancak Kotlin 1.2.71 ve sonraki sürümler bu düzeltmeyi içerir.
-
Genellikle derleme araçları sürümünü belirtmeniz gerekmese de
renderscriptSupportModeEnabled
true
olarak ayarlanmışken Android Gradle eklentisi 3.2.0'ı kullanırken her modülünbuild.gradle
dosyasına aşağıdakileri eklemeniz gerekir:android.buildToolsVersion "28.0.3"
Asistan'da Yenilikler
Yeni bir asistan, Android Studio'daki en son değişiklikler hakkında sizi bilgilendirir.
Asistan, yeni bir yükleme veya güncelleme sonrasında Android Studio'yu açtığınızda gösterilecek yeni bilgiler olduğunu algılarsa açılır. Yardım > Android Studio'daki yenilikler'i seçerek de Asistan'ı açabilirsiniz.
Android Jetpack
Android Jetpack, tekrarlanan görevleri ortadan kaldıran ve yüksek kaliteli, test edilebilir uygulamaları daha hızlı ve kolay bir şekilde oluşturmanızı sağlayan bileşenler, araçlar ve rehberlikle Android geliştirme sürecini hızlandırır. Android Studio, Jetpack'i desteklemek için aşağıdaki güncellemeleri içerir. Daha fazla bilgi için Jetpack belgelerini inceleyin.
Gezinme Düzenleyici
Yeni Gezinme Düzenleyici, uygulamanızın gezinme yapısını oluşturmak için grafik bir görünüm sunmak amacıyla Android Jetpack'in gezinme bileşenleriyle entegre olur. Gezinme Düzenleyici, uygulama içi hedefler arasında gezinmenin tasarımını ve uygulanmasını kolaylaştırır.
Android Studio 3.2'de Gezinme Düzenleyici deneysel bir özelliktir. Gezinme Düzenleyici'yi etkinleştirmek için Dosya > Ayarlar'ı (Mac'te Android Studio > Tercihler) tıklayın, sol bölmede Deneysel kategorisini seçin, Gezinme Düzenleyici'yi etkinleştir seçeneğinin yanındaki kutuyu işaretleyin ve Android Studio'yu yeniden başlatın.
Daha fazla bilgi edinmek için Gezinme Düzenleyici dokümanlarını inceleyin.
AndroidX'e taşıma
Jetpack kapsamında, Android Destek Kitaplıkları'nı androidx
ad alanını kullanarak yeni bir Android uzantı kitaplığına taşıyoruz. Daha fazla bilgi için AndroidX'e genel bakış başlıklı makaleyi inceleyin.
Android Studio 3.2, yeni bir taşıma özelliğiyle bu süreçte size yardımcı olur.
Mevcut bir projeyi AndroidX'e taşımak için Yeniden Düzenle > AndroidX'e Taşı'yı seçin. AndroidX ad alanına taşınmamış Maven bağımlılıkları varsa Android Studio derleme sistemi bu proje bağımlılıkları da otomatik olarak dönüştürür.
Android Gradle eklentisi, gradle.properties
dosyanızda ayarlayabileceğiniz aşağıdaki genel işaretleri sağlar:
android.useAndroidX
:true
olarak ayarlandığında bu işaret, bundan sonra AndroidX'i kullanmak istediğinizi gösterir. İşaret yoksa Android Studio, işaretfalse
olarak ayarlanmış gibi davranır.android.enableJetifier
:true
olarak ayarlandığında bu işaret, mevcut üçüncü taraf kitaplıklarını AndroidX için yazılmış gibi otomatik olarak dönüştürmek üzere araç desteği (Android Gradle eklentisinden) almak istediğinizi gösterir. İşaret yoksa Android Studio, işaretfalse
olarak ayarlanmış gibi davranır.
AndroidX'e taşı komutunu kullandığınızda her iki işaret de true
olarak ayarlanır.
AndroidX kitaplıklarını hemen kullanmaya başlamak istiyorsanız ve mevcut üçüncü taraf kitaplıkları dönüştürmeniz gerekmiyorsa android.useAndroidX
bayrağını true
, android.enableJetifier
bayrağını ise false
olarak ayarlayabilirsiniz.
Android App Bundle
Android App Bundle, uygulamanızın derlenmiş kod ve kaynaklarının tamamını içeren ancak APK oluşturma ve imzalama işlemini Google Play Store'a bırakan yeni bir yükleme biçimidir.
Ardından Google Play'in yeni uygulama yayınlama modeli, her kullanıcının cihaz yapılandırması için optimize edilmiş APK'lar oluşturmak ve yayınlamak amacıyla uygulama paketinizi kullanır. Böylece her kullanıcı yalnızca uygulamanızı çalıştırmak için ihtiyaç duyduğu kod ve kaynakları indirir. Artık birden fazla APK oluşturmanız, imzalamanız ve yönetmeniz gerekmez. Kullanıcılar da daha küçük ve daha optimize edilmiş indirme işlemleri gerçekleştirir.
Ayrıca, uygulama projenize özellik modülleri ekleyebilir ve bunları uygulama paketinize dahil edebilirsiniz. Böylece kullanıcılarınız uygulamanızın özelliklerini istek üzerine indirip yükleyebilir.
Paket oluşturmak için Derle > Paket Derle / APK Derle > Paket Derle'yi seçin.
Android App Bundle oluşturma ve analiz etme talimatları da dahil olmak üzere daha fazla bilgi için Android App Bundle başlıklı makaleyi inceleyin.
Layout Editor'da örnek veriler
Birçok Android düzeninde, uygulama geliştirmenin tasarım aşamasında bir düzenin görünümünü ve tarzını görselleştirmeyi zorlaştırabilecek çalışma zamanı verileri bulunur. Artık, örnek verilerle dolu bir önizlemeyi kolayca görüntülemek için Görünüm Düzenleyici'yi kullanabilirsiniz. Bir görünüm eklediğinizde Tasarım penceresinde görünümün altında bir düğme görünür. Tasarım aşamasında görüntüleme özelliklerini ayarlamak için bu düğmeyi tıklayın. Çeşitli örnek veri şablonları arasından seçim yapabilir ve görünümü doldurmak için örnek öğe sayısını belirtebilirsiniz.
Örnek verileri kullanmayı denemek için yeni bir düzene RecyclerView
ekleyin, görünümün altındaki tasarım zamanı özellikleri düğmesini tıklayın ve örnek veri şablonları bandından bir seçim yapın.
Dilimler
Dilimler, uygulamanızın işlevselliğinin bölümlerini Android'deki diğer kullanıcı arayüzü yüzeylerine yerleştirmenin yeni bir yolunu sunar. Örneğin, Slices, uygulama işlevselliğini ve içeriğini Google Arama önerilerinde göstermeyi mümkün kılar.
Android Studio 3.2'de, uygulamanızı yeni Slice Provider API'leriyle genişletmenize yardımcı olacak yerleşik bir şablonun yanı sıra Slice'leri oluştururken en iyi uygulamalara uyduğunuzdan emin olmanızı sağlayacak yeni lint kontrolleri bulunur.
Başlamak için bir proje klasörünü sağ tıklayın ve Yeni > Diğer > Slice Provider'ı seçin.
Slice etkileşimlerinizi test etme hakkında daha fazla bilgi edinmek için Slices başlangıç kılavuzunu okuyun.
Kotlin 1.2.61
Android Studio 3.2, Kotlin 1.2.61'i paket halinde sunar ve yeni Android SDK'sı Kotlin ile daha iyi entegre edilir. Daha fazla bilgi için Android Developers bloguna göz atın.
IntelliJ IDEA 2018.1.6
Temel Android Studio IDE'si, 2018.1.6 sürümüne kadar IntelliJ IDEA'daki iyileştirmelerle güncellendi.
Android profilleyiciler
Android Studio 3.2'deki aşağıdaki yeni Android Profiler özelliklerini deneyin.
Oturumlar
Artık daha sonra tekrar ziyaret edip incelemek için oturum olarak kaydederek Profilleyici verilerini inceleyebilirsiniz. Profilleyici, IDE'yi yeniden başlatana kadar oturum verilerinizi saklar.
Bir yöntem izlemesi kaydettiğinizde veya bir yığın dökümü yakaladığınızda IDE, bu verileri (uygulamanızın ağ etkinliğiyle birlikte) mevcut oturuma ayrı bir giriş olarak ekler. Verileri karşılaştırmak için kayıtlar arasında kolayca geçiş yapabilirsiniz.
Sistem İzleme
Cihazınızın sistem CPU'sunu ve ileti dizisi etkinliğini incelemek için CPU Profiler'da yeni Sistem İzleme yapılandırmasını seçin. Bu izleme yapılandırması systrace
üzerinde oluşturulur ve kullanıcı arayüzü takılması gibi sistem düzeyindeki sorunları incelemek için kullanışlıdır.
Bu izleme yapılandırmasını kullanırken C/C++ kodunuzu yerel izleme API'si ile veya Java kodunuzu Trace
sınıfıyla donatarak profilleyici zaman çizelgesinde önemli kod rutinlerini görsel olarak işaretleyebilirsiniz.
Bellek Profilleyici'de JNI referanslarını inceleme
Uygulamanızı Android 8.0 (API düzeyi 26) veya sonraki bir sürümü çalıştıran bir cihaza dağıtırsanız artık Bellek Profilleyici'yi kullanarak uygulamanızın JNI kodu için bellek ayırma işlemlerini inceleyebilirsiniz.
Uygulamanız çalışırken zaman çizelgesinin incelemek istediğiniz bir bölümünü seçin ve aşağıdaki resimde gösterildiği gibi sınıf listesinin üzerindeki açılır menüden JNI yığın'ı seçin. Ardından, yığıntaki nesneleri normalde yaptığınız gibi inceleyebilir ve Ayrılma Çağrısı Yığını sekmesindeki nesneleri çift tıklayarak JNI referanslarının kodunuzda nerede ayrıldığını ve serbest bırakıldığını görebilirsiniz.
Bellek yığını dökümü dosyalarını içe aktarma, dışa aktarma ve inceleme
Artık Bellek Profilleyici ile oluşturulan .hprof
bellek yığını dökümü dosyalarını içe aktarabilir, dışa aktarabilir ve inceleyebilirsiniz.
Profilleyicinin Oturumlar bölmesinde Yeni profilleyici oturumu başlat'ı tıklayıp Dosyadan yükle'yi seçerek .hprof
dosyanızı içe aktarın. Ardından, diğer tüm yığın dökümlerinde yaptığınız gibi, bu dökümün verilerini Bellek Profilleyici'de inceleyebilirsiniz.
Daha sonra incelemek üzere yığın dökümü verilerini kaydetmek için Oturumlar bölmesinde Yığın Dökümü girişinin sağındaki Yığın Dökümü'nü Dışa Aktar düğmesini kullanın. Görünen Dışa Aktarma iletişim kutusunda dosyayı .hprof
dosya adı uzantısıyla kaydedin.
Uygulama başlatılırken CPU etkinliğini kaydetme
Artık uygulamanızın başlatılması sırasında CPU etkinliğini aşağıdaki gibi kaydedebilirsiniz:
- Ana menüden Çalıştır > Yapılandırmaları Düzenle'yi seçin.
- İstediğiniz çalıştırma yapılandırmasının Profil oluşturma sekmesinde, Başlangıçta bir yöntem izleme kaydetmeye başla seçeneğinin yanındaki kutuyu işaretleyin.
- Açılır menüden kullanılacak bir CPU kayıt yapılandırması seçin.
- Çalıştır > Profil'i seçerek uygulamanızı Android 8.0 (API seviyesi 26) veya sonraki sürümleri çalıştıran bir cihaza dağıtın.
CPU izleme verilerini dışa aktarma
CPU Profiler ile CPU etkinliğini kaydettikten sonra verileri başkalarıyla paylaşmak veya daha sonra incelemek için .trace
dosyası olarak dışa aktarabilirsiniz.
CPU etkinliğini kaydettikten sonra bir izlemeyi dışa aktarmak için aşağıdakileri yapın:
- CPU zaman çizelgesinden dışa aktarmak istediğiniz kaydı sağ tıklayın.
- Açılır menüden İzleme dosyasını dışa aktar'ı seçin.
- Dosyayı kaydetmek istediğiniz konumu bulup Kaydet'i tıklayın.
CPU izleme dosyalarını içe aktarma ve inceleme
Artık Hata Ayıklama API'si veya CPU Profilleyici ile oluşturulan .trace
dosyalarını içe aktarıp inceleyebilirsiniz. (Sistem izleme kayıtları şu anda içe aktarılamaz.)
Profilleyicinin Oturumlar bölmesinde Yeni profilleyici oturumu başlat'ı tıklayıp Dosyadan yükle'yi seçerek izleme dosyanızı içe aktarın. Ardından, CPU Profili'nde verilerini normalde yaptığınız gibi inceleyebilirsiniz. Bununla birlikte, aşağıdaki istisnalar geçerlidir:
- CPU etkinliği, CPU zaman çizelgesinde gösterilmez.
- Mesaj dizisi etkinliği zaman çizelgesi, gerçek mesaj dizisi durumlarını (ör. çalışan, bekleyen veya uyuyan) değil, yalnızca her mesaj dizisi için izleme verilerinin mevcut olduğu yerleri gösterir.
Hata Ayıklama API'sini kullanarak CPU etkinliğini kaydetme
Artık uygulamanızı Debug API ile enstrümante ederek CPU Profili'nde CPU etkinliğini kaydetmeye başlayabilir ve kaydı durdurabilirsiniz. Uygulamanızı bir cihaza dağıttıktan sonra, profilleyici, uygulamanız startMethodTracing(String tracePath)
çağrısı yaptığında CPU etkinliğini otomatik olarak kaydetmeye başlar ve uygulamanız stopMethodTracing()
çağrısı yaptığında kaydı durdurur. Bu API kullanılarak tetiklenen CPU etkinliğini kaydederken CPU Profiler, seçili CPU kaydı yapılandırması olarak Hata Ayıklama API'sini gösterir.
Energy Profiler
Enerji Profili, uygulamanızın tahmini enerji kullanımının yanı sıra uyanma kilitleri, alarmlar ve işler gibi enerji kullanımını etkileyen sistem etkinliklerinin görselleştirmesini gösterir.
Uygulamanızı bağlı bir cihazda veya Android 8.0 (API 26) ya da sonraki sürümleri çalıştıran Android Emulator'da çalıştırdığınızda Enerji Profili, Profilleyici penceresinin alt kısmında yeni bir satır olarak görünür.
Enerji Profilleyici görünümünü en üst düzeye çıkarmak için Enerji satırını tıklayın. CPU, ağ ve konum (GPS) kaynaklarına göre enerji kullanımının yanı sıra ilgili sistem etkinliklerinin dökümünü görmek için fare işaretçinizi zaman çizelgesindeki bir çubuğun üzerine getirin.
Enerji kullanımını etkileyen sistem etkinlikleri, Enerji zaman çizelgesinin altındaki Sistem zaman çizelgesinde gösterilir. Enerji zaman çizelgesinde bir zaman aralığı seçtiğinizde, belirtilen zaman aralığındaki sistem etkinliklerinin ayrıntıları etkinlik bölmesinde gösterilir.
Bir sistem etkinliğinin çağrı yığınını ve diğer ayrıntılarını (ör. uyandırıcı kilit) görmek için etkinliği etkinlik bölmesinde seçin. Bir sistem etkinliğinden sorumlu koda gitmek için çağrı yığınındaki girişi çift tıklayın.
Lint denetimi
Android Studio 3.2, kirli kod denetimi için birçok yeni ve geliştirilmiş özellik içerir.
Yeni lint kontrolleri, olası kullanılabilirlik sorunlarıyla ilgili uyarılardan olası güvenlik açıklarıyla ilgili yüksek öncelikli hatalara kadar çeşitli yaygın kod sorunlarını bulup tanımlamanıza yardımcı olur.
Java/Kotlin birlikte çalışabilirliği için lint kontrolleri
Java kodunuzun Kotlin kodunuzla iyi bir şekilde birlikte çalışabilmesi için yeni lint kontrolleri, Kotlin birlikte çalışabilirlik kılavuzunda açıklanan en iyi uygulamaları uygular. Bu kontrollere örnek olarak, boşluklanabilirlik ek açıklamalarının olup olmadığının kontrol edilmesi, Kotlin sabit anahtar kelimelerinin kullanılması ve lambda parametrelerinin sona yerleştirilmesi verilebilir.
Bu kontrolleri etkinleştirmek için Ayarlar iletişim kutusunu açmak üzere Dosya > Ayarlar'ı (Mac'te Android Studio > Tercihler) tıklayın, Düzenleyici > Denetimler > Android > Lint > İşbirlikçi Kullanım > Kotlin İşbirlikçi Kullanımı bölümüne gidin ve etkinleştirmek istediğiniz kuralları seçin.
Komut satırı derlemeleri için bu kontrolleri etkinleştirmek isterseniz build.gradle
dosyanıza aşağıdakileri ekleyin:
android {
lintOptions {
check 'Interoperability'
}
}
Dilimler için Lint kontrolleri
Slice'ler için yeni lint kontrolleri, Slice'leri doğru şekilde oluşturmanıza yardımcı olur. Örneğin, lint kontrolleri bir dilime birincil işlem atamamışsanız sizi uyarır.
Yeni Gradle hedefi
Lint kontrolünün önerdiği tüm güvenli düzeltmeleri doğrudan kaynak koda uygulamak için yeni lintFix
Gradle görevini kullanın. Uygulanacak güvenli bir düzeltme öneren bir lint kontrolü örneği SyntheticAccessor
'tür.
Meta veri güncellemeleri
Hizmet yayınlama kontrolü gibi çeşitli meta veriler, lint kontrollerinin Android 9 (API seviyesi 28) ile çalışabilmesi için güncellendi.
Yeni bir varyantta lint çalıştırırken uyarı
Lint artık bir referans değerinin hangi varyant ve sürümle kaydedildiğini kaydeder ve referans değerinin oluşturulduğundan farklı bir varyantta çalıştırırsanız sizi uyarır.
Mevcut lint kontrollerinde iyileştirmeler
Android Studio 3.2, mevcut lint kontrollerinde birçok iyileştirme içerir. Örneğin, kaynak döngüsü kontrolleri artık ek kaynak türleri için geçerlidir ve çeviri algılayıcı, eksik çevirileri düzenleyicide anında bulabilir.
Sorun kimlikleri daha kolay bulunabilir
Sorun kimlikleri artık İnceleme Sonuçları penceresi de dahil olmak üzere daha fazla yerde gösteriliyor. Bu sayede, belirli kontrolleri etkinleştirmek veya devre dışı bırakmak için ihtiyacınız olan bilgileri build.gradle
'daki lintOptions
üzerinden daha kolay bulabilirsiniz.
Daha fazla bilgi için Gradle ile lint seçeneklerini yapılandırma başlıklı makaleyi inceleyin.
Veri Bağlama Sürüm 2
Veri Bağlama V2 artık varsayılan olarak etkindir ve V1 ile uyumludur. Bu, V1 ile derlediğiniz kitaplık bağımlılıklarınız varsa bunları Veri Bağlama V2'yi kullanan projelerde kullanabileceğiniz anlamına gelir. Ancak, V1 kullanan projelerin V2 ile derlenmiş bağımlılıklara erişemediğini unutmayın.
D8 şeker azaltma
Android Studio 3.1'de, şeker çıkarma adımını deneme aşamasındaki bir özellik olarak D8 aracına entegre ederek genel derleme süresini kısalttık. Android Studio 3.2'de D8 ile şeker kaldırma işlemi varsayılan olarak etkindir.
Yeni kod sıkıştırıcı
R8, ProGuard'ın yerini alan kod küçültme ve karartma için yeni bir araçtır. Projenizin gradle.properties
dosyasına aşağıdakileri ekleyerek R8'in önizleme sürümünü kullanmaya başlayabilirsiniz:
android.enableR8 = true
Çoklu APK'lar için varsayılan ABI'lar değiştirildi
Her biri farklı bir ABI'yi hedefleyen birden fazla APK oluştururken, eklenti artık varsayılan olarak şu ABI'ler için APK oluşturmaz: mips
, mips64
ve armeabi
.
Bu ABI'leri hedefleyen APK'lar oluşturmak istiyorsanız NDK r16b veya daha eski bir sürümü kullanmanız ve ABI'leri build.gradle
dosyanızda aşağıda gösterildiği gibi belirtmeniz gerekir:
splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
Not: Bu davranış değişikliği, Android Studio 3.1 RC1 ve sonraki sürümlere de dahil edilmiştir.
CMake derleme dosyaları için gelişmiş düzenleyici özellikleri
Projenize C ve C++ kodu eklemek için CMake kullanıyorsanız Android Studio artık CMake derleme komut dosyalarınızı düzenlemenize yardımcı olacak gelişmiş düzenleyici özellikleri içeriyor. Örneğin:
- Söz dizimi vurgulama ve kod tamamlama: IDE artık yaygın CMake komutları için kod tamamlamayı vurgulayıp öneriyor. Ayrıca, bir dosyaya gitmek için Kontrol tuşuna (Mac'te Komut) basarak dosyayı tıklayabilirsiniz.
- Kod yeniden biçimlendirme: Artık CMake derleme komut dosyalarınıza kod stilleri uygulamak için IntelliJ'in kod yeniden biçimlendirme seçeneğini kullanabilirsiniz.
- Güvenli yeniden düzenleme: IDE'nin yerleşik yeniden düzenleme araçları artık CMake derleme komut dosyalarınızda referans verdiğiniz dosyaların adını değiştirip değiştirmediğinizi veya bu dosyaları silip silmediğinizi de kontrol eder.
Harici üstbilgi dosyalarında gezinme
Android Studio'nun önceki sürümlerinde Proje penceresini kullanırken yalnızca yerel bir projeden oluşturduğunuz kitaplıklara ait başlık dosyalarını gezebilir ve inceleyebilirdiniz. Bu sürümle birlikte, uygulama projenize içe aktardığınız harici C/C++ kitaplık bağımlılıkları ile birlikte dahil edilen başlık dosyalarını da görüntüleyebilir ve inceleyebilirsiniz.
Projenize C/C++ kodu ve kitaplıkları dahil ettiyseniz ana menüden Görünüm > Araç Pencereleri > Proje'yi seçerek IDE'nin sol tarafındaki Proje penceresini açın ve açılır menüden Android'i seçin. cpp dizininde, uygulama projenizin kapsamındaki tüm üstbilgiler, yerel C/C++ kitaplık bağımlılıklarınızın her biri için include düğümü altında aşağıdaki gibi düzenlenir.
Yerel multidex varsayılan olarak etkindir
Android Studio'nun önceki sürümleri, bir uygulamanın hata ayıklama sürümünü Android API düzeyi 21 veya sonraki sürümleri çalıştıran bir cihaza dağıtırken yerel çoklu dizeyi etkinleştiriyordu. Artık Gradle için Android eklentisi, bir cihaza dağıtma veya yayınlamak için APK oluşturma işlemlerinde minSdkVersion=21
veya daha yüksek bir değer ayarlayan tüm modüller için yerel çoklu dizin özelliğini etkinleştiriyor.
AAPT2, Google'ın Maven deposuna taşındı
Android Studio 3.2'den itibaren AAPT2 (Android Asset Packaging Tool 2) kaynağı Google'ın Maven deposudur.
AAPT2'yi kullanmak için build.gradle
dosyanızda burada gösterildiği gibi bir google()
bağımlılığı olduğundan emin olun:
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() } }
buildscript { repositories { google() // here jcenter() } dependencies { classpath("com.android.tools.build:gradle:3.2.0") } } allprojects { repositories { google() // and here jcenter() } }
AAPT2'nin yeni sürümü, Windows'ta ASCII dışı karakterlerin daha iyi işlenmesi de dahil olmak üzere birçok sorunu giderir.
İsteğe bağlı yapılandırma kaldırma
İstediğiniz zaman yapılandır tercihi Android Studio'dan kaldırıldı.
Android Studio artık --configure-on-demand
bağımsız değişkenini Gradle'e iletmiyor.
ADB Bağlantı Asistanı
Yeni ADB Bağlantı Asistanı, Android Debug Bridge (ADB) bağlantısı üzerinden cihaz kurarken ve kullanırken adım adım talimatlar sağlar.
Asistanı başlatmak için Araçlar > Bağlantı Asistanı'nı seçin.
ADB Bağlantı Asistanı, Asistan panelindeki bir dizi sayfada talimatlar, bağlam içi kontroller ve bağlı cihazların listesini sağlar.
Emülatör iyileştirmeleri
Artık Android Emulator'da dilediğiniz zaman AVD'nin (Android sanal cihaz) anlık görüntülerini kaydedip yükleyebilirsiniz. Böylece, taklit edilen cihazı test için bilinen bir duruma hızlı ve kolay bir şekilde döndürebilirsiniz. AVD Yöneticisi'ni kullanarak bir AVD'yi düzenlerken AVD başladığında hangi AVD anlık görüntüsünün yükleneceğini belirtebilirsiniz.
AVD anlık görüntülerini kaydetme, yükleme ve yönetme kontrolleri artık emülatördeki Genişletilmiş denetimler penceresindeki Anlık görüntüler sekmesinde yer alıyor.
Ayrıntılar için Anlık görüntüler başlıklı makaleyi inceleyin.
Emülatör'deki yenilikler ve değişiklikler hakkında daha fazla bilgi için Emülatör sürüm notlarına bakın.
3.1 (Mart 2018)
Android Studio 3.1.0, çeşitli yeni özellikler ve iyileştirmeler içeren önemli bir sürümdür.
3.1.4 (Ağustos 2018)
Android Studio 3.1'deki bu güncelleme aşağıdaki değişiklikleri ve düzeltmeleri içerir:
- Paketlenmiş Kotlin'in sürümü 1.2.50 oldu.
-
Yeni projeler, desteği sonlandırılan
kotlin-stdlib-jre*
yapıları yerinekotlin-stdlib-jdk* artifacts
ile oluşturulur. - ProGuard kurallarının R8 ayrıştırması iyileştirildi.
- Aşağıdaki hatalar düzeltildi:
-
Kotlin Main sınıfını çalıştırma girişimi şu hatayla başarısız oldu:
"Error: Could not find or load main class..."
- R8, belirli optimizasyonları gerçekleştirirken sonsuz döngüye girdi.
- Çalıştır penceresindeki Başarısız testleri yeniden çalıştır komutu bazen yanlışlıkla "Test bulunamadı" mesajını döndürüyordu.
-
D8,
invoke-virtual
örneklerini doğru şekilde işlemediğindeVerifyError
ile kilitlenme meydana gelir:invoke-super/virtual can't be used on private method
-
Veri Bağlama derleyicisi,
com.android.tools:annotations
'ın eski bir sürümüne bağlıydı. Derleyici artık, varsa temel projedeki araç ek açıklamalarını kullanıyor. - Android Studio, profilleyiciler kullanılırken parça geçişleri sırasında kilitleniyordu.
- Metin kutusu içeren bir düzende hata ayıklama yapılırken hata ayıklayıcı kilitlendi.
- D8, özel karakter içeren bazı ZIP dosyalarını okuyamadı.
3.1.3 (Haziran 2018)
Android Studio 3.1'deki bu güncelleme, aşağıdaki hataların düzeltmelerini içerir:
- Bellek sızıntısı, Layout Editor'ı kullandıktan sonra Android Studio'nun yavaşlamasına ve yanıt vermemesine neden oldu. Bu güncelleme, bu sorunların çoğunu giderir. Yakında, diğer bellek sızıntılarını gidermek için başka bir güncelleme yayınlamayı planlıyoruz.
- D8 ile oluşturulan bazı uygulamalar, bazı Verizon Ellipsis tabletlerinde çöküyordu.
-
D8 ile oluşturulan uygulamaların yüklenmesi, Android 5.0 veya 5.1 (API seviyesi 21 veya 22) çalıştıran cihazlarda
INSTALL_FAILED_DEXOPT
hatasıyla başarısız oldu. - OkHttp kitaplığını kullanan ve D8 ile oluşturulan bazı uygulamalar, Android 4.4 (API düzeyi 19) çalıştıran cihazlarda kilitleniyordu.
-
Android Studio bazen
com.intellij.psi.jsp.JspElementType
sınıfının başlatılması sırasındaProcessCanceledException
hatasıyla başlatılamadı.
3.1.2 (Nisan 2018)
Android Studio 3.1'deki bu güncelleme, aşağıdaki hataların düzeltmelerini içerir:
- Bazı durumlarda Android Studio, çıkış sırasında süresiz olarak takılıyordu.
-
Anında çalıştırma etkinleştirildiğinde, kaynak kümeleriyle yapılandırılmış derlemeler aşağıdaki mesajla başarısız oldu:
"The SourceSet name is not recognized by the Android Gradle Plugin."
- Anında Çalıştır etkinleştirildiğinde, yeni Kotlin projelerinin derlemeleri Çalıştır komutuyla tetiklendiğinde başarısız oluyordu.
-
build.gradle
dosyası düzenlenirken bazen bir karakterin yazılmasıyla ekranda görünmesi arasında belirgin bir gecikme yaşanıyordu. -
Çok sayıda modülü veya harici bağımlılığı olan bazı projelerde dizin oluşturma işlemi sırasında aşağıdaki hata mesajıyla birlikte derleme hataları oluştu:
"RejectedExecutionException: Thread limit exceeded replacing blocked worker"
- D8 ana DEX listesinin hesaplanmasında bazı yansıtıcı çağrılar dikkate alınmadı.
Bu güncelleme, bazı senaryolarda Gradle'den lint kontrollerinin çok daha hızlı yapılmasını sağlayan değişiklikleri de içerir.
3.1.1 (Nisan 2018)
Android Studio 3.1'deki bu güncelleme, aşağıdaki hataların düzeltmelerini içerir:
-
Bazı durumlarda, Android Studio 3.0'da oluşturulan bir proje Android Studio 3.1'de ilk kez açıldığında Gradle'den haberdar Make görevi, Çalıştırma/Hata Ayıklama Yapılandırmaları'ndaki Başlamadan önce alanından kaldırılıyordu. Sonuç olarak, Çalıştır veya Hata Ayıklama düğmesi tıklandığında projeler derlenmedi. Bu da Hızlı Çalıştırma kullanılırken yanlış APK'ların dağıtılması ve kilitlenmeler gibi hatalara neden oldu.
Android Studio 3.1.1, bu girişin eksik olduğu projelerin çalıştırma yapılandırmasına Gradle farkında Make görevini ekleyerek bu sorunu çözer. Bu değişiklik, ilk Gradle senkronizasyonundan sonra proje yüklendiğinde gerçekleşir.
- Gelişmiş profil oluşturma etkinse metin kutusu içeren bir düzende hata ayıklama yapılırken hata ayıklayıcı kilitleniyordu.
- Derleme Varyantları'nı tıkladıktan sonra Android Studio dondu.
- AAR (Android arşivi) dosyaları, bir kez Gradle senkronizasyon işlemi sırasında ve bir kez Gradle derleme işlemi sırasında olmak üzere iki kez ayıklandı.
- SVG dosyalarından içe aktarılan bazı vektör çizilebilir öğelerde öğeler eksikti.
-
compile
bağımlılık yapılandırmasının desteğinin sonlandırılmasıyla ilgili uyarı,implementation
veapi
yapılandırmalarıyla ilgili daha iyi bir rehberlik içeriğiyle güncellendi.compile
yapılandırmasını kullanmayı bırakmayla ilgili ayrıntılar için yeni bağımlılık yapılandırmalarıyla ilgili dokümanlara bakın.
Kodlama/IDE
IntelliJ 2017.3.3
Temel Android Studio IDE'si, IntelliJ IDEA'daki 2017.3.3 sürümüne kadarki iyileştirmelerle güncellendi. Koleksiyonlar ve dizeler için daha iyi kontrol akışı analizi, geliştirilmiş boşluk inferansı, yeni hızlı düzeltmeler ve daha fazlası bu iyileştirmeler arasındadır.
Ayrıntılar için IntelliJ IDEA 2017.2 ve 2017.3 sürümlerinin yanı sıra hata düzeltme güncellemeleri ile ilgili JetBrains sürüm notlarına bakın.
Oda ile SQL düzenleme iyileştirmeleri
Room veritabanı kitaplığını kullandığınızda SQL düzenlemeyle ilgili çeşitli iyileştirmelerden yararlanabilirsiniz:
Query
içindeki kod tamamlama, SQL tablolarını (varlıkları), sütunları, sorgu parametrelerini, takma adları, birleştirme işlemlerini, alt sorguları ve WITH yan tümcelerini anlar.- SQL söz dizimi vurgulama artık çalışıyor.
- SQL'de bir tablo adını sağ tıklayıp yeniden adlandırabilirsiniz. Bu işlem, ilgili Java veya Kotlin kodunu da (ör. sorgunun döndürülen türü dahil) yeniden yazar. Yeniden adlandırma işlemi diğer yönde de çalışır. Bu nedenle, bir Java sınıfının veya alanının yeniden adlandırılması, ilgili SQL kodunun yeniden yazılmasını sağlar.
- SQL kullanımları, Kullanım yerlerini bul seçeneği kullanıldığında gösterilir (sağ tıklayıp bağlam menüsünden Kullanım yerlerini bul'u seçin).
- Java veya Kotlin kodunda bir SQL öğesinin tanımına gitmek için öğeyi tıklarken Ctrl (Mac'te Komut) tuşunu basılı tutabilirsiniz.
SQL'i Room ile kullanma hakkında bilgi edinmek için Room'u kullanarak verileri yerel bir veritabanına kaydetme başlıklı makaleyi inceleyin.
Veri bağlamayla ilgili güncellemeler
Bu güncelleme, veri bağlama ile ilgili çeşitli iyileştirmeler içerir:
-
Artık veri bağlama ifadelerinde gözlemlenebilir bir alan olarak
LiveData
nesnesini kullanabilirsiniz.ViewDataBinding
sınıfına,LiveData
nesnelerini gözlemlemek için kullanabileceğiniz yeni birsetLifecycle()
yöntemi eklendi. -
ObservableField
sınıfı artık oluşturucusuna başkaObservable
nesneleri kabul edebilir. -
Veri bağlama sınıflarınız için yeni bir artımlı derleyiciyi önizleyebilirsiniz. Bu yeni derleyicinin ayrıntıları ve etkinleştirme talimatları için Veri Bağlama Derleyicisi V2 başlıklı makaleyi inceleyin.
Yeni derleyicinin avantajları arasında şunlar yer alır:
-
ViewBinding
sınıfları, Java derleyicisinden önce Gradle için Android eklentisi tarafından oluşturulur. - Kitaplıklar, uygulama derlenirken her seferinde yeniden oluşturulmak yerine oluşturulan bağlama sınıflarını korur. Bu, çok modüllü projelerin performansını büyük ölçüde artırabilir.
-
Derleyici ve Gradle
D8, varsayılan DEX derleyicisidir
DEX bayt kodu oluşturmak için artık varsayılan olarak D8 derleyicisi kullanılmaktadır.
Bu yeni DEX derleyici, aşağıdakiler gibi çeşitli avantajlar sunar:
- Daha hızlı dizin oluşturma
- Daha düşük bellek kullanımı
- İyileştirilmiş kod oluşturma (daha iyi kayıt ataması, daha akıllı dize tabloları)
- Kodda adım atarken daha iyi hata ayıklama deneyimi
Daha önce D8 derleyicisini manuel olarak devre dışı bırakmadıysanız bu avantajlardan yararlanmak için kodunuzda veya geliştirme iş akışınızda herhangi bir değişiklik yapmanız gerekmez.
gradle.properties
öğenizdeki android.enableD8
değerini false
olarak ayarladıysanız bu işareti silin veya true
olarak ayarlayın:
android.enableD8=true
Ayrıntılar için Yeni DEX derleyici başlıklı makaleyi inceleyin.
Artımlı şeker
Java 8 dil özelliklerini kullanan projelerde, artımlı şeker kaldırma işlemi varsayılan olarak etkindir. Bu, derleme sürelerini iyileştirebilir.
Şeker çıkarma işlemi, söz dizimi şekerini derleyicinin daha verimli bir şekilde işleyebileceği bir forma dönüştürür.
Projenizin gradle.properties
dosyasında aşağıdakileri belirterek artan şeker azaltmayı devre dışı bırakabilirsiniz:
android.enableIncrementalDesugaring=false
Basitleştirilmiş çıkış penceresi
Gradle Console, Sync ve Build sekmelerinin bulunduğu Build penceresiyle değiştirildi.
Yeni ve basitleştirilmiş Derleme penceresinin nasıl kullanılacağı hakkında ayrıntılı bilgi için Derleme sürecini izleme başlıklı makaleyi inceleyin.
Toplu güncellemeler ve dizine ekleme işlemlerinin eşzamanlılığı
Gradle senkronizasyonu ve IDE dizine ekleme işlemleri artık çok daha verimli olduğundan, birçok gereksiz dizine ekleme işleminde boşa harcanan süre azalıyor.
C++ ve LLDB
C++ geliştirmenin kodlama, senkronizasyon, derleme ve hata ayıklama aşamalarında birçok kalite ve performans iyileştirmesi yaptık. İyileştirmeler şunları içerir:
-
Büyük C++ projeleriyle çalışıyorsanız simge oluşturmak için harcanan sürenin azalmasında önemli bir iyileşme göreceksiniz. Büyük projelerde senkronizasyon süresi de önemli ölçüde azalır.
-
Önbelleğe alınmış sonuçların daha agresif bir şekilde yeniden kullanılmasıyla CMake ile derleme ve senkronizasyon performansı iyileştirildi.
-
Daha fazla C++ veri yapısı için biçimlendiricilerin ("güzel yazıcılar") eklenmesi, LLDB çıkışının okunmasını kolaylaştırır.
-
LLDB artık yalnızca Android 4.1 (API düzeyi 16) ve sonraki sürümlerde çalışır.
Not: Android Studio 3.0 veya sonraki sürümlerde doğal hata ayıklama, 32 bit Windows'ta çalışmaz. 32 bit Windows kullanıyorsanız ve yerel kodda hata ayıklama yapmanız gerekiyorsa Android Studio 2.3'ü kullanın.
Kotlin
Kotlin 1.2.30 sürümüne yükseltildi
Android Studio 3.1, Kotlin 1.2.30 sürümünü içerir.
Kotlin kodu artık komut satırı lint kontrolüyle analiz ediliyor
Komut satırından lint çalıştırma artık Kotlin sınıflarınızı analiz ediyor.
Linting çalıştırmak istediğiniz her proje için üst düzey build.gradle
dosyasına Google'ın Maven deposu eklenmelidir. Maven deposu, Android Studio 3.0 ve sonraki sürümlerde oluşturulan projelere zaten dahildir.
Performans araçları
CPU Profiler ile yerel C++ işlemlerini örnekleme
CPU Profilleyici artık uygulamanızın yerel iş parçacıklarının örneklenmiş izlerini kaydetmek için varsayılan bir yapılandırma içeriyor. Uygulamanızı Android 8.0 (API seviyesi 26) veya sonraki bir sürüm çalıştıran bir cihaza dağıtıp CPU Profilleyici'nin kayıt yapılandırmaları açılır menüsünden Sanalandırılmış (Yerel)'i seçerek bu yapılandırmayı kullanabilirsiniz. Ardından, normalde yaptığınız gibi bir izleme kaydetme ve inceleme
Kayıt yapılandırması oluşturarak örnekleme aralığı gibi varsayılan ayarları değiştirebilirsiniz.
Java iş parçacıklarını izlemeye geri dönmek için örneklenmiş (Java) veya araçlar eklenmiş (Java) bir yapılandırma seçin.
CPU izlemelerini, bellek ayırma sonuçlarını ve yığın dökümlerini filtreleme
CPU Profiler ve Memory Profiler, bir yöntem izleme kaydından, bellek ayırmalarından veya yığın dökümünden elde edilen sonuçları filtrelemenize olanak tanıyan bir arama özelliği içerir.
Arama yapmak için bölmenin sağ üst köşesindeki Filtrele'yi tıklayın, sorgunuzu yazın ve Enter tuşuna basın.
İpucu: Arama alanını Ctrl + F (Mac'te Komut + F) tuşlarına basarak da açabilirsiniz.
CPU Profilleyici'nin Alev Grafiği sekmesinde, arama sorgunuzla ilgili yöntemleri içeren çağrı yığınları vurgulanır ve grafiğin sol tarafına taşınır.
Yöntem, sınıf veya paket adına göre filtreleme hakkında daha fazla bilgi için Yöntem izlemelerini kaydetme ve inceleme başlıklı makaleyi inceleyin.
Ağ Profilleyici'deki İstek sekmesi
Ağ Profilleyici'ye artık, seçilen zaman çizelgesi sırasında ağ istekleriyle ilgili ayrıntılar sağlayan bir İstek sekmesi eklendi. Önceki sürümlerde Ağ Profili Analizi yalnızca ağ yanıtları hakkında bilgi sağlıyordu.
Network Profiler'da Mesaj Dizisi Görünümü
Ağ Profilleyici'de zaman çizelgesinin bir bölümünü seçtikten sonra, bu zaman aralığındaki ağ etkinliği hakkında daha fazla ayrıntı görmek için aşağıdaki sekmelerden birini seçebilirsiniz:
- Bağlantı Görünümü: Android Studio'nun önceki sürümleriyle aynı bilgileri sağlar. Zaman çizelgesinin seçili bölümünde, uygulamanızın tüm CPU iş parçacıklarında gönderilen veya alınan dosyaları listeler. Her istek için boyutu, türü, durumu ve aktarım süresini inceleyebilirsiniz.
- İşlem Düğümü Görünümü: Uygulamanızın her bir CPU iş düğümünün ağ etkinliğini gösterir. Bu görünüm, her ağ isteği için uygulamanızdaki hangi iş parçacıklarının sorumlu olduğunu incelemenize olanak tanır.
Layout Inspector
Layout Inspector, desteği sonlandırılan hiyerarşi görüntüleyici ve Pixel Perfect araçları tarafından daha önce sağlanan bazı işlevler de dahil olmak üzere yeni özellikler kazandı:
- Düzenlerde gezinmek ve düzenleri incelemek için yakınlaştırma düğmeleri ve klavye kısayolları
- Referans ızgara yer paylaşımı
- Referans resim yükleyip yer paylaşımı olarak kullanabilme (düzenlemenizi bir kullanıcı arayüzü taslağıyla karşılaştırmak için kullanışlıdır)
- Karmaşık bir düzendeki bir görünümü izole etmek için alt ağaç önizlemesini oluşturma
Düzenleyici
Düzenleyici'deki Palet'te birçok iyileştirme yapıldı:
- Görünümler ve düzenler için kategorilerin yeniden düzenlenmesi.
- Görünümler ve düzenler için yeni Ortak kategorisi. Bu kategoriye Favori komutuyla ekleme yapabilirsiniz.
- Görünüm ve düzen araması iyileştirildi.
- Belirli bir görünüm veya düzen öğesinin dokümanlarını açma için yeni komutlar.
Bir görünümü veya düzeni başka bir görünüm veya düzen türüne dönüştürmek için Bileşen ağacında veya tasarım düzenleyicisinde yeni Görünümü dönüştür komutunu kullanabilirsiniz.
Artık Özellikler penceresinin üst kısmındaki görünüm denetleyicisinde bulunan yeni Bağlantı oluştur düğmelerini kullanarak seçili görünümün yakınındaki öğeler için kolayca kısıtlama oluşturabilirsiniz.
Çalıştırma ve Anında Çalıştırma
Yayınlama hedefini seç iletişim kutusunda bulunan Gelecekteki yayınlar için aynı seçimi kullan seçeneğinin davranışı daha tutarlı hale getirildi. Aynı seçimi kullan seçeneği etkinse Yayınlama hedefini seç iletişim kutusu yalnızca Çalıştır komutunu ilk kez kullandığınızda açılır ve seçili cihaz artık bağlı olmadığında kapanır.
Android 8.0 (API seviyesi 26) veya sonraki sürümleri çalıştıran bir cihaz hedeflendiğinde Anında Çalıştır, uygulamanın yeniden başlatılmasına neden olmadan kaynaklarda değişiklik dağıtabilir. Bu, kaynakların bölünmüş bir APK'da yer alması nedeniyle mümkündür.
Emülatör
Android Studio 3.0'dan bu yana emülatörde yapılan yenilikler ve değişikliklerle ilgili ayrıntılar için 27.0.2 sürümünden 27.1.12 sürümüne kadarki Android Emulator sürüm notlarına bakın.
Önemli iyileştirmeler arasında şunlar yer alır:
- Özel bir başlangıç durumunu kaydetmek için Şimdi kaydet komutunu kullanarak emülatör durumunu kaydetmek ve daha hızlı başlatmak için Hızlı Başlatma anlık görüntüleri.
- Penceresiz emülatör ekranı.
- Android 8.0 (API düzeyi 26), Android 8.1 (API düzeyi 27) ve Android P Developer Preview için sistem resimleri.
Kullanıcı arayüzü ve kullanıcı deneyimiyle ilgili iyileştirmeler
Daha fazla ipucu, klavye kısayolu ve faydalı mesajlar
Android Studio'nun birçok yerine ipucu ve faydalı mesaj yer paylaşımları ekledik.
Birçok komutun klavye kısayollarını görmek için fare işaretçisini bir düğmenin üzerinde tutarak ipucu görünene kadar beklemeniz yeterlidir.
Araçlar > Android menüsü kaldırıldı
Araçlar > Android menüsü kaldırıldı. Daha önce bu menüde bulunan komutlar taşındı.
- Birçok komut doğrudan Araçlar menüsünün altına taşındı.
- Projeyi Gradle dosyalarıyla senkronize et komutu Dosya menüsüne taşındı.
- Cihaz İzleyici komutu aşağıda açıklandığı şekilde kaldırıldı.
Komut satırından kullanılabilen Cihaz İzleyici
Android Studio 3.1'de Cihaz İzleyici, önceki sürümlere kıyasla daha az rol oynar. Cihaz İzleyici aracılığıyla sunulan işlevlerin çoğu artık yeni ve iyileştirilmiş araçlar tarafından sağlanmaktadır.
Cihaz İzleyici'yi komut satırından çağırma talimatları ve Cihaz İzleyici üzerinden kullanılabilen araçlarla ilgili ayrıntılar için Cihaz İzleyici dokümanlarına bakın.
3.0 (Ekim 2017)
Android Studio 3.0.0, çeşitli yeni özellikler ve iyileştirmeler içeren önemli bir sürümdür.
macOS kullanıcıları: Android Studio'nun eski bir sürümünü güncelliyorsanız "Yükleme alanında bazı çakışmalar bulundu" yazan bir güncelleme hatası iletişim kutusuyla karşılaşabilirsiniz. Bu hatayı yok sayıp yüklemeyi devam ettirmek için İptal'i tıklayın.
3.0.1 (Kasım 2017)
Bu, Android Studio 3.0'da genel hata düzeltmeleri ve performans iyileştirmeleri içeren küçük bir güncellemedir.
Gradle 3.0.0 için Android eklentisi
Yeni Gradle için Android eklentisi çeşitli iyileştirmeler ve yeni özellikler içeriyor ancak temel olarak çok sayıda modülü olan projelerin derleme performansını iyileştiriyor. Yeni eklentiyi bu büyük projelerle kullanırken aşağıdakileri deneyimleyebilirsiniz:
- Yeni gecikmeli bağımlılık çözümü nedeniyle daha hızlı derleme yapılandırma süreleri.
- Yalnızca oluşturduğunuz projeler ve varyantlar için varyant bilinçli bağımlılık çözümü
- Kod veya kaynaklarda basit değişiklikler uygularken daha hızlı artımlı derleme süreleri
Not: Bu iyileştirmeler, eklentinin bazı davranışlarını, DSL'sini ve API'lerini bozan önemli değişiklikler gerektirdi. 3.0.0 sürümüne yükseltme, derleme dosyalarınızda ve Gradle eklentilerinizde değişiklik yapmanızı gerektirebilir.
Bu sürüm aşağıdakileri de içerir:
- Android 8.0 desteği.
- Dil kaynaklarına göre ayrı APK'lar oluşturma desteği.
- Java 8 kitaplıkları ve Java 8 dil özellikleri (Jack derleyicisi olmadan) için destek.
- Android Test Destek Kitaplığı 1.0 (Android Test Utility ve Android Test Orkestratörü) desteği.
- ndk-build ve cmake derleme hızları artırıldı.
- Gradle senkronizasyon hızı iyileştirildi.
- AAPT2 artık varsayılan olarak etkindir.
ndkCompile
kullanımı artık daha kısıtlı. Bunun yerine, APK'nıza paketlemek istediğiniz yerel kodu derlemek için CMake veya ndk-build'i kullanarak geçiş yapmanız gerekir. Daha fazla bilgi için ndkcompile'den taşıma başlıklı makaleyi inceleyin.
Değişikliklerle ilgili daha fazla bilgi için Gradle için Android eklentisi sürüm notlarına bakın.
Yeni eklentiye geçmeye hazırsanız Gradle için Android eklentisi 3.0.0'a geçme başlıklı makaleyi inceleyin.
Kotlin desteği
Google I/O 2017'de duyurulduğu gibi, Kotlin programlama dili artık Android'de resmi olarak destekleniyor. Bu nedenle, Android Studio bu sürümde Android geliştirme için Kotlin dil desteğini içermektedir.
Kotlin'i bir Java dosyasını Kotlin'e dönüştürerek (Kod > Java Dosyasını Kotlin Dosyasına Dönüştür'ü tıklayın) veya Yeni Proje sihirbazını kullanarak Kotlin özellikli yeni bir proje oluşturarak projenize dahil edebilirsiniz.
Başlamak için Kotlin'i projenize nasıl ekleyeceğinizi okuyun.
Java 8 dil özellikleri desteği
Artık belirli Java 8 dil özelliklerini kullanabilir ve Java 8 ile oluşturulan kitaplıkları kullanabilirsiniz. Jack artık gerekli değildir. Varsayılan araç zincirine yerleştirilmiş gelişmiş Java 8 desteğini kullanmak için önce Jack'i devre dışı bırakmanız gerekir.
Projenizi yeni Java 8 dil araç setini destekleyecek şekilde güncellemek için Proje Yapısı iletişim kutusunda (Dosya > Proje Yapısı'nı tıklayın) Kaynak Uyumluluğu ve Hedef Uyumluluğu'nu 1.8 olarak güncelleyin. Daha fazla bilgi edinmek için Java 8 dili özelliklerini kullanma başlıklı makaleyi inceleyin.
Android Profiler
Yeni Android Profilleyici, Android İzleyici aracının yerini alıyor ve uygulamanızın CPU, bellek ve ağ kullanımını anlık olarak ölçmek için yeni bir araç paketi sunuyor. Kod yürütmenizi zamanlamak, yığın dökümleri yakalamak, bellek tahsislerini görüntülemek ve ağ üzerinden aktarılan dosyaların ayrıntılarını incelemek için örnek tabanlı yöntem izleme gerçekleştirebilirsiniz.
Açmak için Görünüm > Araç Pencereleri > Android Profilleyici'yi (veya araç çubuğunda Android Profilleyici'yi) tıklayın.
Pencerenin üst kısmındaki etkinlik zaman çizelgesi, dokunma etkinliklerini, tuş basma işlemlerini ve etkinlik değişikliklerini gösterir. Böylece zaman çizelgesindeki diğer performans etkinliklerini daha iyi anlayabilirsiniz.
Not: Logcat görünümü de ayrı bir pencereye taşındı (eskiden kaldırılan Android Monitor'da bulunuyordu).
Android Profiler'ın genel bakış zaman çizelgesinde, ilgili profiler araçlarına erişmek için CPU, BELLEK veya AĞ zaman çizelgelerini tıklayın.
CPU Profiler
CPU Profiler, örnek veya enstrümante edilmiş CPU izlemesi tetikleyerek uygulamanızın CPU ileti dizisi kullanımını analiz etmenize yardımcı olur. Ardından, çeşitli veri görünümlerini ve filtreleri kullanarak CPU performansı sorunlarını giderebilirsiniz.
Daha fazla bilgi için CPU Profilleyici kılavuzuna bakın.
Memory Profiler
Bellek Profilleyici, takılmalara, donmalara ve hatta uygulama kilitlenmelerine yol açabilecek bellek sızıntılarını ve bellek değişimlerini belirlemenize yardımcı olur. Uygulamanızın bellek kullanımının gerçek zamanlı grafiğini gösterir, yığın dökümünü yakalamanıza, çöp toplama işlemlerini zorlamanıza ve bellek tahsislerini izlemenize olanak tanır.
Daha fazla bilgi için Bellek Profilleyici kılavuzuna bakın.
Network Profiler
Ağ Profilleyici, uygulamanızın ağ etkinliğini izlemenize, ağ isteklerinizin her birinin yükünü incelemenize ve ağ isteğini oluşturan koda geri bağlantı oluşturmanıza olanak tanır.
Daha fazla bilgi için Ağ Profilleyici kılavuzuna bakın.
APK profil oluşturma ve hata ayıklama
Android Studio artık APK'yı bir Android Studio projesinden derlemeniz gerekmeden herhangi bir APK'yı profilleyip hata ayıklamanıza olanak tanır. Bunun için APK'nın hata ayıklamayı etkinleştirecek şekilde derlenmiş olması ve hata ayıklama simgelerine ve kaynak dosyalara erişiminizin olması gerekir.
Başlamak için Android Studio Hoş Geldiniz ekranından APK'yı profille veya hata ayıklayın'ı tıklayın. Alternatif olarak, açık bir projeniz varsa menü çubuğundan Dosya > APK'yı profille veya hata ayıklayın'ı tıklayın. Bu işlem, paketi açılmış APK dosyalarını gösterir ancak kodu derlemeyi kaldırmaz. Bu nedenle, kesme noktalarını doğru şekilde eklemek ve yığın izlemeleri görüntülemek için Java kaynak dosyalarını ve yerel hata ayıklama sembollerini eklemeniz gerekir.
Daha fazla bilgi için Önceden Oluşturulmuş APK'lar için Profil Oluşturma ve Hata Ayıklama başlıklı makaleyi inceleyin.
Cihaz Dosyası Gezgini
Yeni Cihaz Dosya Gezgini, bağlı cihazınızın dosya sistemini incelemenize ve cihaz ile bilgisayarınız arasında dosya aktarmanıza olanak tanır. Bu araç, DDMS'de bulunan dosya sistemi aracının yerini alır.
Açmak için Görünüm > Araç Pencereleri > Cihaz Dosya Gezgini'ni tıklayın.
Daha fazla bilgi için Cihaz Dosya Gezgini kılavuzuna göz atın.
Hazır Uygulamalar desteği
Android Hazır Uygulamalar için sunulan yeni destek, projenizde iki yeni modül türünü kullanarak Hazır Uygulamalar oluşturmanıza olanak tanır: Hazır Uygulama modülleri ve özellik modülleri (bunlar için Hazır Uygulamalar Geliştirme SDK'sını yüklemeniz gerekir).
Android Studio, mevcut bir projeye Anında Uygulama desteği eklemenize yardımcı olmak için yeni bir modülerleştirme yeniden düzenleme işlemi de içerir. Örneğin, bazı sınıfları Instant App özellik modülüne yerleştirmek için projenizi yeniden yapılandırmak istiyorsanız Proje penceresindeki sınıfları seçip Yeniden yapılandır > Modülerleştir'i tıklayın. Açılan iletişim kutusunda, sınıfların ekleneceği modülü seçin ve Tamam'ı tıklayın.
Hazır uygulamanızı test etmeye hazır olduğunuzda, yapılandırmayı çalıştırma başlatma seçenekleri bölümünde hazır uygulamanın URL'sini belirterek bağlı bir cihazda hazır uygulama modülünüzü derleyip çalıştırabilirsiniz: Çalıştır > Yapılandırmaları Düzenle'yi seçin, hazır uygulama modülünüzü seçin ve ardından Başlatma Seçenekleri bölümünde URL'yi ayarlayın.
Daha fazla bilgi için Android Hazır Uygulamalar başlıklı makaleyi inceleyin.
Android Things modülleri
Android destekli IoT cihazlar için geliştirme yapmaya başlamanıza yardımcı olacak Yeni Proje ve Yeni Modül sihirbazlarındaki yeni Android Things şablonları.
Daha fazla bilgi için Android Things projesi oluşturma başlıklı makaleyi inceleyin.
Uyarlanabilir Simgeler sihirbazı
Image Asset Studio artık vektor çizilebilir öğeleri destekliyor ve aynı anda eski cihazlar için geleneksel simgeleri ("eski" simgeler) oluştururken Android 8.0 için uyarlanabilir başlatıcı simgeleri oluşturmanıza olanak tanıyor.
Başlamak için projenizdeki res klasörünü sağ tıklayın ve ardından Yeni > Resim Öğesi'ni tıklayın. Asset Studio penceresinde simge türü olarak Başlatıcı simgeleri (Uyarlanabilir ve Eski)'ni seçin.
Not: Uyarlanabilir başlatıcı simgelerini kullanmak için compileSdkVersion
değerini 26 veya daha yüksek bir değere ayarlamanız gerekir.
Daha fazla bilgi için Uyarlanabilir simgeler hakkındaki makaleyi inceleyin.
Yazı tipi kaynakları için destek
Android 8.0'daki yeni yazı tipi kaynaklarını desteklemek için Android Studio, yazı tiplerini uygulamanıza paketlemeye veya projenizi, yazı tiplerini cihaza indirecek şekilde yapılandırmaya (mevcut olduğunda) yardımcı olan bir yazı tipi kaynağı seçici içerir. Düzenleyici, düzeninizdeki yazı tiplerini de önizleyebilir.
İndirilebilir yazı tiplerini denemek için cihazınızda veya emülatörünüzde Google Play Hizmetleri 11.2.63 veya sonraki bir sürümün yüklü olduğundan emin olun. Daha fazla bilgi için İndirilebilir Yazı Tipleri hakkındaki makaleyi inceleyin.
Firebase App Indexing Assistant
Firebase Asistanı, uygulama dizine ekleme özelliğini test etmeye yönelik yeni bir eğitimle güncellendi. Asistan'ı açmak için Araçlar > Firebase'i seçin. Ardından Uygulama dizine ekleme > Uygulama dizine eklemeyi test et'i seçin.
Eğitimde, herkese açık ve kişisel içeriklerinizin dizine eklenmesini test etmek için yeni düğmeler yer alır:
- 2. adımda, URL'lerinizin Google Arama sonuçlarında gösterilip gösterilmediğini doğrulamak için Arama sonuçlarını önizle'yi tıklayın.
- Uygulamanızdaki dizine eklenebilir öğelerin kişisel içerik dizine eklendiğini doğrulamak için 3. adımda Hataları kontrol et'i tıklayın.
Android Uygulama Bağlantıları Asistanı
Uygulama Bağlantıları Asistanı, aşağıdaki yeni özelliklerle güncellendi:
-
Intent filtrelerinizin gerçek URL'leri işlediğinden emin olmak için her URL eşlemesi için URL testleri ekleyin.
Aşağıda açıklanan
<tools:validation>
etiketini kullanarak bu URL testlerini manuel olarak da tanımlayabilirsiniz. -
Google Smart Lock'u desteklemek için uygun nesne girişini içeren bir Digital Asset Links dosyası oluşturun ve manifest dosyanıza ilgili
asset_statements
<meta-data>
etiketini ekleyin.
URL intent-filter doğrulayıcısı
Android Studio artık manifest dosyasında intent filtresi URL'lerinizi test etmenize olanak tanıyan özel bir etiketi destekliyor. Bunlar, Uygulama Bağlantıları Asistanı'nın sizin için oluşturabileceği etiketlerle aynıdır.
Bir intent filtresi için test URL'si beyan etmek isterseniz ilgili <intent-filter>
öğesinin yanına bir <tools:validation>
öğesi ekleyin. Örnek:
<activity ...>
<intent-filter>
...
</intent-filter>
<tools:validation testUrl="https://www.example.com/recipe/1138" />
</activity>
<manifest>
etiketine xmlns:tools="http://schemas.android.com/tools"
değerini de eklediğinizden emin olun.
Test URL'lerinden herhangi biri intent filtresi tanımını geçemezse bir lint hatası görünür. Bu tür bir hata, hata ayıklama varyantları oluşturmanıza izin verir ancak sürüm derlemelerinizi bozar.
Düzenleyici
Düzen Düzenleyici, aşağıdakiler de dahil olmak üzere çeşitli iyileştirmelerle güncellendi:
- Yeni araç çubuğu düzeni ve simgeleri.
- Bileşen ağacında güncellenen düzen.
- Sürükle ve bırak görünüm ekleme işlemi iyileştirildi.
- Düzenleyicinin altında, düzeltme önerileri (varsa) içeren tüm sorunları gösteren yeni hata paneli.
- Aşağıdakiler dahil olmak üzere
ConstraintLayout
ile geliştirme yapmak için çeşitli kullanıcı arayüzü iyileştirmeleri:- Engel oluşturmak için yeni destek.
- Grup oluşturma için yeni destek: Araç çubuğunda Kurallar > Grup Ekle'yi seçin (ConstraintLayout 1.1.0 beta 2 veya daha yeni sürümler gerekir)
- Zincir oluşturmak için yeni kullanıcı arayüzü: Birden fazla görünüm seçin, ardından sağ tıklayıp Zincir'i seçin.
Layout Inspector
Düzen Denetleyici, mülkleri ortak kategorilere gruplandırma ve hem Görünüm Ağacı hem de Özellikler bölmelerinde yeni arama işlevi dahil olmak üzere uygulama düzenlerinizdeki sorunları daha kolay ayıklayabilmeniz için geliştirmeler içerir.
APK Analyzer
Artık APK Analizörü'nü apkanalyzer
aracıyla birlikte komut satırından kullanabilirsiniz.
APK Analizcisi de aşağıdaki iyileştirmelerle güncellendi:
- ProGuard ile derlenen APK'lar için DEX görüntüleyiciye aşağıdakiler gibi özellikler ekleyen ProGuard eşleme dosyaları yükleyebilirsiniz:
- Kod küçültülürken düğümlerin kaldırılmaması gerektiğini belirtmek için kalın düğümler.
- Küçültme işlemi sırasında kaldırılan düğümleri gösteren bir düğme.
- Ağaç görünümünde ProGuard tarafından karartılmış düğümlerin orijinal adlarını geri yükleyen bir düğme.
- DEX Görüntüleyici artık her paketin, sınıfın ve yöntemin tahmini boyut etkisini gösteriyor.
- Alanları ve yöntemleri göstermek ve gizlemek için üst kısımdaki yeni filtreleme seçenekleri.
- Ağ görünümünde, DEX dosyasında tanımlanmayan referanslar olan düğümler italik olarak görünür.
Daha fazla bilgi için Derlemenizi APK Analizcisi ile analiz etme başlıklı makaleyi inceleyin.
D8 DEX derleyicisi için önizleme
Android Studio 3.0, D8 adlı isteğe bağlı yeni bir DEX derleyici içerir. D8 derleyicisi, DX derleyicisinin yerini alacak ancak yeni D8 derleyicisini hemen kullanmaya başlayabilirsiniz.
DEX derlemesi, uygulamanızın derleme süresini, .dex
dosya boyutunu ve çalışma zamanındaki performansını doğrudan etkiler. Yeni D8 derleyicisi, mevcut DX derleyicisiyle karşılaştırıldığında aynı veya daha iyi uygulama çalışma zamanı performansına sahipken daha hızlı derleme yapar ve daha küçük .dex
dosyaları oluşturur.
Bu özelliği denemek için projenizin gradle.properties
dosyasında aşağıdakileri ayarlayın:
android.enableD8=true
Daha fazla bilgi için D8 derleyicisiyle ilgili blog yayınını inceleyin.
Google'ın Maven deposu
Android Studio artık Android Destek Kitaplığı, Google Play Hizmetleri, Firebase ve diğer bağımlılıklara ait güncellemeleri almak için Android SDK Yöneticisi'ne güvenmek yerine varsayılan olarak Google'ın Maven deposunu kullanıyor. Bu sayede, özellikle sürekli entegrasyon (CI) sistemi kullanırken kitaplıklarınızı güncel tutmanız kolaylaşır.
Artık tüm yeni projeler varsayılan olarak Google Maven deposunu içeriyor. Mevcut projenizi güncellemek için üst düzey build.gradle
dosyasının repositories
bloğuna google()
ekleyin:
allprojects {
repositories {
google()
}
}
Google'ın Maven deposu hakkında daha fazla bilgiyi burada bulabilirsiniz.
Diğer değişiklikler
- Android Studio ile yerel hata ayıklama artık 32 bit Windows'u desteklemiyor. Bu platformu çok az geliştirici kullandığı için diğer platformlara odaklanmayı seçtik. 32 bit Windows kullanıyorsanız ve yerel kodda hata ayıklama yapmayı planlıyorsanız Android Studio 2.3'ü kullanmaya devam etmeniz gerekir.
- Temel IDE, IntelliJ 2017.1.2 sürümüne yükseltildi. Bu sürüm, 2016.3 ve 2017.1 sürümlerindeki Java 8 dil yeniden düzenleme, parametre ipuçları, anlamsal vurgulama, sürüklemeli kesme noktaları, aramada anında sonuçlar ve daha birçok yeni özellik içeriyor.
- Birçok yeni lint denetimi eklendi.
- Ayrıca en son Android Emulator güncellemelerini de inceleyin.
2.3 (Mart 2017)
Android Studio 2.3.0, öncelikle hata düzeltme ve kararlılık sürümüdür ancak bir dizi yeni özellik de içerir.
2.3.3 (Haziran 2017)
Bu, Android O (API düzeyi 26) desteğini eklemek için yapılan küçük bir güncellemedir.
2.3.2 (Nisan 2017)
Bu, Android Studio 2.3'te aşağıdaki değişiklikler için yapılan küçük bir güncellemedir:
- AVD Yöneticisi, sistem resimlerinde Google Play'i desteklemek için güncellendi.
- NDK'nın R14 ve sonraki sürümleri kullanılırken NDK derlemeleri için hata düzeltmeleri.
Android Emülatörü 26.0.3 ile ilgili güncellemeleri de inceleyin.
2.3.1 (Nisan 2017)
Bu, Android Studio 2.3'te bazı fiziksel Android cihazların Anında Çalıştır ile düzgün çalışmadığı sorunu düzelten küçük bir güncellemedir (Sayı 235879'daki sorun bölümüne bakın).
<h3 class="hide-from-toc">
New
</h3>
<div class="video-wrapper-left">
<iframe class="devsite-embedded-youtube-video" data-video-id="VFyKclKBGf0"
data-autohide="1" data-showinfo="0" frameborder="0" allowfullscreen>
</iframe>
</div>
<ul>
<li>Android Studio can now convert PNG, BMP, JPG, and static GIF files to
WebP format. WebP is an image file format from Google that provides lossy
compression (like JPEG) as well as transparency (like PNG) but can provide
better compression than either JPEG or PNG. For more information, see
<a href="/studio/write/convert-webp.html">Convert images to WebP in Android
Studio</a>.
</li>
<li>The new <a href="/studio/write/app-link-indexing.html">App Links
Assistant</a> simplifies the process of adding Android App Links to your app
into a step-by-step wizard. Android App Links are HTTP URLs that bring users
directly to specific content in your Android app.
</li>
<li>The Layout Editor now includes support for two new ConstraintLayout
features:
<ul>
<li>Define a view size based on an aspect ratio.
</li>
<li>Create packed, spread, and weighted linear groups with constraint
chains.
</li>
</ul>
For more information, see <a href=
"/training/constraint-layout/index.html">Build a Responsive UI with
ConstraintLayout</a>.
</li>
<li>The Layout Editor also now lets you create a list of <a href=
"/studio/write/layout-editor.html#edit-properties">favorite attributes</a> so
you don't have to click <b>View all attributes</b> to access the attributes
you use most.
</li>
<li>When adding a material icon using the Vector Import Dialog (<b>File >
New > Vector Asset</b>), you can now filter the list of available icons by
category or by icon name. For more information, see <a href=
"/studio/write/vector-asset-studio.html#materialicon">Adding a material
icon</a>.
</li>
<li>
<a href="/studio/write/annotations.html#accessibility">New and updated
annotations</a>. The new <code>@RestrictTo</code> annotation for methods,
classes, and packages lets you restrict an API. The updated
<code>@VisibleForTesting</code> annotation now has an optional
<code>otherwise</code> argument that lets you designate what the visibility
of a method should be if not for the need to make it visible for testing.
Lint uses the <code>otherwise</code> option to enforce the intended
visibility of the method.
</li>
<li>New <a href="/studio/write/lint.html#snapshot">lint baseline support</a>
allows you to use a snapshot of your project's current set of warnings as a
baseline for future inspection runs so only new issues are reported. The
baseline snapshot lets you start using lint to fail the build for new issues
without having to go back and address all existing issues first.
</li>
<li>New lint checks, including the following:
<ul>
<li>Obsolete <code>SDK_INT</code> Checks: Android Studio removes obsolete
code that checks for SDK versions.
</li>
<li>Object Animator Validation: Lint analyzes your code to make sure that
your <code>ObjectAnimator</code> calls reference valid methods with the
right signatures and checks that those methods are annotated with <code>
@Keep</code> to prevent ProGuard from renaming or removing them during
release builds.
</li>
<li>Unnecessary Item Decorator Copy: Older versions of the
<code>RecyclerView</code> library did not include a divider decorator
class, but one was provided as a sample in the support demos. Recent
versions of the library have a divider decorator class. Lint looks for
the old sample and suggests replacing it with the new one.
</li>
<li>WifiManager Leak: Prior to Android 7.0 (API level 24), initializing
the <code>WifiManager</code> with <code><a href="/reference/android/content/Context.html#getSystemService(java.lang.Class<T>)">Context.getSystemService()</a></code>
can cause a memory leak if the context is not the application context.
Lint looks for these initializations, and if it <em>cannot</em> determine
that the context is the application context, it suggests you use <code><a href="/reference/android/content/Context.html#getApplicationContext()">Context.getApplicationContext()</a></code> to get the proper context for the
initialization.
</li>
<li>Improved Resource Prefix: The existing <code>resourcePrefix</code>
lint check had many limitations. You can now configure your project with
a prefix, such as <code>android { resourcePrefix '<var>my_lib</var>'
}</code>, and lint makes sure that all of your resources are using this
prefix. You can use variations of the name for styles and themes. For
example for the <var>my_lib</var> prefix, you can have themes named
<code>MyLibTheme</code>, <code>myLibAttr</code>,
<code>my_lib_layout</code>, and so on.
</li>
<li>Switch to WebP: This check identifies images in your project that can
be converted to WebP format based on your project’s
<code>minSdkVersion</code> setting. An associated quickfix can
automatically convert the images, or you can <a href=
"/studio/write/convert-webp.html">convert images to WebP</a> manually.
</li>
<li>Unsafe WebP: If your project already includes WebP images, this check
analyzes your project to ensure that your <code>minSdkVersion</code>
setting is high enough to support the included images. For more
information about WebP support in Android and Android Studio, see
<a class="external" href=
"https://developers.google.com/speed/webp/faq#which_web_browsers_natively_support_webp">
Which browsers natively support WebP?</a> and <a href=
"/studio/write/convert-webp.html">Create WebP Images Using Android
Studio</a>.
</li>
</ul>
</li>
</ul>
<h3 class="hide-from-toc">
Changes
</h3>
<ul>
<li>A separate button to push changes with Instant Run: After deploying your
app, you now click <b>Apply Changes</b> <img src=
"/studio/images/buttons/toolbar-apply-changes.svg" alt="" class=
"inline-icon"> to quickly push incremental changes to your running app using
Instant Run. The <b>Run</b> <img src="/studio/images/buttons/toolbar-run.png"
alt="" class="inline-icon"> and <b>Debug</b> <img src=
"/studio/images/buttons/toolbar-debug.png" alt="" class="inline-icon">
buttons are always available to you when you want to reliably push your
changes and force an app restart.
<ul>
<li>Instant Run is supported only when deploying your app to a target
device running Android 5.0 (API level 21) or higher.
</li>
<li>Instant Run is no longer disabled for projects that <a href=
"/studio/projects/add-native-code.html">link to external native
projects</a> using CMake or ndk-build. However, you can only use Instant
Run to push incremental changes to your Java code, not your native code.
</li>
<li>Cold swaps (which you can force for a running app by clicking
<strong>Run</strong> <img src="/studio/images/buttons/toolbar-run.png"
alt="" class="inline-icon">) are now more reliable. Forcing a cold swap
also fixes the issue where changes to notification and widget UIs were
not updated on the target device.
</li>
<li>Includes optimizations that make app startup much faster. These
optimizations may affect profiling, so you should temporarily <a href=
"/studio/run/index.html#disable-ir">disable Instant Run</a> whenever
profiling your app.
</li>
</ul>
</li>
<li>
<p>
The <b>AVD Manager</b> <img src=
"/studio/images/buttons/toolbar-avd-manager.png" alt="" class=
"inline-icon"> and <b>SDK Manager</b> <img src=
"/studio/images/buttons/toolbar-sdk-manager.png" alt="" class=
"inline-icon"> buttons are now included in the lean Navigation Bar as
well as the full Toolbar. To use the lean Navigation Bar, click
<b>View</b> to open the View menu, then ensure that <b>Navigation Bar</b>
is selected and <b>Toolbar</b> is <em>not</em> selected.
</p>
<img src="/studio/images/releases/navigationbar_sdkavd_2x.png" width="757">
</li>
<li>The "Hybrid" debugger has been renamed to "Dual" debugger.
</li>
<li>In the <a href="/studio/run/rundebugconfig.html">Run/Debug
Configurations</a> dialog, under Defaults in the left pane, the following run
configuration names have changed with no behavior changes:
<ul>
<li>The JUnit name has changed to Android JUnit. If you have a project
that uses JUnit run configurations, those configurations are transformed
to Android JUnit run configurations the first time you open the project
with Android Studio. A dialog appears to inform you of the name change.
</li>
<li>The Android Tests name has changed to Android Instrumented Tests.
</li>
</ul>
</li>
<li>The <a href="/studio/debug/am-gpu-debugger.html">GPU Debugger</a> has
been removed from Android Studio as of version 2.3. An open-source,
standalone version of the tool is now available on <a href=
"https://github.com/google/gapid" class="external-link">GitHub</a>.
</li>
<li>The Run/Debug option is no longer available when you right-click a <code>
*.gradle build</code> script.
</li>
<li>All templates now use <code>ConstraintLayout</code> as the default
layout.
</li>
<li>The Widgets palette in the Layout Editor has been redesigned.
</li>
</ul>
<p>
This release also includes a number of bug fixes. <a href=
"https://code.google.com/p/android/issues/list?can=1&q=target%3D2.3+status%3DReleased&colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&cells=tiles">
See all bug fixes in 2.3.0.</a>
</p>
<p class="note">
<b>Known issue:</b> Some device manufacturers block apps from automatically
launching after being installed on the device. When deploying your app to a
physical device using Android Studio 2.3, this restriction breaks the
intended behavior of Instant Run and causes the following error output:
<code>Error: Not found; no service started</code>. To avoid this issue,
either <a href="/studio/run/emulator.html">use the emulator</a> or enable
automatic launching for your app in your device's settings. The procedure
for doing this is different for each device, so check the instructions
provided by the manufacturer. To learn more about this issue, see
<a href="https://code.google.com/p/android/issues/detail?id=235879">Issue
#235879</a>.
</p>
2.2 (Eylül 2016)
2.2.3 (Aralık 2016)
<p>
This is a minor update to Android Studio 2.2. It includes a bug fixes
focused around gradle, the core IDE, and lint.
</p>
<p>
Highlighted build changes:
</p>
<ul>
<li>ProGuard version rollback. Due to a <a href=
"https://sourceforge.net/p/proguard/bugs/625/">correctness issue</a>
discovered in ProGuard 5.3.1, we have rolled back to ProGuard 5.2.1. We
have worked with the ProGuard team on getting a fix quickly, and we expect
to roll forward to ProGuard 5.3.2 in Android Studio 2.3 Canary 3.
</li>
<li>Bug fix for <code>aaptOptions</code> <code>IgnoreAssetsPattern</code>
not working properly (<a href="http://b.android.com/224167">issue
224167</a>)
</li>
<li>Bug fix for Gradle autodownload for Constraint Layout library
(<a href="https://code.google.com/p/android/issues/detail?id=212128">issue
212128</a>)
</li>
<li>Bug fix for a JDK8/Kotlin compiler + dx issue (<a href=
"http://b.android.com/227729">issue 227729</a>)
</li>
</ul>
<p>
<a href=
"https://code.google.com/p/android/issues/list?can=1&q=target%3D2.2.3+status%3AReleased+&colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&cells=tiles">
See all bug fixes in 2.2.3</a>.
</p>
2.2.2 (Ekim 2016)
<p>
This is a minor update to Android Studio 2.2. It includes a number of small
changes and bug fixes, including:
</p>
<ul>
<li>When reporting Instant Run issues through the IDE, the report now also
includes logcat output for <code>InstantRun</code> events. To help us
improve Instant Run, please <a href=
"/studio/run/index.html#submit-feedback">enable extra logging and report
any issues</a>.
</li>
<li>A number of small bug fixes for Gradle.
</li>
<li>A fix for problems with generating multiple APKs.
</li>
</ul>
2.2.1 (Ekim 2016)
<p>
This is a minor update to Android Studio 2.2. It includes several bug fixes
and a new feature to enable extra logging to help us troubleshoot Instant
Run issues—to help us improve Instant Run, please <a href=
"/studio/run/index.html#submit-feedback">enable extra logging and report
any issues</a>.
</p>
Yeni
- ConstraintLayout'ı desteklemek için özel olarak tasarlanmış araçlara sahip yepyeni Düzenleyici.
<li>New <strong><a href=
"http://tools.android.com/tech-docs/layout-inspector">Layout
Inspector</a></strong> lets you examine snapshots of your layout hierarchy
while your app is running on the emulator or a device.
</li>
<li>New <strong><a href="/studio/write/firebase.html">Assistant</a></strong>
window to help you integrate Firebase services into your app.
</li>
<li>New <strong><a href="/studio/debug/apk-analyzer.html">APK
Analyzer</a></strong> tool so you can inspect the contents of your packaged
app.
</li>
<li>New <strong><a href=
"http://tools.android.com/tech-docs/test-recorder">Espresso Test
Recorder</a></strong> tool (currently in beta) to help you create UI tests by
recording your own interactions.
</li>
<li>New <strong><a href=
"http://tools.android.com/tech-docs/build-cache">build cache</a></strong>
(currently experimental) to speed up build performance.
</li>
<li>New <strong>C/C++ build integration with CMake and ndk-build</strong>.
Compile and build new or existing native code into libraries packaged into
your APK, and debug using lldb. For new projects, Android Studio uses CMake
by default, but also supports ndk-build for existing projects. To learn how
to include native code in your Android application, read <a href=
"/studio/projects/add-native-code.html">Add C and C++ Code to Your
Project</a>. To learn how to debug native code with lldb, see <a href=
"/studio/debug/index.html#debug-native">Debug Native Code</a>.
</li>
<li>New <strong><a href="/studio/intro/index.html#sample-code">Samples
Browser</a></strong> so you can easily look up Google Android sample code
from within Android Studio to jump start app development.
</li>
<li>New <strong>Merged Manifest Viewer</strong> to help you diagnose how your
manifest file merges with your app dependencies across project build
variants.
</li>
<li>The <strong>Run</strong> window now contains log messages for the current
running app. Note that you can configure the <a href=
"/studio/debug/am-logcat.html">logcat Monitor</a> display, but not the
<strong>Run</strong> window.
</li>
<li>New <strong><a href="/studio/run/emulator.html">Android
Emulator</a></strong> features:
<ul>
<li>Added new <strong>Virtual</strong> <strong>Sensors</strong> and
<strong>Cellular</strong> > <strong>Signal Strength</strong> controls.
</li>
<li>Added an <strong>LTE</strong> option to the <strong>Cellular</strong>
> <strong>Network type</strong> control.
</li>
<li>Added simulated vertical swipes for scrolling through vertical menus
with a mouse wheel.
</li>
</ul>
</li>
<li>New <strong><a href="/studio/run/rundebugconfig.html">Run/Debug
Configuration</a></strong> features:
<ul>
<li>The <strong>Debugger</strong> tab of the Android App and Android
Tests templates now contain several new options for debugging with LLDB.
</li>
<li>The <strong>Profiling</strong> tab of the Android App and Android
Tests templates now contain a <strong>Capture GPU Commands</strong>
option for enabling GPU tracing. You can display GPU traces in the GPU
Debugger (a beta feature).
</li>
<li>The Android Tests template now has a <strong>Firebase Test Lab Device
Matrix</strong> option for the <strong>Deployment Target</strong>.
</li>
<li>The Native Application template has been deprecated. If you use this
template in a project, Android Studio automatically converts it to the
Android App template.
</li>
<li>The Android Application template has been renamed to Android App.
</li>
</ul>
</li>
<li>Improved installation, configuration, performance, and UI features in the
<strong><a href="/studio/debug/am-gpu-debugger.html">GPU
Debugger</a></strong> (currently in beta).
</li>
<li>Android Studio now comes bundled with <strong>OpenJDK 8</strong>.
Existing projects still use the JDK specified in <strong>File > Project
Structure > SDK Location</strong>. You can switch to use the new bundled
JDK by clicking <strong>File > Project Structure > SDK
Location</strong> and checking the <strong>Use embedded JDK</strong>
checkbox.
</li>
<li>Added new <strong>help menus and buttons</strong> in the UI so you can
more easily find the online documentation.
</li>
Değişiklikler
- IDE kod tabanı IntelliJ 15'ten IntelliJ 2016.1'e güncellendi
- Anında Çalıştırma özelliği artık hedef cihaz API düzeyine karşılık gelen platform SDK'sının yüklenmesini gerektiriyor.
- Kullanıcı uygulamayı bir iş profilinde veya ikincil kullanıcı olarak çalıştırıyorsa Anında Çalıştırma otomatik olarak devre dışı bırakılır.
- Değişikliklerin dağıtılmadığı veya uygulamanın kilitlendiği Anında Çalıştır ile ilgili birçok güvenilirlik sorunu düzeltildi:
- Bazı uygulama öğeleri, çalışan uygulamanıza dağıtılmadı. ( Hata: #213454)
- Kullanıcı, serialVersionUID'nin tanımlanmadığı bir Serializable sınıfının bulunduğu Hazır Çalıştırma ve Hazır Çalıştırma dışı oturumlar arasında geçiş yaptığında uygulama çöker. (Hata: #209006)
- Stil değişiklikleri Anında Çalıştırma'ya yansıtılmaz. (Hata: #210851)
- Anında Çalıştırma oturumu güvenilir değildir ve FileNotFoundException'e neden olur. (Hata: #213083)
- KitKat için tam yeniden oluşturma işlemi gerçekleştirilene kadar çizilebilir öğelerde yapılan değişiklikler yansıtılmaz. (Hata: #21530)
- Özel kaynak kümeleri iç içe yerleştirilmiş yollar içerdiğinde kaynak değişiklikleri Anında Çalıştırma'ya yansıtılmaz. (Hata: #219145)
- Değiştirilen sınıfta enum değeri içeren ek açıklama varsa sıcak ve ılık takas çalışmaz. (Hata: #209047)
- Ek açıklama verilerinde yapılan değişiklikler Anında Çalıştırma'ya yansıtılmaz. (Hata: #210089)
- Anında Çalıştır, IDE dışında değişiklik yaparsanız kod değişikliklerini algılamaz. (Hata: #213205)
- Güvenlik jetonu eşleşmediğinden Anında Çalıştırma oturumu güvenilir değil. (Hata: #211989
- Soğuk değişim, "run-as" özelliğini düzgün şekilde desteklemeyen cihazlarda başarısız olur. (Hata: #210875)
- Anında çalıştırma yeniden başlatıldıktan sonra uygulama kilitleniyor. (Hata: #219744)
- Anında Çalıştır'dan Anında Hata Ayıklama'ya geçiş yapılırken ClassNotFoundException gözlemlendi. (Hata: #215805)
<li>Improved performance for <strong>Gradle sync</strong> within the IDE,
especially for large projects.
</li>
<li>Improved build times for both full and incremental builds with new app
packaging code.
</li>
<li>Improved <strong>Jack compiler performance and features</strong>,
including support for annotation processors and dexing in process. To learn
more, read the <a href=
"/studio/releases/gradle-plugin.html#revisions">Android plugin for Gradle
2.2.0 release notes</a>.
</li>
<li>Removed the <strong>Scale</strong> AVD property from the AVD Manager.
</li>
<li>The Android Emulator <strong>-port</strong> and <strong>-ports</strong>
command-line options now report which ports and serial number the emulator
instance is using, and warn if there are any issues with the values you
provided.
</li>
<li>Improved the <strong><a href=
"/studio/write/create-java-class.html">Create New Class dialog</a></strong>
and the corresponding file templates. <strong>Note:</strong> If you've
previously customized the <strong>AnnotationType</strong>,
<strong>Class</strong>, <strong>Enum</strong>, <strong>Interface</strong>, or
<strong>Singleton</strong> file templates, you need to modify your templates
to comply with the new templates or you won’t be able to use the new fields
in the <strong>Create New Class</strong> dialog.
</li>
<li>Improved the <strong><a href=
"/studio/write/vector-asset-studio.html">Vector Asset Studio</a></strong>
user interface and added support for Adobe Photoshop Document (PSD) files.
</li>
<li>Improved the <strong><a href=
"/studio/write/image-asset-studio.html">Image Asset Studio</a></strong> user
interface.
</li>
<li>Improved the <strong>Theme Editor</strong>'s Resource Picker.
</li>
<li>Fixed memory leaks and reduced overall memory usage in Android Studio.
</li>
<li>Added a <strong>Background</strong> button in the <strong><a href=
"/studio/intro/update.html#sdk-manager">SDK Manager</a></strong> so you can
get back to work and install your packages in the background.
</li>
<li>Improved <strong><a href="/studio/intro/accessibility.html">Accessibility
features</a></strong>, including support for screen readers and keyboard
navigation.
</li>
<li>Enhanced <strong>Code Analysis</strong> includes code quality checks for
Java 8 language usage and more cross-file analysis.
</li>
<li>Several toolbar icons have changed.
</li>
2.1 (Nisan 2016)
Bu güncellemedeki başlıca değişiklikler, Android N önizlemesiyle geliştirme için destek sağlar.
2.1.3 (Ağustos 2016)
Bu güncelleme, performans iyileştirmeleri, yeni özellikler ve önemli bir güvenlik düzeltmesi içeren Gradle 2.14.1 ile uyumluluk ekler. Daha fazla bilgi için Gradle sürüm notlarına göz atın.
Android Studio 2.1.3'teki yeni projeler varsayılan olarak Gradle 2.14.1'i kullanır. Mevcut projeler için IDE, Gradle 2.14.1 ve Gradle 2.1.3 için Android eklentisi'ne geçmenizi ister. Gradle 2.14.1 ve sonraki sürümler kullanıldığında bu eklenti gereklidir.
2.1.2 (Haziran 2016)
Bu güncellemede birkaç küçük değişiklik ve hata düzeltmesi yer alıyor:
- Anında Çalıştır güncellemeleri ve hata düzeltmeleri.
- LLDB performansı ve kilitlenme bildirimleriyle ilgili iyileştirmeler.
- Android Studio 2.1.1 güvenlik güncellemesinde,
git rebase
'ün başarısız olmasına yol açan bir gerileme düzeltildi.
2.1.1 (Mayıs 2016)
Güvenlik sürümü güncellemesi.
Android N platformu, Jack adlı yeni bir deneysel derleyici gerektiren Java 8 dil özellikleri için destek ekler. Jack'in en son sürümü şu anda yalnızca Android Studio 2.1'de desteklenmektedir. Bu nedenle, Java 8 dil özelliklerini kullanmak istiyorsanız uygulamanızı oluşturmak için Android Studio 2.1'i kullanmanız gerekir.
Not: Jack derleyicisini etkinleştirdiğinizde Anında Çalıştır devre dışı bırakılır çünkü şu anda uyumlu değildir.
Android Studio 2.1 artık kararlı olsa da Jack derleyicisi hâlâ deneyseldir ve build.gradle
dosyanızdaki jackOptions
mülkü ile etkinleştirmeniz gerekir.
Android Studio 2.1, N Preview'ı desteklemek için yapılan değişikliklerin yanı sıra küçük hata düzeltmeleri ve aşağıdaki iyileştirmeleri içerir:
- Java'dan haberdar C++ hata ayıklayıcısı artık N cihaz veya emülatör kullanıyorsanız ve Doğal hata ayıklayıcı modunu (çalıştırma/hata ayıklama yapılandırmanızdaki Hata Ayıklama Aracı sekmesinde) seçtiğinizde varsayılan olarak etkinleştirilmektedir.
Artımlı Java derlemesi ve işlem sırasında dexing dahil olmak üzere diğer derleme geliştirmeleri için Gradle için Android eklentinizi 2.1.0 sürümüne güncelleyin.
2.0 (Nisan 2016)
Not: N Geliştirici Önizlemesi için geliştirme yapıyorsanız Android Studio 2.1 Preview'ı kullanmanız gerekir. Android Studio 2.0, N önizlemesini hedeflemek için gereken tüm özellikleri desteklemez.
Anında Çalıştır:
- Android Studio artık temiz derlemeleri her zamankinden daha hızlı dağıtıyor. Ayrıca, artımlı kod değişikliklerini emülatöre veya fiziksel bir cihaza gönderme işlemi artık neredeyse anında gerçekleşiyor. Yeni bir hata ayıklama derlemesini yeniden dağıtmadan veya çoğu durumda uygulamayı yeniden başlatmadan güncellemelerinizi inceleyin.
- Anında Çalıştırma, çalışan bir uygulamaya aşağıdaki değişikliklerin gönderilmesini destekler:
- Mevcut bir örnek yönteminin veya statik yöntemin uygulanmasında yapılan değişiklikler
- Mevcut bir uygulama kaynağında yapılan değişiklikler
- Yapısal kodda yapılan yöntem imzası veya statik alan gibi değişiklikler (API düzeyi 21 veya üzeri çalıştıran bir hedef cihaz gerekir).
- Anında çalıştırma hakkında daha fazla bilgi edinmek için dokümanları okuyun.
Not: Anında Çalıştır yalnızca hata ayıklama derleme varyantını dağıttığınızda, Gradle 2.0.0 sürümü veya sonraki sürümler için Android eklentisini kullandığınızda ve uygulamanızın modül düzeyindeki
build.gradle
dosyasınıminSdkVersion 15
veya sonraki sürümler için yapılandırdığınızda desteklenir. En iyi performans için uygulamanızıminSdkVersion 21
veya daha yeni bir sürüm için yapılandırın.
Lint'e eklenen yeni özellikler:
- Tüm sabitlerin işlendiğinden emin olmak için
@IntDef
ek açıklamalı tam sayılar kullanılarakswitch
beyanlarının incelenmesi. Eksik ifadeleri hızlıca eklemek için intent işlemi açılır menüsünü kullanın ve Eksik @IntDef sabitlerini ekle'yi seçin. build.gradle
dosyasına sürüm numaraları eklemek için dize ekleme işlevini kullanmaya yönelik yanlış denemelerin işaretlerini belirtir.Fragment
sınıfını genişleten anonim sınıflar için işaretler.res/
veasset/
klasörleri gibi güvenli olmayan konumlardaki yerel kod için işaretler. Bu işaret, yerel kodulibs/
klasöründe saklamanızı önerir. Bu kod, yükleme sırasında uygulamanındata/app-lib/
klasörüne güvenli bir şekilde paketlenir. AOSP: #169950Runtime.load()
veSystem.load()
aramalarına yapılan güvenli olmayan aramalar için işaretler. AOSP: #179980- Menü çubuğundan Yeniden Düzenle > Kullanılmayan Kaynakları Kaldır'ı seçerek kullanılmayan kaynakları bulup kaldırın. Kullanılmayan kaynak algılama artık yalnızca kullanılmayan kaynaklar tarafından referans verilen kaynakları, ham dosyalardaki referansları (ör.
.html
resim referansları) ve Gradle kaynak sıkıştırıcısı tarafından kullanılantools:keep
vetools:discard
özelliklerini destekler. Ayrıca etkin olmayan kaynak kümelerini (ör. diğer derleme lezzetlerinde kullanılan kaynaklar) dikkate alır ve statik alan içe aktarma işlemlerini düzgün şekilde yönetir. minSdkVersion
tarafından hedeflenen tüm platformlarda örtülü API referanslarının desteklenip desteklenmediğini kontrol eder.RecyclerView
veParcelable
'un uygunsuz kullanımını işaretler.@IntDef
,@IntRange
ve@Size
denetimleri artıkint
dizileri ve değişken bağımsız değişkenler için de kontrol edilir.
Ek iyileştirmeler:
- Android Emulator 2.0 için optimize edilmiştir. Bu sürüm, her zamankinden daha hızlıdır, daha geniş bir sanal cihaz yelpazesini destekler ve önemli ölçüde iyileştirilmiş bir kullanıcı arayüzüne sahiptir. Yeni emülatör hakkında daha fazla bilgi edinmek için SDK Tools sürüm notlarını okuyun.
- Android Sanal Cihaz Yöneticisi'nde yapılan iyileştirmeler:
- Sistem resimleri artık aşağıdaki sekmelerde kategorize edilir: Önerilen, x86 ve Diğer.
- Gelişmiş ayarlar bölümünde, çok çekirdekli desteği etkinleştirebilir ve emülatörün kullanabileceği çekirdek sayısını belirtebilirsiniz.
- Gelişmiş ayarlar bölümünde, aşağıdaki seçeneklerden birini belirleyerek grafiklerin emülatörde nasıl oluşturulacağını belirleyebilirsiniz:
- Donanım: Daha hızlı oluşturma için bilgisayarınızın grafik kartını kullanın.
- Yazılım: Yazılım tabanlı oluşturma özelliğini kullanın.
- Otomatik: En iyi seçeneğe emülatör karar verir. Bu, varsayılan ayardır.
- Uygulama oluşturulmadan önce dağıtım hedefini belirterek AAPT paketleme süreleri iyileştirildi. Bu sayede Android Studio, yalnızca belirtilen cihazın gerektirdiği kaynakları verimli bir şekilde paketleyebilir.
- Bulut hizmetinin kolaylığı ve ölçeklenebilirliğiyle isteğe bağlı uygulama testi sunmak için Cloud Test Lab entegrasyonu eklendi. Cloud Test Lab'i Android Studio ile nasıl kullanabileceğiniz hakkında daha fazla bilgi edinin.
- Yeni GPU hata ayıklayıcısının önizlemesi eklendi. Grafik yoğun uygulamalarda artık uygulamanızı veya oyununuzu optimize etmek için OpenGL ES kodunuzda görsel olarak adım adım ilerleyebilirsiniz.
- Google Uygulama Dizine Ekleme Testi eklendi. Uygulamanıza daha fazla trafik çekmek, en çok kullanılan uygulama içeriğini keşfetmek ve yeni kullanıcılar çekmek için uygulamalarınıza URL, uygulama dizine ekleme ve arama işlevi desteği ekleyin. Uygulamanızdaki URL'leri Android Studio'da test edip doğrulayabilirsiniz. Android Studio'da URL'leri ve uygulama dizine eklemeyi destekleme başlıklı makaleyi inceleyin.
- Geliştirilmiş kod analizi ve performans da dahil olmak üzere en son IntelliJ 15 sürümünden yükseltmeler. Yeni özelliklerin ve iyileştirmelerin tam açıklamasını IntelliJ'deki Yenilikler başlıklı makalede bulabilirsiniz.
- XML düzenleyici otomatik tamamlama özelliği artık özellikleri tamamlarken tırnak işareti ekliyor. Bu seçeneğin etkin olup olmadığını kontrol etmek için Ayarlar veya Tercihler iletişim kutusunu açın, Düzenleyici > Genel > Akıllı Anahtarlar'a gidin ve Özellik tamamlandığında özellik değeri için tırnak işareti ekle seçeneğinin yanındaki kutuyu işaretleyin. Sayı: 195113
- XML düzenleyici artık veri bağlama ifadelerinde kod tamamlamayı destekliyor.
Android Studio 1.5.1 sürümü (Aralık 2015)
Düzeltmeler ve iyileştirmeler:
- Sayfa düzeni düzenleyicisinde oluşturma hatası sorunu düzeltildi. Sayı: 194612
description
manifest özelliklerini yapılandırmaya göre değiştirme özelliği eklendi. Sayı: 194705- Vector Asset Studio'da Android Studio Darcula görünüm temasının kontrastı iyileştirildi. Sayı: 191819
- Vector Asset Studio'ya Yardım düğmesi desteği eklendi.
- Veri bağlama için
%
operatörü desteği eklendi. Sayı: 194045 - Hata ayıklama amacıyla bir uygulamanın başlatılmasının, hata ayıklayıcının yanlış cihaza bağlanmasına neden olduğu durum düzeltildi. Sayı: 195167
- Belirli senaryolarda bir uygulamayı çalıştırmaya çalışırken ortaya çıkabilecek null işaretçi istisnası düzeltildi.
Android Studio 1.5.0 sürümü (Kasım 2015)
Düzeltmeler ve iyileştirmeler:
- Android Monitor'a yeni Bellek İzleyici analiz özellikleri eklendi. Bu monitörden alınan bir HPROF dosyasını görüntülediğinizde, hafıza sızıntısı gibi sorunları daha hızlı tespit edebilmeniz için ekran artık daha faydalı. Bu monitörü kullanmak için ana pencerenin alt kısmındaki Android Monitör'ü tıklayın. Android İzleyici'de Bellek sekmesini tıklayın. İzleyici çalışırken Java Yığınını Boşalt simgesini, ardından ana pencerede Yakalamalar'ı ve dosyayı görüntülemek için dosyayı çift tıklayın. Sağ taraftaki Analizi Yakalama'yı tıklayın. (Android Cihaz İzleyici, Android İzleyici ile aynı anda çalışamaz.)
- Yeni derin bağlantı ve uygulama bağlantısı desteği eklendi. Kod Düzenleyici,
AndroidManifest.xml
dosyasında derin bağlantı oluşturmak için otomatik olarak bir intent filtresi oluşturabilir. Ayrıca, Java dosyasında bir etkinlikte Uygulama Dizine Ekleme API ile entegrasyon yapmanıza yardımcı olacak kod da oluşturabilir. Derin bağlantı testi özelliği, belirtilen bir derin bağlantının uygulama başlatıp başlatamayacağını doğrulamanıza yardımcı olur. Yapılandırmaları Çalıştır/Hata Ayıkla iletişim kutusunun Genel sekmesinde derin bağlantı başlatma seçeneklerini belirtebilirsiniz. Android İzleyici logcat ekranını kullanarak bir etkinlikte Uygulama Dizine Ekleme API çağrılarını da test edebilirsiniz. Androidlint
aracında artık derin bağlantılar ve Uygulama Dizine Ekleme API'si ile ilgili belirli sorunlarla ilgili uyarılar yer alıyor. - Kod Düzenleyici'de özel görünümleri kodla tamamlarken kısa adlar kullanma özelliği eklendi.
- Geriye dönük uyumluluk için Vector Asset Studio'ya daha fazla
VectorDrawable
öğesi desteği eklendi. Vektör Asset Studio, Android 4.4 (API seviyesi 20) ve önceki sürümlerde kullanılacak vektör çizilebilir öğeleri PNG raster resimlerine dönüştürmek için bu öğeleri kullanabilir. - Android Studio'da hızlı düzeltmelerin yanı sıra anında uygulanabilir geri bildirim sunmak için Android TV ve Android Auto için yeni
lint
kontrolleri eklendi. Örneğin, Android TV'de izinler, desteklenmeyen donanım,uses-feature
öğesi ve eksik banner sorunlarıyla ilgili sorunları bildirebilir ve hızlı bir şekilde düzeltme sağlayabilir. Android Auto içinAndroidManifest.xml
dosyanızdan atıfta bulunulan tanımlayıcı dosyasında doğru kullanımı doğrulayabilir,MediaBrowserService
sınıfı için intent filtresi olup olmadığını bildirebilir ve belirli sesli işlem sorunlarını tanımlayabilir. - Güvenli olmayan yayın alıcıları,
SSLCertificateSocketFactory
veHostnameVerifier
sınıfı kullanımları veFile.setReadable()
ileFile.setWritable()
çağrıları için yenilint
kontrolleri eklendi. Ayrıca, özellikle yapılandırmaya göre değişen kaynaklar için geçersiz manifest kaynak aramalarını da tespit eder. - Çeşitli kararlılık sorunları düzeltildi.
Android Studio 1.4.1 sürümü (Ekim 2015)
Düzeltmeler ve iyileştirmeler:
- IDE yeniden başlatılırken aşırı Gradle senkronizasyonuna neden olabilecek bir Gradle modeli önbelleğe alma sorunu düzeltildi.
- Yerel hata ayıklama kilitlenme sorunu düzeltildi.
- Subversion 1.9 sürüm kontrol sistemini kullanan kullanıcıların engellenmesine neden olan sorun düzeltildi.
- Yetkisiz bir cihazı bağladıktan sonra emülatör seçememenize neden olan Cihaz Seçici iletişim kutusu sorunu düzeltildi. Sayı: 189658
- Bölge belirteci ve bölgede çeviri (ancak temel yerel ayarda değil) olan yerel ayarlar için hatalı çeviri hatası raporlaması düzeltildi. Sayı: 188577
- Tema Düzenleyici'de, Düzen Düzenleyici ile etkileşimi nedeniyle kilitlenme sorunu düzeltildi. Sayı: 188070
- Özelliklerin düzgün şekilde güncellenmemesine neden olan Tema Düzenleyici'nin yeniden yükleme ve düzenleme çakışması düzeltildi. Sayı: 187726
- Tema Düzenleyici performansı iyileştirildi.
- Manifest'te
android:required
özelliğinin yoksayılmasına neden olan sorun düzeltildi. Sayı: 187665
Android Studio 1.4.0 sürümü (Eylül 2015)
Düzeltmeler ve iyileştirmeler:
- Materyal simgeleri ve SVG dosyaları gibi vektör grafiklerini içe aktarmak için Vector Asset Studio aracı eklendi. Bu aracı kullanmak için Proje penceresinin Android görünümünde res klasörünü sağ tıklayın ve Yeni > Vektör Öğesi'ni seçin.
- Yeni Android Monitor işlevleri (GPU ve Ağ) eklendi. Bu monitörleri kullanmak için ana pencerenin alt kısmındaki Android Monitör'ü tıklayın. Android Cihaz İzleyici, Android İzleyici ile aynı anda çalışamaz.
- Yeni Tema Düzenleyici'nin erken bir önizlemesi eklendi. Bu özelliği kullanmak için Araçlar > Android > Tema Düzenleyici'yi seçin.
- Tasarım Destek Kitaplığı'nın Android şablonları güncellendi. Şablonlar artık Material Design spesifikasyonunu ve geriye dönük uyumluluk için
appcompat
Destek Kitaplığı'nı destekliyor.
Android Studio 1.3.2 sürümü (Ağustos 2015)
Düzeltmeler ve iyileştirmeler:
- Yeni simgeler ve yeni ekran yoğunluklarına sahip cihazlar oluşturmak için AVD Yöneticisi desteği de dahil olmak üzere Android 6.0 (API düzeyi 23) desteği eklendi.
- Güncelleme kontrolleri sırasında ortaya çıkan bir istisna düzeltildi. Sayı: 183068
- Çözülmemiş görünüm koordinatlarının, düzen düzenleyicisinin kilitlenmesine neden olabileceği sorun düzeltildi. Sayı: 178690
- Geçersiz kaynak türü uyarılarıyla ilgili sorun düzeltildi. Sayı: 182433
- Kaynakları yanlışlıkla gizli olarak işaretleyen lint denetimi düzeltildi. Sayı: 183120
Android Studio 1.3.1 sürümü (Ağustos 2015)
Düzeltmeler ve iyileştirmeler:
- Windows'da Android Wear Android sanal cihazı (AVD) oluşturma desteği düzeltildi.
- Proje Sihirbazı, girilen proje adını kullanacak şekilde güncellendi.
- Android SDK'sının salt okunur bir dizinde depolanmasına izin veren destek eklendi.
- Gradle için Android eklentisi 1.3.0 sürümüne güncellendi.
- Android Debug Bridge (adb) Unix kabuğundan hata ayıklama oturumu başlatmayla ilgili sorunlar düzeltildi.
- Java paketinin yeniden adlandırılmasıyla ilgili mesaj, doğru paket adını gösterecek şekilde düzeltildi.
Android Studio 1.3.0 sürümü (Temmuz 2015)
Düzeltmeler ve iyileştirmeler:
- Google AdMob ve Analytics gibi geliştirici hizmetlerini uygulamanızda Android Studio'dan etkinleştirmek için seçenekler eklendi.
@RequiresPermission
,@CheckResults
ve@MainThread
gibi ek notlar eklendi.- Bellek İzleyici'den Java yığın dökümleri oluşturma ve iş parçacığı tahsislerini analiz etme özelliği eklendi. Android'e özgü HPROF ikili biçimindeki dosyaları Android Studio'dan standart HPROF biçimine de dönüştürebilirsiniz.
- Paket ve araçlara erişimi basitleştirmek ve güncelleme bildirimleri sağlamak için SDK Yöneticisi'ni Android Studio'ya entegre ettik.
Not: Bağımsız SDK Yöneticisi, komut satırından kullanılmaya devam etmektedir ancak yalnızca bağımsız SDK yüklemelerinde kullanılması önerilir.
- Parmak izi kimlik doğrulamasını simüle etmek için emülatör konsoluna
finger
komutu eklendi. - Kitaplık kaynaklarını herkese açık ve özel kaynaklar olarak tanımlamak için bir
<public>
kaynak beyanı eklendi.Not: Gradle için Android eklentisinin 1.3 veya sonraki bir sürümünü gerektirir.
- Uygulama mantığınızı düzen öğelerine bağlayan açıklayıcı düzenler oluşturmak için veri bağlama desteği eklendi.
- Android Studio'da test APK'ları oluşturmak için ayrı bir test APK modülü desteği eklendi.
- AVD Yöneticisi'ni HAXM optimizasyonları ve geliştirilmiş bildirimlerle güncelledik.
- QEMU 2.1 için 64 bit ARM ve MIPS emülatör desteği eklendi.
- Parcelable uygulamasını otomatik olarak oluşturma gibi hızlı düzeltmeler ekleyerek lint uyarılarının çözümünü basitleştirdik.
- Kod snippet'lerinin hızlı bir şekilde eklenmesi için canlı şablon desteği eklendi.
Android Studio 1.2.2 sürümü(Haziran 2015)
Düzeltmeler ve iyileştirmeler:
- Derlemelerin tamamlanmasını engelleyen derleme sorunları düzeltildi.
Android Studio 1.2.1 sürümü (Mayıs 2015)
Düzeltmeler ve iyileştirmeler:
- Küçük performans ve özellik sorunları düzeltildi.
Android Studio 1.2.0 sürümü (Nisan 2015)
Düzeltmeler ve iyileştirmeler:
- Android çalışma zamanı penceresini Bellek İzleyici aracını içerecek şekilde güncelledik ve CPU performansı izleme için bir sekme ekledik.
- CPU yöntemi izleme ve bellek yığını anlık görüntüleri gibi yakalanan bellek ve CPU performansı veri dosyalarını görüntülemek için sol kenar boşluğuna bir Yakalamalar sekmesi eklendi.
- Ek meta veri ek açıklamaları ve varsayılan boşluk desteğiyle genişletilmiş ek açıklama desteği.
- Çeviri Düzenleyici'ye, 3 harfli dil ve bölge kodlarının kullanıldığı Mevcut En İyi Uygulama (BCP) 47 için ek destek eklendi.
- Daha iyi kod analizi ve performans için entegre IntelliJ 14 ve 14.1 özellikleri:
-
- Değişkenler ve referans veren nesneler için satır içi değerleri göstermenin yanı sıra lambda ve operatör ifadelerinde satır içi değerlendirme yapmak üzere gelişmiş hata ayıklama.
- Sekme ve girinti boyutları için kod stili algılama özelliği eklendi.
- Proje dosyaları olmadan kod denemeleri ve prototip oluşturma için scratch dosyaları eklendi.
- HTML ve XML dosyalarına açılış ve kapanış etiketlerinin aynı anda eklenmesi özelliği eklendi.
- Kaynak kodu bulunmayan bir kitaplığın içeriğini görebilmeniz için yerleşik bir Java sınıfı derleyicisi eklendi.
Yeni özelliklerin ve iyileştirmelerin tam açıklamasını IntelliJ'deki Yenilikler bölümünde bulabilirsiniz.
- Proje yönetimini ve erişimi iyileştirmek için Çizikler, Proje Dosyaları, Sorunlar, Üretim ve Testler için ek Proje Görünümleri eklendi.
- Ayarlar erişimi ve yönetimini iyileştirmek için Dosya > Ayarlar menüsü ve iletişim kutuları geliştirildi.
- Windows ve Linux için yüksek yoğunluklu ekranlar için destek eklendi.
res/drawable-280dpi/
klasöründe 280 dpi kaynaklar için destek eklendi.
Android Studio 1.1.0 sürümü (Şubat 2015)
Çeşitli düzeltmeler ve iyileştirmeler:
- Android Wear kol saati şablonu için destek eklendi.
- Yoğunluğa özel başlatıcı simgeleri için
res/mipmap
klasörleri içerecek şekilde yeni proje ve modül oluşturma işlemi değiştirildi. Bures/mipmap
klasörleri, başlatıcı simgeleri içinres/drawable
klasörlerinin yerini alır. - Başlatıcı simgelerini Materyal Tasarım tarzında güncelledik ve
xxxhdpi
başlatıcı simgesi ekledik. - Bölge ve dil kombinasyonları, başlatıcı simgeleri, kaynak adları ve diğer yaygın kod sorunları için lint kontrolleri eklendi ve geliştirildi.
- Mevcut En İyi Uygulama (BCP) dil etiketi 47 için destek eklendi.
Android Studio 1.0.1 sürümü (Aralık 2014)
Çeşitli düzeltmeler ve iyileştirmeler:
- AVD Yöneticisi ve device.xml dosya kilidi sorunu düzeltildi.
- Windows sistemlerindeki emülatör günlüğü düzeltildi.
- Windows sistemlerinde Android Studio ve Android SDK'nın farklı sürücülere yüklenmesi durumunda AVD oluşturmayla ilgili sorun düzeltildi.
- Yeni indirmeler için varsayılan güncelleme kanalını Kararlı olarak ayarlar. Android Studio'nun 1.0.0 sürümünü yüklediyseniz ve kararlı, üretime hazır sürüm güncellemeleri almak istiyorsanız Sabit güncelleme kanalına geçmek için Dosya > Ayarlar > Güncellemeler'i kullanın.
Android Studio 1.0 sürümü (Aralık 2014)
Android Studio'nun ilk sürümü.
Android Studio 0.8.14 sürümü (Ekim 2014)
Değişikliklerin tam listesini tools.android.com adresinde bulabilirsiniz.
Android Studio 0.8.6 sürümü (Ağustos 2014)
Değişikliklerin tam listesi için tools.android.com adresine bakın.
Android Studio 0.8.0 sürümü (Haziran 2014)
Android Wear projeleri için destek eklendi.
Değişikliklerin tam listesi için tools.android.com adresine bakın.
Android Studio 0.5.2 sürümü (Mayıs 2014)
- Değişikliklerin tam listesi için tools.android.com adresine bakın.
Android Studio 0.4.6 sürümü (Mart 2014)
- Değişikliklerin tam listesi için tools.android.com adresine bakın.
Android Studio 0.4.2 sürümü (Ocak 2014)
- Değişikliklerin tam listesi için tools.android.com adresine bakın.
Android Studio 0.3.2 sürümü (Ekim 2013)
- Değişikliklerin tam listesi için tools.android.com adresine bakın.
Android Studio 0.2.x sürümü (Temmuz 2013)
- En son IntelliJ kod tabanı değişiklikleri ile birleştirildi. Studio kullanıcıları tarafından bildirilen sorunlara yönelik düzeltmeler (ör. Linux yazı tipi boyutlarında ve yazı tipi oluşturmada yapılan düzenlemeler) içerir.
- Android Gradle eklentisi 0.5.0 sürümüne güncellendi.
Dikkat: Bu yeni sürüm önceki sürümlerle uyumlu değildir. Eklentinin eski bir sürümünü kullanan bir proje açıldığında Studio, Gradle <project_name> projesi yenilenirken hata oluştu ifadesini içeren bir hata gösterir.
Güncellenen Gradle eklentisinde aşağıdaki değişiklikler yapılmıştır:
- IDE modeli, DSL aracılığıyla özelleştirilmiş olsa bile çıkış dosyasını içerecek şekilde düzeltildi. Ayrıca, DSL'yi, varyant nesnesinde çıkış dosyasını almak/ayarlamak için düzelttik. Böylece
variant.packageApplication or variant.zipAlign
kullanmanız gerekmeyecek. - (Varsayılan yapılandırma, derleme türleri, lezzetler) kombinasyonunu ayrı ayrı değil, birlikte çözecek şekilde bağımlılık çözümü düzeltildi.
- Kitaplık projesinin testleri için kitaplığın tüm bağımlılıkları düzgün şekilde dahil edilecek şekilde bağımlılığı düzeltildi.
- İki bağımlılığın aynı alt öğe adına sahip olduğu durum düzeltildi.
- Proguard kuralları dosyasının, tatlara uygulanamaması sorunu düzeltildi.
Tüm Gradle eklentisi sürüm notlarına http://tools.android.com/tech-docs/new-build-system adresinden ulaşabilirsiniz.
- IDE modeli, DSL aracılığıyla özelleştirilmiş olsa bile çıkış dosyasını içerecek şekilde düzeltildi. Ayrıca, DSL'yi, varyant nesnesinde çıkış dosyasını almak/ayarlamak için düzelttik. Böylece
- aapt'ten gelen Gradle hataları artık build/ klasöründeki birleştirilmiş çıkış dosyalarını değil, gerçek kaynak konumlarını gösteriyor.
- Paralel Derlemeler. Artık Gradle'in paralel derlemelerini kullanabilirsiniz. Paralel derlemelerin "geliştirme aşamasında" olduğunu lütfen unutmayın (Gradle belgelerine bakın). Bu özellik, varsayılan olarak devre dışıdır. Bu özelliği etkinleştirmek için Tercihler > Derleyici'ye gidin ve Bağımsız modülleri paralel olarak derle kutusunu işaretleyin.
- Düzen oluşturma, düzenleyicide kaynak katlama ve daha fazlası için kullanılan yeni kaynak deposu üzerinde daha fazla çalışma:
- .aar kitaplık bağımlılıkları için temel destek (ör. kaynakların yerel kopyası olmadan kitaplık kullanma). Kaynak düzenleyicilerde kaynak XML doğrulaması ve gezinme için hâlâ çalışmıyor.
- Kaynak referanslarında döngü algılama.
- İşaretçinin altındaki dizenin tüm çevirilerini gösterebilen Hızlı Dokümanlar (F1), artık çeşitli Gradle türleri ve derleme türlerinin yanı sıra kitaplıklardaki tüm kaynak yer paylaşımlarını da gösterecek. Bunlar, ters kaynak yer paylaşımı sırasına göre listelenir ve maskede olan dize sürümlerinde üstü çizilir.
- Modül bağımlılıkları grubu değiştiğinde birleştirilen kaynakların güncellenmesini ele alan düzeltmeler.
- Karakter öğesi bildirimlerini, XML ve Unicode kod dışına alma işlemlerini düzgün şekilde işlemek için XML oluşturma düzeltmeleri.
- Düzen önizleme ve düzen düzenleyici pencereleri için ekran görüntüsü kaydetme desteği.
- Şablon hata düzeltmeleri.
- Lint hata düzeltmeleri.
- Kilitlenme raporlarıyla ilgili çeşitli düzeltmeler. Teşekkür ederiz. Kilitlenme raporları göndermeye devam edin.
Android Studio 0.1.x sürümü (Mayıs 2013)
- Sık karşılaşılan bir Windows yükleme sorunuyla ilgili düzeltme de dahil olmak üzere çeşitli hata düzeltmeleri.
Android Gradle eklentisinin eski sürümleri
3.6.0 (Şubat 2020)
Android eklentisinin bu sürümü için aşağıdakiler gereklidir:
-
Gradle 5.6.4. Daha fazla bilgi edinmek için Gradle'i güncelleme ile ilgili bölümü okuyun.
-
SDK Build Tools 28.0.3 veya daha yeni bir sürüm.
Bu küçük güncelleme, Android 11'de paket görünürlüğü ile ilgili yeni varsayılan ayar ve özelliklerle uyumluluğu destekler.
Ayrıntılar için 4.0.1 sürüm notlarına bakın.
Yeni özellikler
Android Gradle eklentisinin bu sürümü aşağıdaki yeni özellikleri içerir.
Bağlamayı görüntüleme
Görünüm bağlama, kodunuzda görünümlere referans verirken derleme zamanında güvenlik sağlar. Artık findViewById()
değerini otomatik olarak oluşturulan bağlama sınıfı referansıyla değiştirebilirsiniz. Görünüm bağlamayı kullanmaya başlamak için
her modülün build.gradle
dosyasına aşağıdakileri ekleyin:
android { viewBinding.enabled = true }
android { viewBinding.enabled = true }
Daha fazla bilgi edinmek için Görüntü Bağlama Belgesi'ni okuyun.
Maven Yayınlama eklentisi desteği
Android Gradle eklentisi, derleme yapılarını Apache Maven deposunda yayınlamanıza olanak tanıyan Maven Yayınlama Gradle eklentisi için destek içerir. Android Gradle eklentisi, uygulamanızdaki veya kitaplık modülünüzde her bir derleme varyantı yapısını özelleştirmek için kullanabileceğiniz bir bileşen oluşturur. Yayın bir Maven deposunda özelleştirilebilir.
Daha fazla bilgi edinmek için Maven Yayınlama eklentisini kullanma ile ilgili sayfaya gidin.
Yeni varsayılan paketleme aracı
Eklenti, uygulamanızın hata ayıklama sürümünü oluştururken APK'nızı oluşturmak için zipflinger adlı yeni bir paketleme aracı kullanır. Bu yeni araç, derleme hızında iyileştirmeler sağlayacaktır. Yeni paketleme aracı beklediğiniz gibi çalışmıyorsa lütfen hata bildirin. gradle.properties
dosyanıza aşağıdakileri ekleyerek eski ambalajlama aracını kullanmaya geri dönebilirsiniz:
android.useNewApkCreator=false
Yerel derleme ilişkilendirmesi
Artık Clang'ın projenizdeki her C/C++ dosyasını derleyip bağlamasının ne kadar süreceğini belirleyebilirsiniz. Gradle, projenizi derlemek için gereken süreyi daha iyi anlayabilmeniz amacıyla bu derleyici etkinliklerinin zaman damgalarını içeren bir Chrome izleme çıkışı oluşturabilir. Bu derleme ilişkilendirme dosyasını oluşturmak için aşağıdakileri yapın:
-
Gradle derlemesi çalıştırırken
-Pandroid.enableProfileJson=true
işaretini ekleyin. Örnek:gradlew assembleDebug -Pandroid.enableProfileJson=true
-
Chrome tarayıcıyı açın ve arama çubuğuna
chrome://tracing
yazın. -
Yükle düğmesini tıklayın ve dosyayı bulmak için
<var>project-root</var>/build/android-profile
bölümüne gidin. Dosyanın adıprofile-<var>timestamp</var>.json.gz
.
Yerel derleme ilişkilendirme verilerini görüntüleyicinin üst kısmında görebilirsiniz:
Davranışta yapılan değişiklikler
Eklentinin bu sürümünü kullanırken davranışta aşağıdaki değişikliklerle karşılaşabilirsiniz.
Varsayılan olarak sıkıştırılmamış şekilde paketlenmiş yerel kitaplıklar
Uygulamanızı derlediğinizde eklenti artık extractNativeLibs
değerini varsayılan olarak "false"
olarak ayarlıyor. Yani yerel kitaplıklarınız sayfaya hizalanır ve sıkıştırılmadan paketlenir. Bu, yükleme boyutunun artmasına neden olsa da kullanıcılarınız aşağıdakilerden yararlanır:
- Platform, kitaplıkların kopyasını oluşturmadan doğrudan yüklü APK'dan yerel kitaplıklara erişebildiği için daha küçük uygulama yükleme boyutu
- APK'nıza veya Android App Bundle'ınıza sıkıştırılmamış yerel kitaplıklar eklediğinizde Play Store sıkıştırması genellikle daha iyi olduğundan daha küçük indirme boyutu
Android Gradle eklentisinin sıkıştırılmış yerel kitaplıkları paketlemesini istiyorsanız uygulamanızın manifest dosyasına aşağıdakileri ekleyin:
<application
android:extractNativeLibs="true"
... >
</application>
Not: extractNativeLibs
manifest özelliğinin yerini useLegacyPackaging
DSL seçeneği aldı. Daha fazla bilgi için Sıkıştırılmış yerel kitaplıkları paketlemek için DSL'yi kullanma başlıklı sürüm notuna bakın.
Varsayılan NDK sürümü
NDK'nın birden fazla sürümünü indirirseniz Android Gradle eklentisi artık kaynak kod dosyalarınızı derlemede kullanılacak varsayılan bir sürüm seçer.
Daha önce, eklenti NDK'nın en son indirilen sürümünü seçiyordu.
Eklenti tarafından seçilen varsayılan değeri geçersiz kılmak için modülün build.gradle
dosyasında android.ndkVersion
mülkünü kullanın.
Basitleştirilmiş R sınıfı oluşturma
Android Gradle eklentisi, projenizdeki her kitaplık modülü için yalnızca bir R sınıfı oluşturarak ve bu R sınıflarını diğer modül bağımlılıklarıyla paylaşarak derleme sınıf yolunu basitleştirir. Bu optimizasyon, daha hızlı derlemelere yol açsa da aşağıdakileri göz önünde bulundurmanız gerekir:
- Derleyici, R sınıflarını yayın öncesi modül bağımlılıklarıyla paylaştığı için projenizdeki her modülün benzersiz bir paket adı kullanması önemlidir.
- Bir kitaplığın R sınıfının diğer proje bağımlılıklarına görünürlüğü, kitaplığı bağımlılık olarak dahil etmek için kullanılan yapılandırmayla belirlenir. Örneğin, A Kitaplığı, B Kitaplığı'nı "api" bağımlılık olarak içeriyorsa A Kitaplığı ve A Kitaplığı'na bağlı diğer kitaplıklar, B Kitaplığı'nın R sınıfına erişebilir. Ancak diğer kitaplıklar, B Kitaplığı'nın R sınıfına erişemeyebilir. A kitaplığı
implementation
bağımlılık yapılandırmasını kullanıyorsa. Daha fazla bilgi edinmek için bağımlılık yapılandırmaları hakkındaki makaleyi okuyun.
Varsayılan yapılandırmada bulunmayan kaynakları kaldırma
Kitaplık modülleri için varsayılan kaynak grubuna dahil etmediğiniz bir dile ait bir kaynak eklerseniz (örneğin, /values-es/strings.xml
'te dize kaynağı olarak hello_world
eklerseniz ancak bu kaynağı /values/strings.xml
'de tanımlamazsanız) Android Gradle eklentisi artık projenizi derlediğinde bu kaynağı dahil etmez. Bu davranış değişikliği, Resource Not Found
çalışma zamanındaki istisnaların azalmasına ve derleme hızının artmasına neden olacaktır.
D8 artık ek açıklamalar için CLASS saklama politikasına uyuyor
D8 artık uygulamanızı derlediğinde ek açıklamaların bir CLASS saklama politikası uyguladığı durumlara dikkat ediyor ve bu ek açıklamalar artık çalışma zamanında kullanılamıyor. Bu davranış, uygulamanın hedef SDK'sı API düzeyi 23 olarak ayarlandığında da ortaya çıkar. Daha önce, uygulamanızı Android Gradle eklentisinin ve D8'in eski sürümlerini kullanarak derlediğinizde çalışma zamanında bu ek açıklamalara erişilmesine izin verilirdi.
Diğer davranış değişiklikleri
-
aaptOptions.noCompress
artık tüm platformlarda (hem APK hem de paketler için) büyük/küçük harf duyarlı değildir ve büyük harf karakterleri kullanan yollara saygı gösterir. -
Veri bağlama özelliği artık varsayılan olarak artımlıdır. Daha fazla bilgi edinmek için 110061530 numaralı soruna bakın.
-
Roboelectric birim testleri dahil tüm birim testleri artık tamamen önbelleğe alınabilir. Daha fazla bilgi için 115873047 numaralı soruna bakın.
Hata düzeltmeleri
Android Gradle eklentisinin bu sürümü aşağıdaki hata düzeltmelerini içerir:
- Robolectric birim testleri artık veri bağlamayı kullanan kitaplık modüllerinde desteklenmektedir. Daha fazla bilgi için 126775542 numaralı soruna bakın.
- Artık Gradle'ın paralel yürütme modu etkinken birden fazla modülde
connectedAndroidTest
görevleri çalıştırabilirsiniz.
Bilinen sorunlar
Bu bölümde, Android Gradle eklentisi 3.6.0'da bulunan bilinen sorunlar açıklanmaktadır.
Android Lint görevinin yavaş performansı
Ayrıştırma altyapısındaki bir gerileme nedeniyle bazı projelerde Android Lint'in tamamlanması çok daha uzun sürebilir. Bu durum, belirli kod yapılarındaki lambdalar için türlerin çıkarılması işleminin daha yavaş yapılmasına neden olur.
Sorun, IDEA'daki bir hata olarak bildirilmiştir ve Android Gradle eklentisi 4.0'ta düzeltilecektir.
Eksik Manifest sınıfı {:#agp-missing-manifest}
Uygulamanız manifest dosyasında özel izinler tanımladıysa Android Gradle eklentisi genellikle özel izinlerinizi dize sabitleri olarak içeren bir Manifest.java
sınıfı oluşturur. Bu sınıf, eklenti tarafından uygulamanızla birlikte paketlenir. Böylece, çalışma zamanında bu izinlere daha kolay referans verebilirsiniz.
Android Gradle eklentisi 3.6.0'da manifest sınıfı oluşturma işlemi bozuktur.
Uygulamanızı bu eklentinin sürümüyle oluşturursanız ve uygulama manifest sınıfına referans verirse ClassNotFoundException
istisna görebilirsiniz. Bu sorunu çözmek için aşağıdakilerden birini yapın:
-
Özel izinlerinize tam nitelikli adlarıyla referans verin. Örneğin,
"com.example.myapp.permission.DEADLY_ACTIVITY"
. -
Aşağıda gösterildiği gibi kendi sabitlerinizi tanımlayın:
public final class CustomPermissions { public static final class permission { public static final String DEADLY_ACTIVITY="com.example.myapp.permission.DEADLY_ACTIVITY"; } }
3.5.0 (Ağustos 2019)
Android Gradle eklentisi 3.5.0, Android Studio 3.5 ile birlikte önemli bir sürümdür ve Android geliştirici araçlarının üç ana alanını iyileştirmeye odaklanan Project Marble'ın bir sonucudur: sistem sağlığı, özelliklerin daha iyi hale getirilmesi ve hataları düzeltme. Bu güncellemede, proje derleme hızını artırma konusuna özellikle odaklanıldı.
Bu ve diğer Project Marble güncellemeleri hakkında bilgi edinmek için Android Developers blog yayınını veya aşağıdaki bölümleri okuyun.
Android eklentisinin bu sürümü için aşağıdakiler gereklidir:
-
Gradle 5.4.1. Daha fazla bilgi edinmek için Gradle'i güncelleme ile ilgili bölümü okuyun.
-
SDK Build Tools 28.0.3 veya daha yeni bir sürüm.
Bu küçük güncelleme, Android 11'de paket görünürlüğü ile ilgili yeni varsayılan ayar ve özelliklerle uyumluluğu destekler.
Ayrıntılar için 4.0.1 sürüm notlarına bakın.
3.5.3 (Aralık 2019)
Bu küçük güncelleme, Android Studio 3.5.3'ü destekler ve çeşitli hata düzeltmeleri ile performans iyileştirmeleri içerir.
3.5.2 (Kasım 2019)
Bu küçük güncelleme, Android Studio 3.5.2'yi destekler ve çeşitli hata düzeltmeleri ile performans iyileştirmeleri içerir. Dikkat çeken hata düzeltmelerinin listesini görmek için Sürüm Güncellemeleri blogundaki ilgili yayını okuyun.
3.5.1 (Ekim 2019)
Bu küçük güncelleme, Android Studio 3.5.1'i destekler ve çeşitli hata düzeltmeleri ile performans iyileştirmeleri içerir. Dikkat çeken hata düzeltmelerinin listesini görmek için Sürüm Güncellemeleri blogundaki ilgili yayını okuyun.
Artımlı ek açıklama işleme
gradle.properties
dosyanızda android.databinding.incremental=true
değerini belirlerseniz Veri Bağlama ek açıklama işleyicisi artımlı ek açıklama işlemeyi destekler. Bu optimizasyon, artımlı derleme performansının iyileştirilmesine yol açar. Optimize edilmiş ek açıklama işleyicilerinin tam listesi için artan ek açıklama işleyicileri tablosuna bakın.
Ayrıca KAPT 1.3.30 ve sonraki sürümler, artımlı ek açıklama işleyicileri de destekler. Bu işleyicileri gradle.properties
dosyanıza kapt.incremental.apt=true
ekleyerek etkinleştirebilirsiniz.
Önbelleğe alınabilen birim testleri
includeAndroidResources
değerini true
olarak ayarlayarak birim testlerinin Android kaynaklarını, öğelerini ve manifest dosyalarını kullanmasını etkinleştirdiğinizde Android Gradle eklentisi, mutlak yollar içeren bir test yapılandırma dosyası oluşturur. Bu da önbelleğin taşınabilirliğini bozar. gradle.properties
dosyanıza aşağıdakileri ekleyerek, eklentiye test yapılandırmasını göreli yollar kullanarak oluşturmasını talimat verebilirsiniz. Bu, AndroidUnitTest
görevinin tamamen önbelleğe alınabilmesini sağlar:
android.testConfig.useRelativePath = true
Bilinen sorunlar
-
Kotlin Gradle eklentisinin 1.3.31 veya önceki bir sürümünü kullanırken projenizi derlerken ya da senkronize ederken aşağıdaki uyarıyı görebilirsiniz:
WARNING: API 'variant.getPackageLibrary()' is obsolete and has been replaced with 'variant.getPackageLibraryProvider()'.
Bu sorunu çözmek için eklentiyi 1.3.40 veya sonraki bir sürüme yükseltin.
3.4.0 (Nisan 2019)
Android eklentisinin bu sürümü için aşağıdakiler gereklidir:
-
Gradle 5.1.1 veya üzeri. Daha fazla bilgi edinmek için Gradle'i güncelleme ile ilgili bölümü okuyun.
Not: Gradle 5.0 ve sonraki sürümler kullanıldığında varsayılan Gradle daemon bellek yığın boyutu 1 GB'dan 512 MB'a düşürülür. Bu durum, derleme performansında gerilemeyle sonuçlanabilir. Bu varsayılan ayarı geçersiz kılmak için projenizin
gradle.properties
dosyasında Gradle daemon yığın boyutunu belirtin. -
SDK Build Tools 28.0.3 veya daha yeni bir sürüm.
Bu küçük güncelleme, Android 11'de paket görünürlüğü ile ilgili yeni varsayılan ayar ve özelliklerle uyumluluğu destekler.
Ayrıntılar için 4.0.1 sürüm notlarına bakın.
3.4.2 (Temmuz 2019)
Bu küçük güncelleme, Android Studio 3.4.2'yi destekler ve çeşitli hata düzeltmeleri ile performans iyileştirmeleri içerir. Dikkat çeken hata düzeltmelerinin listesini görmek için Sürüm Güncellemeleri blogundaki ilgili yayını okuyun.
3.4.1 (Mayıs 2019)
Bu küçük güncelleme, Android Studio 3.4.1'i destekler ve çeşitli hata düzeltmeleri ile performans iyileştirmeleri içerir. Dikkat çeken hata düzeltmelerinin listesini görmek için Sürüm Güncellemeleri blogundaki ilgili yayını okuyun.
Yeni özellikler
-
Yeni lint denetimi bağımlılık yapılandırmaları:
lintChecks
'nin davranışı değişti ve Android kitaplıklarınızda hangi lint denetimlerinin paketleneceği konusunda size daha fazla kontrol sunmak için yeni bir bağımlılık yapılandırması olanlintPublish
kullanıma sunuldu.-
lintChecks
: Bu, yalnızca projenizi yerel olarak derlediğinizde çalıştırmak istediğiniz lint kontrolleri için kullanmanız gereken mevcut bir yapılandırmadır. Daha önce yayınlanan AAR'a lint kontrollerini dahil etmek içinlintChecks
bağımlılık yapılandırmasını kullanıyorsanız bu bağımlılıkları aşağıda açıklanan yenilintPublish
yapılandırmasını kullanmak üzere taşımanız gerekir. -
lintPublish
: Aşağıda gösterildiği gibi, yayınlanan AAR'a dahil etmek istediğiniz lint kontrolleri için kitaplık projelerinde bu yeni yapılandırmayı kullanın. Bu, kitaplığınızı kullanan projelerin de bu lint kontrollerini uyguladığı anlamına gelir.
Aşağıdaki kod örneği, yerel bir Android kitaplık projesinde her iki bağımlılık yapılandırmasını da kullanır.
dependencies { // Executes lint checks from the ':lint' project at build time. lintChecks project(':lint') // Packages lint checks from the ':lintpublish' in the published AAR. lintPublish project(':lintpublish') }
dependencies { // Executes lint checks from the ':lint' project at build time. lintChecks(project(":lint")) // Packages lint checks from the ':lintpublish' in the published AAR. lintPublish(project(":lintpublish")) }
-
Genel olarak paketleme ve imzalama görevleri için genel derleme hızı iyileştirilmesi görülecektir. Bu görevlerle ilgili performansta gerileme fark ederseniz lütfen hata bildirin.
-
Davranışta yapılan değişiklikler
-
Android Hazır Uygulamalar özellik eklentisinin desteğinin sonlandırılması uyarısı: Hazır uygulamanızı derlemek için hâlâ
com.android.feature
eklentisini kullanıyorsanız Android Gradle eklentisi 3.4.0 size desteğin sonlandırılması uyarısı verir. Hazır uygulamanızı eklentinin gelecekteki sürümlerinde de derleyebilmeniz için hazır uygulamanızı dinamik özellik eklentisini kullanarak taşıyın. Bu eklenti, hem yüklü hem de hazır uygulama deneyimlerinizi tek bir Android App Bundle'dan yayınlamanıza da olanak tanır. -
R8 varsayılan olarak etkindir: R8, şeker çıkarma, küçültme, karartma, optimize etme ve dex çıkarma işlemlerini tek bir adımda entegre eder. Bu da derleme performansında belirgin iyileştirmeler sağlar. R8, Android Gradle eklentisi 3.3.0'da kullanıma sunuldu ve artık 3.4.0 ve sonraki sürümlerin kullanıldığı hem uygulama hem de Android kitaplık projeleri için varsayılan olarak etkinleştirildi.
Aşağıdaki resimde, R8'in kullanıma sunulmasından önceki derleme sürecine genel bir bakış sunulmaktadır.
Artık R8 ile şeker çıkarma, küçültme, karartma, optimizasyon ve kod çıkarma (D8) işlemlerinin tümü aşağıda gösterildiği gibi tek bir adımda tamamlanıyor.
R8'in mevcut ProGuard kurallarınızla çalışacak şekilde tasarlandığını unutmayın. Bu nedenle, R8'den yararlanmak için muhtemelen herhangi bir işlem yapmanız gerekmez. Ancak, ProGuard'dan farklı bir teknoloji olduğu ve özellikle Android projeleri için tasarlandığı için küçültme ve optimizasyon, ProGuard'ın kaldıramayabileceği kodların kaldırılmasına neden olabilir. Bu nedenle, bu olasılık düşük bir durumda, bu kodu derleme çıkışınızda tutmak için ek kurallar eklemeniz gerekebilir.
R8'i kullanırken sorun yaşarsanız sorununuzun çözümü olup olmadığını kontrol etmek için R8 uyumluluk SSS bölümünü okuyun. Çözüm dokümanda belirtilmemişse lütfen hata bildirin.
Aşağıdaki satırlardan birini projenizin gradle.properties
dosyasına ekleyerek R8'i devre dışı bırakabilirsiniz:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
Not: Belirli bir derleme türü için uygulama modülünüzün build.gradle
dosyasında useProguard
değerini false
olarak ayarlarsanız Android Gradle eklentisi, projenizin gradle.properties
dosyasında R8'i devre dışı bırakıp bırakmadığınızdan bağımsız olarak uygulamanızın kodunu söz konusu derleme türü için küçültmek üzere R8'i kullanır.
-
ndkCompile
desteği sonlandırıldı: Artık yerel kitaplıklarınızı derlemek içinndkBuild
kullanmaya çalıştığınızda derleme hatası alırsınız. Bunun yerine projenize C ve C++ kodu eklemek için CMake veya ndk-build'i kullanmanız gerekir.
Bilinen sorunlar
-
Benzersiz paket adlarının doğru kullanımı şu anda zorunlu tutulmuyor ancak eklentinin sonraki sürümlerinde daha katı bir şekilde uygulanacak. Android Gradle eklentisinin 3.4.0 sürümünde, projenizin kabul edilebilir paket adları bildirdiğini kontrol etmek için
gradle.properties
dosyanıza aşağıdaki satırı ekleyerek bu özelliği etkinleştirebilirsiniz.android.uniquePackageNames = true
Android Gradle eklentisi aracılığıyla paket adı belirleme hakkında daha fazla bilgi edinmek için Uygulama kimliğini ayarlama başlıklı makaleyi inceleyin.
3.3.0 (Ocak 2019)
Android eklentisinin bu sürümü için aşağıdakiler gereklidir:
-
Gradle 4.10.1 veya üzeri sürümler Daha fazla bilgi edinmek için Gradle'i güncelleme ile ilgili bölümü okuyun.
Not: Gradle 5.0 ve sonraki sürümler kullanıldığında varsayılan Gradle daemon bellek yığın boyutu 1 GB'dan 512 MB'a düşürülür. Bu durum, derleme performansında gerilemeyle sonuçlanabilir. Bu varsayılan ayarı geçersiz kılmak için projenizin
gradle.properties
dosyasında Gradle daemon yığın boyutunu belirtin. -
SDK Build Tools 28.0.3 veya daha yeni bir sürüm.
Bu küçük güncelleme, Android 11'de paket görünürlüğü ile ilgili yeni varsayılan ayar ve özelliklerle uyumluluğu destekler.
Ayrıntılar için 4.0.1 sürüm notlarına bakın.
3.3.2 (Mart 2019)
Bu küçük güncelleme, Android Studio 3.3.2'yi destekler ve çeşitli hata düzeltmeleri ile performans iyileştirmeleri içerir. Dikkat çeken hata düzeltmelerinin listesini görmek için Sürüm Güncellemeleri blogundaki ilgili yayını okuyun.
3.3.1 (Şubat 2019)
Bu küçük güncelleme, Android Studio 3.3.1'i destekler ve çeşitli hata düzeltmeleri ile performans iyileştirmeleri içerir.
Yeni özellikler
-
Daha iyi sınıf yolu senkronizasyonu: Android Gradle eklentisi, çalışma zamanındaki ve derleme zamanındaki sınıf yollarınızdaki bağımlılıkları çözerken birden fazla sınıf yolunda görünen bağımlılıklar için belirli yayın sonrası sürüm çakışmalarını düzeltmeye çalışır.
Örneğin, çalışma zamanı sınıf yolu A Kitaplığı 2.0 sürümünü ve derleme sınıf yolu A Kitaplığı 1.0 sürümünü içeriyorsa eklenti, hataları önlemek için derleme sınıf yolundaki bağımlılığı A Kitaplığı 2.0 sürümüne otomatik olarak günceller.
Ancak çalışma zamanı sınıf yolu A Kitaplığı 1.0 sürümünü, derleme ise A Kitaplığı 2.0 sürümünü içeriyorsa eklenti, derleme sınıf yolundaki bağımlılığı A Kitaplığı 1.0 sürümüne düşürmez ve bir hata alırsınız. Daha fazla bilgi edinmek için Classpath'ler arasındaki çatışmaları düzeltme başlıklı makaleyi inceleyin.
-
Notlandırıcı işleyiciler kullanılırken artımlı Java derlemesi iyileştirildi: Bu güncelleme, notlandırıcı işleyiciler kullanılırken artımlı Java derlemesi desteğini iyileştirerek derleme süresini kısaltır.
Not: Bu özellik, Gradle 8194 numaralı sorunu nedeniyle Gradle 5.1 hariç Gradle 4.10.1 ve sonraki sürümlerle uyumludur.
-
Kapt kullanan projeler için (yalnızca Kotlin projeleri ve Kotlin-Java karma projeleri): Veri bağlama veya retro-lambda eklentisini kullansanız bile artımlı Java derlemesi etkindir. Kapt görevi tarafından gerçekleştirilen ek açıklama işleme henüz artımlı değildir.
-
Kapt'ı kullanmayan projeler (yalnızca Java projeleri): Kullandığınız ek açıklama işleyicilerin tümü artımlı ek açıklama işlemeyi destekliyorsa artımlı Java derlemesi varsayılan olarak etkindir. Artımlı ek açıklama işleyicinin benimsenmesini izlemek için Gradle 5277 sorununu izleyin.
Ancak bir veya daha fazla ek açıklama işleyici ek derlemeleri desteklemiyorsa ek Java derlemesi etkinleştirilmez. Bunun yerine,
gradle.properties
dosyanıza aşağıdaki işareti ekleyebilirsiniz:android.enableSeparateAnnotationProcessing=true
Bu işareti eklediğinizde Android Gradle eklentisi, ek açıklama işleyicilerini ayrı bir görevde yürütür ve Java derleme görevinin kademeli olarak çalışmasına izin verir.
-
-
Kullanımdan kaldırılmış API'ler kullanırken daha iyi hata ayıklama bilgileri: Eklenti, artık desteklenmeyen bir API kullandığınızı tespit ettiğinde bu API'nin nerede kullanıldığını belirlemenize yardımcı olmak için daha ayrıntılı bilgi sağlayabilir. Ek bilgileri görmek için projenizin
gradle.properties
dosyasına aşağıdakileri eklemeniz gerekir:android.debug.obsoleteApi=true
İşareti, komut satırından
-Pandroid.debug.obsoleteApi=true
ile de etkinleştirebilirsiniz. -
Komut satırından özellik modüllerinde enstrümantasyon testleri çalıştırabilirsiniz.
Davranışta yapılan değişiklikler
-
Tembel görev yapılandırması: Eklenti artık mevcut derlemeyi tamamlamak için gerekli olmayan görevleri (veya yürütme görevi grafiğinde olmayan görevleri) başlatmayı ve yapılandırmayı önlemek amacıyla Gradle'ın yeni görev oluşturma API'sini kullanıyor. Örneğin, "sürüm" ve "hata ayıklama" derleme varyantları gibi birden fazla derleme varyantınız varsa ve uygulamanızın "hata ayıklama" sürümünü derliyorsanız eklenti, uygulamanızın "sürüm" sürümü için görevleri başlatmaktan ve yapılandırmaktan kaçınır.
Variants API'deki
variant.getJavaCompile()
gibi eski yöntemlerin çağrılması, görev yapılandırmasını zorlamaya devam edebilir. Derlemenizin, tembel görev yapılandırması için optimize edildiğinden emin olmak amacıyla,variant.getJavaCompileProvider()
gibi bir TaskProvider nesnesi döndüren yeni yöntemler çağırın.Özel derleme görevleri yürütüyorsanız Gradle'ın yeni görev oluşturma API'sine nasıl uyum sağlayacağınızı öğrenin.
-
Belirli bir derleme türü için
useProguard false
ayarlanırken artık eklenti, uygulamanızın kodunu ve kaynaklarını küçültmek ve karartmak için ProGuard yerine R8'i kullanıyor. R8 hakkında daha fazla bilgi edinmek için Android Developers Blogu'ndaki bu blog yayınını okuyun. -
Kütüphane projeleri için daha hızlı R sınıfı oluşturma: Daha önce Android Gradle eklentisi, projenizin her bağımlılığı için bir
R.java
dosyası oluşturup bu R sınıflarını uygulamanızın diğer sınıflarıyla birlikte derliyordu. Eklenti artık önce araR.java
sınıfları oluşturmadan doğrudan uygulamanızın derlenmiş R sınıfını içeren bir JAR dosyası oluşturuyor. Bu optimizasyon, birçok kitaplık alt projesi ve bağımlılığı içeren projelerin derleme performansını önemli ölçüde artırabilir ve Android Studio'da dizine ekleme hızını iyileştirebilir. -
Android App Bundle oluştururken, bu uygulama paketinden oluşturulan ve Android 6.0 (API düzeyi 23) veya sonraki sürümleri hedefleyen APK'lar artık varsayılan olarak yerel kitaplıklarınızın sıkıştırılmamış sürümlerini içeriyor. Bu optimizasyon, cihazın kitaplığın bir kopyasını oluşturmasını önler ve böylece uygulamanızın disk üzerindeki boyutunu azaltır. Bu optimizasyonu devre dışı bırakmak isterseniz
gradle.properties
dosyanıza aşağıdakileri ekleyin:android.bundle.enableUncompressedNativeLibs = false
-
Eklenti, bazı üçüncü taraf eklentilerinin minimum sürümlerini zorunlu kılar.
-
Tek varyantlı proje senkronizasyonu: Projenizi derleme yapılandırmanızla senkronize etmek, Android Studio'nun projenizin nasıl yapılandırıldığını anlamasını sağlamada önemli bir adımdır. Ancak bu süreç, büyük projeler için zaman alabilir. Projenizde birden fazla derleme varyantı kullanılıyorsa proje senkronizasyonlarını yalnızca şu anda seçtiğiniz varyantla sınırlayarak optimize edebilirsiniz.
Bu optimizasyonu etkinleştirmek için Android Gradle eklentisinin 3.3.0 veya daha yeni bir sürümünü içeren Android Studio 3.3 veya daha yeni bir sürümü kullanmanız gerekir. Bu koşulları karşıladığınızda IDE, projenizi senkronize Optimizasyon, yeni projelerde de varsayılan olarak etkindir.
Bu optimizasyonu manuel olarak etkinleştirmek için Dosya > Ayarlar > Deneysel > Gradle'i (Mac'te Android Studio > Tercihler > Deneysel > Gradle) tıklayın ve Yalnızca etkin varyantı senkronize et onay kutusunu işaretleyin.
Not: Bu optimizasyon, Java ve C++ dillerini içeren projeleri tam olarak destekler ve Kotlin için bazı destek sunar. Kotlin içeriği olan projeler için optimizasyon etkinleştirildiğinde Gradle senkronizasyonu, dahili olarak tam varyantları kullanmaya geri döner.
-
Eksik SDK paketlerinin otomatik olarak indirilmesi: Bu işlev, NDK'yı desteklemek için genişletildi. Daha fazla bilgi edinmek için Gradle ile eksik paketleri otomatik olarak indirme başlıklı makaleyi inceleyin.
Hata Düzeltmeleri
-
Android Gradle eklentisi 3.3.0 aşağıdaki sorunları düzeltir:
- Jetifier etkin olmasına rağmen derleme işleminin AndroidX sürümü yerine
android.support.v8.renderscript.RenderScript
çağırması - Statik olarak paketlenmiş
annotation.AnyRes
dahil olmak üzereandroidx-rs.jar
nedeniyle çakışmalar - RenderScript'i kullanırken artık
build.gradle
dosyalarınızda Build Tools sürümünü manuel olarak ayarlamanız gerekmez
- Jetifier etkin olmasına rağmen derleme işleminin AndroidX sürümü yerine
3.2.0 (Eylül 2018)
Android eklentisinin bu sürümü için aşağıdakiler gereklidir:
- Gradle 4.6 veya daha yeni bir sürüm Daha fazla bilgi edinmek için Gradle'i güncelleme ile ilgili bölümü okuyun.
- SDK Build Tools 28.0.3 veya daha yeni bir sürüm.
3.2.1 (Ekim 2018)
Bu güncellemeyle birlikte, SDK Derleme Araçları için bir sürüm belirtmeniz gerekmez. Android Gradle eklentisi artık varsayılan olarak 28.0.3 sürümünü kullanıyor.
Yeni özellikler
-
Android App Bundle oluşturma desteği: Uygulama paketi, uygulamanızın derlenmiş kod ve kaynaklarının tamamını içeren, APK oluşturma ve imzalama işlemini ise Google Play Store'a bırakan yeni bir yükleme biçimidir. Artık birden fazla APK oluşturmak, imzalamak ve yönetmek zorunda değilsiniz. Kullanıcılar ise cihazları için optimize edilmiş daha küçük indirme dosyalarını alır. Daha fazla bilgi edinmek için Android App Bundle'lar hakkında başlıklı makaleyi okuyun.
-
Notlandırma işleyicileri kullanırken daha iyi artımlı derleme hızları için destek:
AnnotationProcessorOptions
DSL artıkCommandLineArgumentProvider
'i genişletiyor. Bu sayede, sizin veya notlandırma işleyicisinin yazarının, artımlı derleme mülk türü ek açıklamalarını kullanarak işleyicinin bağımsız değişkenlerine ek açıklama eklemesine olanak tanınıyor. Bu ek açıklamaların kullanılması, artımlı ve önbelleğe alınmış temiz derlemelerin doğruluğunu ve performansını iyileştirir. Daha fazla bilgi edinmek için Not ekleme işleyicilerine bağımsız değişkenleri aktarma başlıklı makaleyi okuyun. -
AndroidX için taşıma aracı: Android 3.2 ve sonraki sürümlerde Android Gradle 3.2.0 eklentisini kullanırken menü çubuğundan Yeniden Düzenle > AndroidX'e Taşı'yı seçerek projenizin yerel ve Maven bağımlılıklarını yeni AndroidX kitaplıklarını kullanacak şekilde taşıyabilirsiniz. Bu taşıma aracını kullandığınızda
gradle.properties
dosyanızda aşağıdaki işaretler detrue
olarak ayarlanır:-
android.useAndroidX
:true
olarak ayarlandığında Android eklentisi, Destek Kitaplığı yerine uygun AndroidX kitaplığını kullanır. Bu işaret belirtilmediğinde, eklenti varsayılan olarakfalse
değerini kullanır. -
android.enableJetifier
:true
olarak ayarlandığında Android eklentisi, mevcut üçüncü taraf kitaplıklarını ikili dosyalarını yeniden yazarak otomatik olarak AndroidX'i kullanacak şekilde taşır. Bu işaret belirtilmediğinde eklenti, varsayılan olarakfalse
değerini kullanır. Bu işareti yalnızcaandroid.useAndroidX
datrue
olarak ayarlanmışkentrue
olarak ayarlayabilirsiniz. Aksi takdirde derleme hatası alırsınız.Daha fazla bilgi için AndroidX'e genel bakış başlıklı makaleyi okuyun.
-
-
Yeni kod daraltıcı R8: R8, ProGuard'ın yerini alan kod daraltma ve karartma için yeni bir araçtır. Projenizin
gradle.properties
dosyasına aşağıdakileri ekleyerek R8'in önizleme sürümünü kullanmaya başlayabilirsiniz:android.enableR8 = true
android.enableR8 = true
Davranışta yapılan değişiklikler
-
D8 ile şeker azaltma özelliği artık varsayılan olarak etkindir.
-
AAPT2 artık Google'ın Maven deposunda. AAPT2'yi kullanmak için
build.gradle
dosyanızda aşağıda gösterildiği gibigoogle()
bağımlılığının bulunduğundan emin olun:buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
-
Yerel çoklu dizin artık varsayılan olarak etkindir. Android Studio'nun önceki sürümleri, bir uygulamanın hata ayıklama sürümünü Android API düzeyi 21 veya sonraki sürümleri çalıştıran bir cihaza dağıtırken yerel çoklu dizeyi etkinleştiriyordu. Artık bir cihaza dağıtıyor veya yayınlamak için APK oluşturuyor olsanız da Android Gradle eklentisi,
minSdkVersion=21
veya daha yüksek bir değer ayarlayan tüm modüller için yerel çoklu dizeyi etkinleştiriyor. -
Eklenti artık protobuf eklentisinin (0.8.6), Kotlin eklentisinin (1.2.50) ve Crashlytics eklentisinin (1.25.4) minimum sürümünü zorunlu kılıyor.
-
Özellik modülü eklentisi
com.android.feature
, artık modül adı belirtirken yalnızca harf, rakam ve alt çizgi kullanılmasını zorunlu kılıyor. Örneğin, özellik modülünüzün adı kısa çizgi içeriyorsa bir derleme hatası alırsınız. Bu davranış, dinamik özellik eklentisinin davranışıyla aynıdır.
Hata düzeltmeleri
- JavaCompile artık veri bağlama içeren projelerde önbelleğe alınabilir. (Sayı: 69243050)
- Veri bağlama içeren kitaplık modülleri için daha iyi derlemeden kaçınma. (Sayı 77539932)
- Önceki sürümlerde öngörülemeyen bazı derleme hataları nedeniyle devre dışı bıraktıysanız artık istediğiniz zaman yapılandır seçeneğini yeniden etkinleştirebilirsiniz. (Sayı 77910727)
3.1.0 (Mart 2018)
Android eklentisinin bu sürümü için aşağıdakiler gereklidir:
-
Gradle 4.4 veya sonraki sürümler.
Daha fazla bilgi edinmek için Gradle'i güncelleme ile ilgili bölümü okuyun.
-
Derleme Araçları 27.0.3 veya daha yeni bir sürüm.
Artık
android.buildToolsVersion
mülkünü kullanarak derleme araçları için bir sürüm belirtmeniz gerekmediğini unutmayın. Eklenti varsayılan olarak gereken minimum sürümü kullanır.
Yeni DEX derleyicisi D8
Android Studio artık varsayılan olarak D8 adlı yeni bir DEX derleyicisi kullanıyor. DEX derlemesi, .class
bayt kodunu Android Çalışma Zamanı (veya Android'in eski sürümleri için Dalvik) için .dex
bayt koduna dönüştürme işlemidir. DX adlı önceki derleyiciye kıyasla D8, aynı veya daha iyi uygulama çalışma zamanındaki performansı sunarken daha hızlı derleme yapar ve daha küçük DEX dosyaları oluşturur.
D8, günlük uygulama geliştirme iş akışınızı değiştirmemelidir. Ancak yeni derleyiciyle ilgili herhangi bir sorunla karşılaşırsanız lütfen hata bildirin. Projenizin gradle.properties
dosyasına aşağıdakileri ekleyerek D8'i geçici olarak devre dışı bırakıp DX'yi kullanabilirsiniz:
android.enableD8=false
Java 8 dil özelliklerini kullanan projelerde, artımlı şeker kaldırma işlemi varsayılan olarak etkindir. Projenizin gradle.properties
dosyasında aşağıdakileri belirterek bu özelliği devre dışı bırakabilirsiniz:
android.enableIncrementalDesugaring=false.
Önizleme kullanıcıları: D8'in bir önizleme sürümünü zaten kullanıyorsanız artık JDK yerine SDK derleme araçlarına dahil edilen kitaplıklarla derlendiğini unutmayın. Bu nedenle, JDK'de bulunan ancak SDK derleme araçları kitaplıklarında bulunmayan API'lere erişiyorsanız derleme hatası alırsınız.
Davranışta yapılan değişiklikler
-
Her biri farklı bir ABI'yi hedefleyen birden fazla APK oluştururken IDE artık varsayılan olarak şu ABI'ler için APK oluşturmaz:
mips
,mips64
vearmeabi
.Bu ABI'leri hedefleyen APK'lar oluşturmak istiyorsanız NDK r16b veya daha eski sürümleri kullanmanız ve
build.gradle
dosyanızda ABI'leri aşağıda gösterildiği gibi belirtmeniz gerekir:splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
-
Android eklentisinin önbelleği oluştur özelliği artık 30 günden eski önbellek girişlerini kaldırıyor.
-
"auto"
değeriniresConfig
parametresine göndermek artık APK'nıza paketlenecek dize kaynaklarını otomatik olarak seçmez."auto"
'ü kullanmaya devam ederseniz eklenti, uygulamanızın ve bağımlılarının sağladığı tüm dize kaynaklarını paketler. Bu nedenle, eklentinin APK'nıza paketlemesini istediğiniz her yerel dili belirtmeniz gerekir. -
Yerel modüller uygulamanızın test APK'sına bağlı olamayacağından,
androidTestImplementation
yerineandroidTestApi
yapılandırmasını kullanarak instrumented testlerinize bağımlılık eklemek Gradle'ın aşağıdaki uyarıyı yayınlamasına neden olur:WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
Düzeltmeler
- Android Studio'nun, birleşik derlemelerdeki bağımlılıklarını düzgün şekilde tanımamasına neden olan sorun düzeltildi.
- Android eklentisini tek bir derlemede birden çok kez yüklerken proje senkronizasyonu hatası aldığınız sorun düzeltildi. Örneğin, her biri buildscript sınıf yolu içinde Android eklentisini içeren birden fazla alt proje olduğunda bu sorunla karşılaşabilirsiniz.
3.0.0 (Ekim 2017)
Android Gradle eklentisi 3.0.0, büyük projelerin performans sorunlarını gidermeyi amaçlayan çeşitli değişiklikler içerir.
Örneğin, yaklaşık 130 modül ve çok sayıda harici bağımlılık (ancak kod veya kaynak içermeyen) içeren bir örnek iskelet projede aşağıdakine benzer performans iyileştirmeleri görebilirsiniz:
Android eklentisi sürümü + Gradle sürümü | Android eklentisi 2.2.0 + Gradle 2.14.1 | Android eklentisi 2.3.0 + Gradle 3.3 | Android eklentisi 3.0.0 + Gradle 4.1 |
---|---|---|---|
Yapılandırma (ör. ./gradlew --help çalıştırma) |
~2 dk. | ~9 sn. | ~2,5 sn. |
1 satırlık Java değişikliği (uygulama değişikliği) | ~2 dk. 15 sn. | ~29 sn | ~6,4 sn |
Bu değişikliklerden bazıları mevcut derlemeleri bozar. Bu nedenle, yeni eklentiyi kullanmadan önce projenizi taşımayla ilgili\ çabayı göz önünde bulundurmanız gerekir.
Yukarıda açıklanan performans iyileştirmelerini görmüyorsanız lütfen bir hata kaydı oluşturun ve Gradle Profilleyici'yi kullanarak derleme işleminizin izini ekleyin.
Android eklentisinin bu sürümü için aşağıdakiler gereklidir:
- Gradle 4.1 veya sonraki sürümler Daha fazla bilgi edinmek için Gradle'i güncelleme ile ilgili bölümü okuyun.
-
Derleme Araçları 26.0.2 veya daha yeni bir sürüm Bu güncellemeyle birlikte artık derleme araçları için bir sürüm belirtmeniz gerekmez. Eklenti, varsayılan olarak gereken minimum sürümü kullanır.
Bu nedenle,
android.buildToolsVersion
mülkünü kaldırabilirsiniz.
3.0.1 (Kasım 2017)
Bu, Android Studio 3.0.1'i desteklemek için yayınlanan küçük bir güncellemedir ve genel hata düzeltmeleri ile performans iyileştirmeleri içerir.
Optimizasyonlar
- Ayrıntılı görev grafiği sayesinde çok modüllü projeler için daha iyi paralellik
- Gradle, bağımlılıkta değişiklik yaparken söz konusu bağımlılığın API'sine erişimi olmayan modülleri yeniden derlemediği için daha hızlı derlemeler gerçekleştirir.
Gradle'in yeni bağımlılık yapılandırmalarını kullanarak API'lerini diğer modüllere sızdıran bağımlılıkları kısıtlamanız gerekir:
implementation
,api
,compileOnly
veruntimeOnly
. - Sınıf başına dexing nedeniyle daha hızlı artımlı derleme hızı. Artık her sınıf ayrı DEX dosyalarına derleniyor ve yalnızca değiştirilen sınıflar yeniden derleniyor. Ayrıca,
minSdkVersion
değerini 20 veya daha düşük bir değere ayarlayan ve eski çoklu dex kullanan uygulamalarda daha iyi derleme hızları elde edebilirsiniz. - Belirli görevleri önbelleğe alınmış çıkışları kullanacak şekilde optimize ederek derleme hızları iyileştirildi. Bu optimizasyondan yararlanmak için öncelikle Gradle derleme önbelleğini etkinleştirmeniz gerekir.
- AAPT2 kullanılarak artımlı kaynak işleme iyileştirildi. AAPT2 artık varsayılan olarak etkindir. AAPT2'yi kullanırken sorun yaşıyorsanız lütfen hata bildirin. Ayrıca,
gradle.properties
dosyanızdaandroid.enableAapt2=false
değerini ayarlayarak ve komut satırından./gradlew --stop
çalıştırarak Gradle daemon'unu yeniden başlatarak AAPT2'yi devre dışı bırakabilirsiniz.
Yeni özellikler
- Varyant bilinçli bağımlılık yönetimi. Eklenti artık bir modülün belirli bir varyantını derlerken yerel kitaplık modülü bağımlılıklarının varyantlarını, derlemekte olduğunuz modülün varyantıyla otomatik olarak eşleştiriyor.
- Android Instant Apps ve Android Instant Apps SDK'sını (SDK yöneticisini kullanarak indirebilirsiniz) desteklemek için yeni bir özellik modülü eklendi. Yeni eklentiyle özellik modülleri oluşturma hakkında daha fazla bilgi edinmek için Birden fazla özelliğe sahip anında uygulamanın yapısı başlıklı makaleyi inceleyin.
- Belirli Java 8 dil özelliklerini ve Java 8 kitaplıklarını kullanmaya yönelik yerleşik destek Jack'in desteği sonlandırıldı ve artık gerekli değil. Varsayılan araç zincirine yerleştirilmiş gelişmiş Java 8 desteğini kullanmak için önce Jack'i devre dışı bırakmanız gerekir. Daha fazla bilgi için Java 8 dili özelliklerini kullanma başlıklı makaleyi okuyun.
-
Android Test Orchestrator ile test çalıştırma desteği eklendi. Bu özellik, uygulamanızın her testini kendi Instrumentation çağrısı içinde çalıştırmanıza olanak tanır. Her test kendi enstrümantasyon örneğinde çalıştığından, testler arasında paylaşılan durumlar cihazınızın CPU'sunda veya belleğinde birikmez. Ayrıca, bir test kilitlense bile yalnızca kendi Instrumentation örneğini kapatır. Böylece diğer testleriniz çalışmaya devam eder.
- Cihaz üzerinde test koordinasyonunun kullanılıp kullanılmayacağını belirlemek için
testOptions.execution
eklendi. Android Test Orchestrator'ı kullanmak istiyorsanız aşağıda gösterildiği gibiANDROID_TEST_ORCHESTRATOR
değerini belirtmeniz gerekir. Bu mülk varsayılan olarakHOST
olarak ayarlanır. Bu ayar, cihaz üzerinde koordinasyonu devre dışı bırakır ve test çalıştırmanın standart yöntemidir.
Groovy
android { testOptions { execution 'ANDROID_TEST_ORCHESTRATOR' } }
Kotlin
android { testOptions { execution = "ANDROID_TEST_ORCHESTRATOR" } }
- Cihaz üzerinde test koordinasyonunun kullanılıp kullanılmayacağını belirlemek için
-
Yeni
androidTestUtil
bağımlılık yapılandırması, instrumentasyon testlerinizi çalıştırmadan önce Android Test Orchestrator gibi başka bir test yardımcısı APK'sı yüklemenize olanak tanır:Groovy
dependencies { androidTestUtil 'com.android.support.test:orchestrator:1.0.0' ... }
Kotlin
dependencies { androidTestUtil("com.android.support.test:orchestrator:1.0.0") ... }
-
Roboelectric gibi Android kaynaklarını gerektiren birim testlerini desteklemek için
testOptions.unitTests.includeAndroidResources
eklendi. Bu özelliğitrue
olarak ayarladığınızda, birim testlerinizi çalıştırmadan önce eklenti kaynak, öğe ve manifest birleştirme işlemi gerçekleştirir. Ardından testleriniz, aşağıdaki anahtarlar için sınıf yolu üzerindecom/android/tools/test_config.properties
'yi inceleyebilir:-
android_merged_assets
: Birleştirilmiş öğeler dizininin mutlak yolu.Not: Kitaplık modülleri için birleştirilen öğeler, bağımlılık öğelerini içermez (#65550419 numaralı soruna bakın).
-
android_merged_manifest
: Birleştirilmiş manifest dosyasının mutlak yolu. -
android_merged_resources
: Modüldeki tüm kaynakları ve tüm bağımlılıkları içeren, birleştirilmiş kaynaklar dizininin mutlak yolu. -
android_custom_package
: Nihai R sınıfının paket adı. Uygulama kimliğini dinamik olarak değiştirirseniz bu paket adı, uygulamanın manifest dosyasında bulunanpackage
özelliğiyle eşleşmeyebilir.
-
- Kaynak olarak yazı tipleri desteği (Android 8.0 (API düzeyi 26)'da kullanıma sunulan yeni bir özelliktir).
- Android Hazır Uygulamalar SDK 1.1 ve sonraki sürümlerde dile özgü APK'lar için destek
-
Artık harici doğal derleme projenizin çıkış dizinini aşağıda gösterildiği gibi değiştirebilirsiniz:
Groovy
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory "./outputs/cmake" } } }
Kotlin
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory = "./outputs/cmake" } } }
- Artık Android Studio'dan yerel projeler oluştururken CMake 3.7 veya sonraki sürümleri kullanabilirsiniz.
-
Yeni
lintChecks
bağımlılık yapılandırması, özel lint kurallarını tanımlayan bir JAR oluşturmanıza ve bunu AAR ve APK projelerinize paketlemenize olanak tanır.Özel lint kurallarınız, tek bir JAR dosyası yayınlayan ve yalnızca
compileOnly
bağımlılıklarını içeren ayrı bir projeye ait olmalıdır. Diğer uygulama ve kitaplık modülleri,lintChecks
yapılandırmasını kullanarak lint projenize bağlı olabilir:Groovy
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks project(':lint-checks') }
Kotlin
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks(project(":lint-checks")) }
Davranışta yapılan değişiklikler
- Android 3.0.0 eklentisi belirli API'leri kaldırır ve bu API'leri kullanırsanız derlemeniz bozulur. Örneğin, artık
outputFile()
nesnelerine erişmek için Variants API'yi veya her bir varyantın manifest dosyasını almak içinprocessManifest.manifestOutputFile()
'yi kullanamazsınız. Daha fazla bilgi edinmek için API değişiklikleri başlıklı makaleyi inceleyin. - Artık derleme araçları için bir sürüm belirtmeniz gerekmez (bu nedenle
android.buildToolsVersion
özelliğini kaldırabilirsiniz). Varsayılan olarak, eklenti kullandığınız Android eklentisi sürümünün gerektirdiği minimum yapı araçları sürümünü otomatik olarak kullanır. - Artık PNG sıkıştırmayı
buildTypes
bölümünde etkinleştirebilir/devre dışı bırakabilirsiniz. Aşağıda gösterildiği gibi. PNG sıkıştırma, birçok PNG dosyası içeren projelerin derleme sürelerini uzattığı için hata ayıklama derlemeleri dışındaki tüm derlemeler için varsayılan olarak etkindir. Bu nedenle, diğer derleme türlerinin derleme sürelerini iyileştirmek için PNG sıkıştırmayı devre dışı bırakmanız veya resimlerinizi WebP'ye dönüştürmeniz gerekir.Groovy
android { buildTypes { release { // Disables PNG crunching for the release build type. crunchPngs false } } }
Kotlin
android { buildTypes { release { // Disables PNG crunching for the release build type. isCrunchPngs = false } } }
- Android eklentisi artık harici CMake projelerinizi yapılandırdığınız yürütülebilir hedefleri otomatik olarak derliyor.
- Artık
annotationProcessor
bağımlılık yapılandırmasını kullanarak işleyici sınıf yolu yoluna notlandırma işleyicileri eklemeniz gerekir. - Desteği sonlandırılan
ndkCompile
'ün kullanımı artık daha kısıtlı. Bunun yerine, APK'nıza paketlemek istediğiniz yerel kodu derlemek için CMake veya ndk-build kullanmaya geçmeniz gerekir. Daha fazla bilgi için ndkcompile'den taşıma başlıklı makaleyi inceleyin.
3.0.0 (Ekim 2017)
Android Gradle eklentisi 3.0.0, büyük projelerin performans sorunlarını gidermeyi amaçlayan çeşitli değişiklikler içerir.
Örneğin, yaklaşık 130 modül ve çok sayıda harici bağımlılık (ancak kod veya kaynak içermeyen) içeren bir örnek iskelet projede aşağıdakine benzer performans iyileştirmeleri görebilirsiniz:
Android eklentisi sürümü + Gradle sürümü | Android eklentisi 2.2.0 + Gradle 2.14.1 | Android eklentisi 2.3.0 + Gradle 3.3 | Android eklentisi 3.0.0 + Gradle 4.1 |
---|---|---|---|
Yapılandırma (ör. ./gradlew --help çalıştırma) |
~2 dk. | ~9 sn. | ~2,5 sn. |
1 satırlık Java değişikliği (uygulama değişikliği) | ~2 dk. 15 sn. | ~29 sn | ~6,4 sn |
Bu değişikliklerden bazıları mevcut derlemeleri bozar. Bu nedenle, yeni eklentiyi kullanmadan önce projenizi taşımayla ilgili\ çabayı göz önünde bulundurmanız gerekir.
Yukarıda açıklanan performans iyileştirmelerini görmüyorsanız lütfen bir hata kaydı oluşturun ve Gradle Profilleyici'yi kullanarak derleme işleminizin izini ekleyin.
Android eklentisinin bu sürümü için aşağıdakiler gereklidir:
- Gradle 4.1 veya sonraki sürümler Daha fazla bilgi edinmek için Gradle'i güncelleme ile ilgili bölümü okuyun.
-
Derleme Araçları 26.0.2 veya daha yeni bir sürüm Bu güncellemeyle birlikte artık derleme araçları için bir sürüm belirtmeniz gerekmez. Eklenti, varsayılan olarak gereken minimum sürümü kullanır.
Bu nedenle,
android.buildToolsVersion
mülkünü kaldırabilirsiniz.
3.0.1 (Kasım 2017)
Bu, Android Studio 3.0.1'i desteklemek için yayınlanan küçük bir güncellemedir ve genel hata düzeltmeleri ile performans iyileştirmeleri içerir.
Optimizasyonlar
- Ayrıntılı görev grafiği sayesinde çok modüllü projeler için daha iyi paralellik
- Gradle, bağımlılıkta değişiklik yaparken söz konusu bağımlılığın API'sine erişimi olmayan modülleri yeniden derlemediği için daha hızlı derlemeler gerçekleştirir.
Gradle'in yeni bağımlılık yapılandırmalarını kullanarak API'lerini diğer modüllere sızdıran bağımlılıkları kısıtlamanız gerekir:
implementation
,api
,compileOnly
veruntimeOnly
. - Sınıf başına dexing nedeniyle daha hızlı artımlı derleme hızı. Artık her sınıf ayrı DEX dosyalarına derleniyor ve yalnızca değiştirilen sınıflar yeniden derleniyor. Ayrıca,
minSdkVersion
değerini 20 veya daha düşük bir değere ayarlayan ve eski çoklu dex kullanan uygulamalarda daha iyi derleme hızları elde edebilirsiniz. - Belirli görevleri önbelleğe alınmış çıkışları kullanacak şekilde optimize ederek derleme hızları iyileştirildi. Bu optimizasyondan yararlanmak için öncelikle Gradle derleme önbelleğini etkinleştirmeniz gerekir.
- AAPT2 kullanılarak artımlı kaynak işleme iyileştirildi. AAPT2 artık varsayılan olarak etkindir. AAPT2'yi kullanırken sorun yaşıyorsanız lütfen hata bildirin. Ayrıca,
gradle.properties
dosyanızdaandroid.enableAapt2=false
değerini ayarlayarak ve komut satırından./gradlew --stop
çalıştırarak Gradle daemon'unu yeniden başlatarak AAPT2'yi devre dışı bırakabilirsiniz.
Yeni özellikler
- Varyant bilinçli bağımlılık yönetimi. Eklenti artık bir modülün belirli bir varyantını derlerken yerel kitaplık modülü bağımlılıklarının varyantlarını, derlemekte olduğunuz modülün varyantıyla otomatik olarak eşleştiriyor.
- Android Instant Apps ve Android Instant Apps SDK'sını (SDK yöneticisini kullanarak indirebilirsiniz) desteklemek için yeni bir özellik modülü eklendi. Yeni eklentiyle özellik modülleri oluşturma hakkında daha fazla bilgi edinmek için Birden fazla özelliğe sahip anında uygulamanın yapısı başlıklı makaleyi inceleyin.
- Belirli Java 8 dil özelliklerini ve Java 8 kitaplıklarını kullanmaya yönelik yerleşik destek Jack'in desteği sonlandırıldı ve artık gerekli değil. Varsayılan araç zincirine yerleştirilmiş gelişmiş Java 8 desteğini kullanmak için önce Jack'i devre dışı bırakmanız gerekir. Daha fazla bilgi için Java 8 dili özelliklerini kullanma başlıklı makaleyi okuyun.
-
Android Test Orchestrator ile test çalıştırma desteği eklendi. Bu özellik, uygulamanızın her testini kendi Instrumentation çağrısı içinde çalıştırmanıza olanak tanır. Her test kendi enstrümantasyon örneğinde çalıştığından, testler arasında paylaşılan durumlar cihazınızın CPU'sunda veya belleğinde birikmez. Ayrıca, bir test kilitlense bile yalnızca kendi Instrumentation örneğini kapatır. Böylece diğer testleriniz çalışmaya devam eder.
- Cihaz üzerinde test koordinasyonunun kullanılıp kullanılmayacağını belirlemek için
testOptions.execution
eklendi. Android Test Orchestrator'ı kullanmak istiyorsanız aşağıda gösterildiği gibiANDROID_TEST_ORCHESTRATOR
değerini belirtmeniz gerekir. Bu mülk varsayılan olarakHOST
olarak ayarlanır. Bu ayar, cihaz üzerinde koordinasyonu devre dışı bırakır ve test çalıştırmanın standart yöntemidir.
Groovy
android { testOptions { execution 'ANDROID_TEST_ORCHESTRATOR' } }
Kotlin
android { testOptions { execution = "ANDROID_TEST_ORCHESTRATOR" } }
- Cihaz üzerinde test koordinasyonunun kullanılıp kullanılmayacağını belirlemek için
-
Yeni
androidTestUtil
bağımlılık yapılandırması, instrumentasyon testlerinizi çalıştırmadan önce Android Test Orchestrator gibi başka bir test yardımcısı APK'sı yüklemenize olanak tanır:Groovy
dependencies { androidTestUtil 'com.android.support.test:orchestrator:1.0.0' ... }
Kotlin
dependencies { androidTestUtil("com.android.support.test:orchestrator:1.0.0") ... }
-
Roboelectric gibi Android kaynaklarını gerektiren birim testlerini desteklemek için
testOptions.unitTests.includeAndroidResources
eklendi. Bu özelliğitrue
olarak ayarladığınızda, birim testlerinizi çalıştırmadan önce eklenti kaynak, öğe ve manifest birleştirme işlemi gerçekleştirir. Ardından testleriniz, aşağıdaki anahtarlar için sınıf yolu üzerindecom/android/tools/test_config.properties
'yi inceleyebilir:-
android_merged_assets
: Birleştirilmiş öğeler dizininin mutlak yolu.Not: Kitaplık modülleri için birleştirilen öğeler, bağımlılık öğelerini içermez (#65550419 numaralı soruna bakın).
-
android_merged_manifest
: Birleştirilmiş manifest dosyasının mutlak yolu. -
android_merged_resources
: Modüldeki tüm kaynakları ve tüm bağımlılıkları içeren, birleştirilmiş kaynaklar dizininin mutlak yolu. -
android_custom_package
: Nihai R sınıfının paket adı. Uygulama kimliğini dinamik olarak değiştirirseniz bu paket adı, uygulamanın manifest dosyasında bulunanpackage
özelliğiyle eşleşmeyebilir.
-
- Kaynak olarak yazı tipleri desteği (Android 8.0 (API düzeyi 26)'da kullanıma sunulan yeni bir özelliktir).
- Android Hazır Uygulamalar SDK 1.1 ve sonraki sürümlerde dile özgü APK'lar için destek
-
Artık harici doğal derleme projenizin çıkış dizinini aşağıda gösterildiği gibi değiştirebilirsiniz:
Groovy
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory "./outputs/cmake" } } }
Kotlin
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory = "./outputs/cmake" } } }
- Artık Android Studio'dan yerel projeler oluştururken CMake 3.7 veya sonraki sürümleri kullanabilirsiniz.
-
Yeni
lintChecks
bağımlılık yapılandırması, özel lint kurallarını tanımlayan bir JAR oluşturmanıza ve bunu AAR ve APK projelerinize paketlemenize olanak tanır.Özel lint kurallarınız, tek bir JAR dosyası yayınlayan ve yalnızca
compileOnly
bağımlılıklarını içeren ayrı bir projeye ait olmalıdır. Diğer uygulama ve kitaplık modülleri,lintChecks
yapılandırmasını kullanarak lint projenize bağlı olabilir:Groovy
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks project(':lint-checks') }
Kotlin
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks(project(":lint-checks")) }
Davranışta yapılan değişiklikler
- Android 3.0.0 eklentisi belirli API'leri kaldırır ve bu API'leri kullanırsanız derlemeniz bozulur. Örneğin, artık
outputFile()
nesnelerine erişmek için Variants API'yi veya her bir varyantın manifest dosyasını almak içinprocessManifest.manifestOutputFile()
'yi kullanamazsınız. Daha fazla bilgi edinmek için API değişiklikleri başlıklı makaleyi inceleyin. - Artık derleme araçları için bir sürüm belirtmeniz gerekmez (bu nedenle
android.buildToolsVersion
özelliğini kaldırabilirsiniz). Varsayılan olarak, eklenti kullandığınız Android eklentisi sürümünün gerektirdiği minimum yapı araçları sürümünü otomatik olarak kullanır. - Artık PNG sıkıştırmayı
buildTypes
bölümünde etkinleştirebilir/devre dışı bırakabilirsiniz. Aşağıda gösterildiği gibi. PNG sıkıştırma, birçok PNG dosyası içeren projelerin derleme sürelerini uzattığı için hata ayıklama derlemeleri dışındaki tüm derlemeler için varsayılan olarak etkindir. Bu nedenle, diğer derleme türlerinin derleme sürelerini iyileştirmek için PNG sıkıştırmayı devre dışı bırakmanız veya resimlerinizi WebP'ye dönüştürmeniz gerekir.Groovy
android { buildTypes { release { // Disables PNG crunching for the release build type. crunchPngs false } } }
Kotlin
android { buildTypes { release { // Disables PNG crunching for the release build type. isCrunchPngs = false } } }
- Android eklentisi artık harici CMake projelerinizi yapılandırdığınız yürütülebilir hedefleri otomatik olarak derliyor.
- Artık
annotationProcessor
bağımlılık yapılandırmasını kullanarak işleyici sınıf yolu yoluna notlandırma işleyicileri eklemeniz gerekir. - Desteği sonlandırılan
ndkCompile
'ün kullanımı artık daha kısıtlı. Bunun yerine, APK'nıza paketlemek istediğiniz yerel kodu derlemek için CMake veya ndk-build kullanmaya geçmeniz gerekir. Daha fazla bilgi için ndkcompile'den taşıma başlıklı makaleyi inceleyin.
2.3.0 (Şubat 2017)
2.3.3 (Haziran 2017)
Bu, Android Studio 2.3.3 ile uyumluluk ekleyen küçük bir güncellemedir.
2.3.2 (Mayıs 2017)
Bu, Android Studio 2.3.2 ile uyumluluk ekleyen küçük bir güncellemedir.
2.3.1 (Nisan 2017)
Bu, Android 2.3.0 eklentisinde bazı fiziksel Android cihazların Instant Run ile düzgün çalışmadığı sorunu gideren küçük bir güncellemedir ( Sorun #235879'a bakın).
- Bağımlılıklar:
-
- Gradle 3.3 veya daha yeni bir sürüm.
- Derleme Araçları 25.0.0 veya daha yeni bir sürüm
- Yeni:
-
- Performans iyileştirmeleri ve yeni özellikler içeren Gradle 3.3'ü kullanır. Daha fazla bilgi için Gradle sürüm notlarına göz atın.
- Derleme önbelleği: Android eklentisinin projenizi derlediğinde oluşturduğu belirli çıkışları (ör. paketlenmemiş AAR'lar ve önceden dex'lenmiş uzak bağımlılıklar) depolar. Derleme sistemi, önbelleğe alınan dosyaları yeniden oluşturmak yerine sonraki derlemelerde yeniden kullanabildiğinden, önbelleği kullanırken temiz derlemeleriniz çok daha hızlı olur. Android 2.3.0 ve sonraki sürümlerin eklentisini kullanan projeler varsayılan olarak derleme önbelleğini kullanır. Daha fazla bilgi için Derleme Önbelleği ile Derleme Hızını İyileştirme başlıklı makaleyi inceleyin.
- Derleme önbelleğini temizleyen bir
cleanBuildCache
görevi içerir. - Derleme önbelleği deneysel sürümünü (eklentinin önceki sürümlerine dahildir) kullanıyorsanız eklentinizi en son sürüme güncellemeniz gerekir.
- Derleme önbelleğini temizleyen bir
- Değişiklikler:
-
- Android Studio 2.3'te bulunan Hazır Çalıştırma ile ilgili değişiklikleri destekler.
- Çok büyük projeler için yapılandırma süreleri önemli ölçüde daha hızlı olmalıdır.
- Kısıtlama düzeni kitaplığı için otomatik indirmeyle ilgili sorunlar düzeltildi.
- Eklenti artık ProGuard 5.3.2 sürümünü kullanıyor.
- bildirilen hatalar için birçok düzeltme içerir. Sorunla karşılaşırsanız lütfen hata raporu göndermeye devam edin.
2.2.0 (Eylül 2016)
- Bağımlılıklar:
-
- Gradle 2.14.1 veya sonraki sürümler.
- Derleme Araçları 23.0.2 veya daha yeni bir sürüm
- Yeni:
-
- Performans iyileştirmeleri ve yeni özellikler içeren Gradle 2.14.1'i kullanır ve Gradle daemon'u kullanırken yerel ayrıcalıkların yükseltilmesine olanak tanıyan bir güvenlik açığını düzeltir. Daha fazla bilgi için Gradle sürüm notlarına göz atın.
- Gradle,
externalNativeBuild {}
DSL'sini kullanarak artık yerel kaynaklarınıza bağlantı oluşturmanıza ve CMake veya ndk-build'i kullanarak yerel kitaplıkları derlemenize olanak tanıyor. Gradle, yerel kitaplıklarınızı oluşturduktan sonra bunları APK'nıza paketler. CMake ve ndk-build'i Gradle ile kullanma hakkında daha fazla bilgi edinmek için Projenize C ve C++ Kodu Ekleme başlıklı makaleyi okuyun. - Komut satırından derleme çalıştırdığınızda Gradle artık projenizin ihtiyaç duyduğu eksik SDK bileşenlerini veya güncellemeleri otomatik olarak indirmeye çalışır. Daha fazla bilgi edinmek için Gradle ile eksik paketleri otomatik olarak indirme başlıklı makaleyi inceleyin.
- Deneysel bir önbelleğe alma özelliği, Gradle'in kitaplıklarınızın önceden derlenmiş sürümlerini önceden derleyerek, depolayarak ve yeniden kullanarak derleme sürelerini kısaltmasını sağlar. Bu deneysel özelliği kullanma hakkında daha fazla bilgi edinmek için Önbelleğe Alma kılavuzunu okuyun.
- Sıkıştırma, imzalama ve zipalign işlemlerini tek bir görevde yürüten yeni bir varsayılan paketleme ardışık düzeni benimseyerek derleme performansını iyileştirir.
gradle.properties
dosyanızaandroid.useOldPackaging=true
ekleyerek eski paketleme araçlarını kullanmaya geri dönebilirsiniz. Yeni paketleme aracı kullanılırkenzipalignDebug
görevi kullanılamaz. AncakcreateZipAlignTask(String taskName, File inputFile, File outputFile)
yöntemini çağırarak kendiniz de oluşturabilirsiniz. - APK imzalama işleminde artık geleneksel JAR imzalamanın yanı sıra APK İmza Şeması v2 de kullanılmaktadır. Elde edilen APK'lar tüm Android platformları tarafından kabul edilir. İmzalama işleminden sonra bu APK'larda yapılan herhangi bir değişiklik, v2 imzalarını geçersiz kılar ve cihaza yüklemeyi engeller. Bu özelliği devre dışı bırakmak için modül düzeyindeki
build.gradle
dosyanıza aşağıdakileri ekleyin:Groovy
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- Multidex derlemelerde, Gradle'ın uygulamanızın ana DEX dosyasında derleyeceği sınıfları belirlemek için artık ProGuard kurallarını kullanabilirsiniz. Android sistemi, uygulamanızı başlatırken önce ana DEX dosyasını yüklediği için belirli sınıfları ana DEX dosyasında derleyerek başlangıçta öncelik verebilirsiniz. Ana DEX dosyanız için özel olarak bir ProGuard yapılandırma dosyası oluşturduktan sonra,
buildTypes.multiDexKeepProguard
kullanarak yapılandırma dosyasının yolunu Gradle'e iletin. Bu DSL'yi kullanmak, uygulamanız için genel ProGuard kuralları sağlayan ve ana DEX dosyası için sınıf belirtmeyenbuildTypes.proguardFiles
kullanmaktan farklıdır. android:extractNativeLibs
işareti için destek ekler. Bu işaret, uygulamanızı bir cihaza yüklediğinizde uygulamanızın boyutunu küçültebilir. Uygulama manifestinizin<application>
öğesinde bu işaretçiyifalse
olarak ayarladığınızda Gradle, yerel kitaplıklarınızın sıkıştırılmamış ve hizalanmış sürümlerini APK'nızla paketler. Bu,PackageManager
'nin yükleme sırasında yerel kitaplıklarınızı APK'dan cihazın dosya sistemine kopyalamasını önler ve uygulamanızın delta güncellemelerini daha küçük hale getirmenin ek avantajını sağlar.- Artık ürün varyantları için
versionNameSuffix
veapplicationIdSuffix
değerlerini belirtebilirsiniz. (Sorun 59614)
- Değişiklikler:
-
-
getDefaultProguardFile
artık Gradle için Android eklentisinin sağladığı varsayılan ProGuard dosyalarını döndürüyor ve Android SDK'sındaki dosyaları kullanmıyor. - Jack derleyicisinin performansı ve özellikleri iyileştirildi:
- Jack artık
testCoverageEnabled
değerinitrue
olarak ayarladığınızda Jacoco test kapsamını destekliyor. - Ek açıklama işleyicileri için iyileştirilmiş destek. Yol dizininizdeki
compile
bağımlılıklarını anımsatan ek açıklama işleyiciler, derlemenize otomatik olarak uygulanır. Ayrıca, derlemenizde bir ek açıklama işleyici belirtebilir ve modül düzeyindekibuild.gradle
dosyanızdajavaCompileOptions.annotationProcessorOptions {}
DSL'sini kullanarak bağımsız değişkenler iletebilirsiniz:Groovy
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } }
Kotlin
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } }
Derleme sırasında bir ek açıklama işleyici uygulamak ancak APK'nıza dahil etmek istemiyorsanız
annotationProcessor
bağımlılık kapsamını kullanın:Groovy
dependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' // or use buildVariantAnnotationProcessor to target a specific build variant }
Kotlin
dependencies { implementation("com.google.dagger:dagger:2.0") annotationProcessor("com.google.dagger:dagger-compiler:2.0") // or use buildVariantAnnotationProcessor to target a specific build variant }
Belirleyebileceğiniz parametrelerin listesi için komut satırından aşağıdakileri çalıştırın:
java -jar /build-tools/jack.jar --help-properties
- Jack artık
- Varsayılan olarak, Gradle daemon'ının yığın boyutu en az 1, 5 GB ise Jack artık Gradle ile aynı işlemde çalışır. Daemon yığın boyutunu ayarlamak için
gradle.properties
dosyanıza aşağıdakileri ekleyin:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
-
2.1.0 (Nisan 2016)
2.1.3 (Ağustos 2016)
Bu güncelleme için Gradle 2.14.1 ve sonraki sürümler gerekir. Gradle 2.14.1, performans iyileştirmeleri, yeni özellikler ve önemli bir güvenlik düzeltmesi içerir. Daha fazla bilgi için Gradle sürüm notlarına göz atın.
- Bağımlılıklar:
-
- Gradle 2.10 veya sonraki sürümler.
- Derleme Araçları 23.0.2 veya daha yeni bir sürüm
- Yeni:
-
- Jack araç setini kullanarak N geliştirici önizlemesi, JDK 8 ve Java 8 dil özellikleri için destek eklendi. Daha fazla bilgi edinmek için N Preview kılavuzunu okuyun.
Not: Anında çalıştırma şu anda Jack ile çalışmaz ve yeni araç seti kullanılırken devre dışı bırakılır. Jack'i yalnızca N önizlemesi için geliştirme yapıyorsanız ve desteklenen Java 8 dil özelliklerini kullanmak istiyorsanız kullanmanız gerekir.
- Geliştirme sırasında derleme süresini azaltmak için artımlı Java derlemesi için varsayılan destek eklendi. Bunu, yalnızca kaynağın değişen veya yeniden derlenmesi gereken bölümlerini yeniden derleyerek yapar. Bu özelliği devre dışı bırakmak için modül düzeyindeki
build.gradle
dosyanıza aşağıdaki kodu ekleyin:Groovy
android { ... compileOptions { incremental false } }
Kotlin
android { ... compileOptions { incremental = false } }
-
Ayrı, harici sanal makine işlemlerinde değil, derleme işlemi içinde dexing işlemi gerçekleştiren işlem içi dexing için destek eklendi. Bu, yalnızca artımlı derlemeleri değil, tam derlemeleri de hızlandırır. Bu özellik, Gradle daemon'unun maksimum yığın boyutunu en az 2048 MB olarak ayarlayan projeler için varsayılan olarak etkindir. Bunu projenizin
```none org.gradle.jvmargs = -Xmx2048m ```gradle.properties
dosyasına aşağıdakileri ekleyerek yapabilirsiniz:Modül düzeyindeki
```none org.gradle.jvmargs = -Xmx3072m ```build.gradle
dosyanızdajavaMaxHeapSize
için bir değer tanımladıysanızorg.gradle.jvmargs
değerinijavaMaxHeapSize
+ 1024 MB değerine ayarlamanız gerekir. Örneğin,javaMaxHeapSize
değerini "2048m" olarak belirlediyseniz projenizingradle.properties
dosyasına şunları eklemeniz gerekir:İşlem sırasında dexing'i devre dışı bırakmak için modül düzeyindeki
build.gradle
dosyanıza aşağıdaki kodu ekleyin:Groovy
android { ... dexOptions { dexInProcess false } }
Kotlin
android { ... dexOptions { dexInProcess = false } }
- Jack araç setini kullanarak N geliştirici önizlemesi, JDK 8 ve Java 8 dil özellikleri için destek eklendi. Daha fazla bilgi edinmek için N Preview kılavuzunu okuyun.
2.0.0 (Nisan 2016)
- Bağımlılıklar:
-
- Gradle 2.10 veya sonraki sürümler.
- Derleme Araçları 21.1.1 veya daha yeni bir sürüm
- Yeni:
-
- Kod dizesi eklemeyi destekleyerek ve kod ile kaynak güncellemelerini emülatörde veya fiziksel bir cihazda çalışan bir uygulamaya göndererek Hazır Çalıştırma'yı etkinleştirir.
- Uygulama çalışmadığında bile artımlı derlemeler için destek eklendi. Artımlı değişiklikler Android Debug Bridge üzerinden bağlı cihaza gönderilerek tam derleme süreleri iyileştirildi.
- Aynı anda kaç çalışan dex işleminin oluşturulabileceğini kontrol etmek için
maxProcessCount
eklendi. Modül düzeyindekibuild.gradle
dosyasında bulunan aşağıdaki kod, eşzamanlı maksimum işlem sayısını 4'e ayarlar:Groovy
android { ... dexOptions { maxProcessCount = 4 // this is the default value } }
Kotlin
android { ... dexOptions { maxProcessCount = 4 // this is the default value } }
</li> <li>Added an experimental code shrinker to support pre-dexing and reduce re-dexing of dependencies, which are not supported with Proguard. This improves the build speed of your debug build variant. Because the experimental shrinker does not support optimization and obfuscation, you should enable Proguard for your release builds. To enable the experimental shrinker for your debug builds, add the following to your module-level <code>build.gradle</code> file:
Groovy
android { ... buildTypes { debug { minifyEnabled true useProguard false } release { minifyEnabled true useProguard true // this is a default setting } } }
Kotlin
android { ... buildTypes { getByName("debug") { minifyEnabled = true useProguard = false } getByName("release") { minifyEnabled = true useProguard = true // this is a default setting } } }
</li> <li>Added logging support and improved performance for the resource shrinker. The resource shrinker now logs all of its operations into a <code>resources.txt</code> file located in the same folder as the Proguard log files. </li> </ul>
- Değiştirilen davranış:
-
minSdkVersion
18 veya daha yüksek bir değere ayarlandığında APK imzalama işleminde SHA256 kullanılır.
<li>DSA and ECDSA keys can now sign APK packages. <p class="note"> <strong>Note:</strong> The <a href= "/training/articles/keystore.html">Android keystore</a> provider no longer supports <a href= "/about/versions/marshmallow/android-6.0-changes.html#behavior-keystore"> DSA keys on Android 6.0</a> (API level 23) and higher. </p> </li> </ul>
- Çözülen sorunlar:
-
- Hem test hem de ana derleme yapılandırmalarında yinelenen AAR bağımlılıklarına neden olan bir sorun düzeltildi.
Gradle için Android eklentisi, 1.5.0 düzeltmesi (Kasım 2015)
- Bağımlılıklar:
-
- Gradle 2.2.1 veya sonraki sürümler.
- Derleme Araçları 21.1.1 veya sonraki sürümler.
- Genel Notlar:
-
- Veri Bağlama eklentisi, Gradle için Android eklentisine entegre edildi. Bu özelliği etkinleştirmek için, eklentiyi kullanan her projeye ait
build.gradle
dosyasına aşağıdaki kodu ekleyin: - Üçüncü taraf eklentilerinin, derlenmiş
.class
dosyalarını.dex
dosyalarına dönüştürülmeden önce değiştirmesine olanak tanımak için yeni bir Transform API eklendi. Transform API, özel sınıf işlemleri eklemeyi basitleştirirken neleri değiştirebileceğiniz konusunda daha fazla esneklik sunar. Bir derlemeye dönüştürme eklemek içinTransform
arayüzlerinden birini uygulayan yeni bir sınıf oluşturun ve bu sınıfıandroid.registerTransform(theTransform)
veyaandroid.registerTransform(theTransform, dependencies)
ile kaydedin. Görevleri birbirine bağlamanıza gerek yoktur. Transform API ile ilgili olarak aşağıdakileri unutmayın: - Dönüşümler şulardan biri veya daha fazlası için geçerli olabilir: mevcut proje, alt projeler ve harici kitaplıklar.
- Dönüşümler, tüm varyantlara uygulanacak şekilde global olarak kaydedilmelidir.
- Java Code Coverage Library (JaCoCo), ProGuard ve MultiDex aracılığıyla yapılan dahili kod işleme artık Transform API'yi kullanıyor. Ancak Java Android Derleyici Kiti (Jack) bu API'yi kullanmaz. Yalnızca
javac/dx
kod yolu bu API'yi kullanır. - Gradle, dönüştürme işlemlerini şu sırayla yürütür: JaCoCo, üçüncü taraf eklentileri, ProGuard. Üçüncü taraf eklentilerinin yürütme sırası, dönüştürme işlemlerinin üçüncü taraf eklentileri tarafından eklenme sırasıyla eşleşir. Üçüncü taraf eklenti geliştiricileri, dönüştürme işlemlerinin yürütme sırasını API üzerinden kontrol edemez.
ApplicationVariant
sınıfındakidex
alıcısının desteği sonlandırıldı. Artık bir dönüştürme işlemiyle gerçekleştirildiği içinDex
görevine artık varyant API'si üzerinden erişemezsiniz. Şu anda dex sürecini kontrol etmenin alternatifi yoktur.- Öğeler için artımlı destek düzeltildi.
- MultiDex desteği, test projeleri için kullanıma sunulduğundan iyileştirildi ve testler artık otomatik olarak
com.android.support:multidex-instrumentation
bağımlılıklarına sahip. - Gradle derlemesi eşzamansız görevleri çağırdığında ve çalışan işleminde hata oluştuğunda Gradle derlemesinde doğru şekilde başarısız olma ve temel hatanın nedenini bildirme özelliği eklendi.
- Birden fazla ABI içeren varyantlarda belirli bir Uygulama İkili Arabirimi'ni (ABI) yapılandırma desteği eklendi.
- Testleri yüklerken veya çalıştırırken
ANDROID_SERIAL
ortam değişkeni için virgülle ayrılmış cihaz seri numarası listesi desteği eklendi. - Android 5.0 (API seviyesi 20) ve sonraki sürümleri çalıştıran cihazlarda APK adında boşluk bulunduğunda yaşanan yükleme hatası düzeltildi.
- Android Öğe Paketleme Aracı (AAPT) hata çıkışıyla ilgili çeşitli sorunlar düzeltildi.
- Daha hızlı artımlı derlemeler için JaCoCo artımlı enstrümantasyon desteği eklendi. Gradle için Android eklentisi artık JaCoCo enstrümanını doğrudan çağırıyor. JaCoCo enstrümanının daha yeni bir sürümünü kullanmak için bu sürümü derleme komut dosyası bağımlılığı olarak eklemeniz gerekir.
- Sınıf olmayan dosyaları yoksayacak şekilde JaCoCo desteği düzeltildi.
- Geriye dönük uyumluluk için derleme sırasında PNG oluşturmak üzere vektör çizilebilir öğe desteği eklendi.
Gradle için Android eklentisi, bir API sürümü belirtmeyen veya uygulama manifestindeki
<uses-sdk>
öğesinde 20 veya daha düşük birandroid:minSdkVersion
özelliği belirten bir kaynak dizininde bulunan her vektör çizilebilir öğe için PNG oluşturur. PNG yoğunluklarını,build.gradle
dosyasınındefaultConfig
veyaproductFlavor
bölümlerindekigeneratedDensities
mülkünü kullanarak ayarlayabilirsiniz. - Eklenti tarafından yalnızca bir kez oluşturulan ve birim testi için kullanılan, taklit edilebilir
android.jar
öğesinin paylaşımı eklendi.app
velib
gibi birden fazla modül artık bu özelliği paylaşıyor. Yeniden oluşturmak için$rootDir/build
dosyasını silin. - Java kaynaklarının işlenmesi, APK paketlenirken yerine karartma işlemlerinden önce gerçekleşecek şekilde değiştirildi. Bu değişiklik, karartma görevlerinin paket karartma işleminden sonra Java kaynaklarını uyarlama şansı elde etmesini sağlar.
- Deneme amaçlı kitaplık eklentisinde Java Native Interface (JNI) kodunun kullanılmasıyla ilgili bir sorun düzeltildi.
- Deneysel kitaplık eklentisinde platform sürümünü
android:compileSdkVersion
özelliğinden ayrı olarak ayarlama özelliği eklendi.
android { dataBinding { enabled = true } }
android { dataBinding { enabled = true } }
- Veri Bağlama eklentisi, Gradle için Android eklentisine entegre edildi. Bu özelliği etkinleştirmek için, eklentiyi kullanan her projeye ait
Gradle için Android eklentisi, 1.3.1 düzeltmesi (Ağustos 2015)
Bağımlılıklar:- Gradle 2.2.1 veya sonraki sürümler.
- Derleme Araçları 21.1.1 veya sonraki sürümler.
- Özelleştirilmiş bir dosya adı kullanıldığında önceki görevin çıkışını doğru şekilde kullanması için ZipAlign görevi düzeltildi.
- NDK ile Renderscript paketleme sorunu düzeltildi.
createDebugCoverageReport
derleme görevi için destek sürdürüldü.build.gradle
derleme dosyasındaarchiveBaseName
özelliğinin özelleştirilmiş kullanımıyla ilgili destek düzeltildi.- Android Studio dışında lint çalıştırıldığında parametre yöntemi ek açıklama aramasından kaynaklanan
Invalid ResourceType
lint uyarısı düzeltildi.
Gradle için Android eklentisi, 1.3.0 düzeltmesi (Temmuz 2015)
Bağımlılıklar:- Gradle 2.2.1 veya sonraki sürümler.
- Derleme Araçları 21.1.1 veya sonraki sürümler.
-
gradle.properties
dosyasından veya komut satırındanAndroid
görev iş parçacığı havuzu boyutunu kontrol etmek içincom.android.build.threadPoolSize
mülkü için destek eklendi. Aşağıdaki örnekte bu özellik 4 olarak ayarlanmıştır.-Pcom.android.build.threadPoolSize=4
- Varsayılan derleme davranışını,
LICENSE
veLICENSE.txt
dosyalarını APK'lardan hariç tutacak şekilde ayarlayın. Bu dosyaları bir APK'ya dahil etmek içinbuild.gradle
dosyasında bu dosyalarıpackagingOptions.excludes
mülkünden kaldırın. Örnek:android { packagingOptions.excludes = [] }
android { packagingOptions.excludes.clear() }
- Mevcut tüm kaynak kümelerini incelemek için
sourceSets
görevi eklendi. - Çok lezzetli ve
derleme varyantı kaynak klasörlerini tanımak için geliştirilmiş birim testi desteği. Örneğin,
Debug
derleme türüne sahip çok çeşitliflavor1
veflavorA
sürümlerine sahip bir uygulamayı test etmek için test kaynak kümeleri şunlardır:- test
- testFlavor1
- testFlavorA
- testFlavor1FlavorA
- testFlavor1FlavorADebug
Android testleri, çok çeşitli kaynak klasörlerini zaten tanımaktadır.
- Birim testi desteği aşağıdakiler için iyileştirilmiştir:
- Derleme dosyanızda
useJack
özelliğitrue
olarak ayarlanmış olsa bilejavac
'ü ana ve test kaynaklarında çalıştırın. - Her derleme türü için bağımlılıkları doğru şekilde tanır.
- Derleme dosyanızda
- Komut satırından enstrümantasyon test çalıştırıcı bağımsız değişkenlerini belirtme desteği eklendi.
Örneğin:
./gradlew connectedCheck \ -Pandroid.testInstrumentationRunnerArguments.size=medium \ -Pandroid.testInstrumentationRunnerArguments.class=TestA,TestB
build.gradle
dosyasında isteğe bağlı ek Android Asset Packaging Tool (AAPT) parametreleri için destek eklendi. Örnek:android { aaptOptions { additionalParameters "--custom_option", "value" } }
android { aaptOptions { additionalParameters += listOf("--custom_option", "value") } }
- APK yolunu ve hedef varyantı ayarlamak için
targetProjectPath
vetargetVariant
özelliklerini kullanarak ayrı bir test modülü olarak test APK modülü desteği eklendi.Not: Test APK modülü ürün varyantlarını desteklemez ve yalnızca tek bir varyantı hedefleyebilir. Ayrıca Jacoco henüz desteklenmiyor.
- Kaynakları birleştirme işleminden önce kaynak adı doğrulaması eklendi.
- Kitaplık modülleri için AAR (Android Arşivi) paketi oluştururken manifest birleştirme ayarlarında otomatik bir
@{applicationId}
yer tutucu sağlamayınız. Bunun yerine,@{libApplicationId}
gibi farklı bir yer tutucu kullanın ve arşiv kitaplığına uygulama kimlikleri eklemek istiyorsanız bu yer tutucu için bir değer sağlayın.
Gradle için Android eklentisi, 1.2.0 düzeltmesi (Nisan 2015)
- Bağımlılıklar:
-
- Gradle 2.2.1 veya sonraki sürümler.
- Derleme Araçları 21.1.1 veya sonraki sürümler.
- Genel Notlar:
-
- Gradle ile birim testleri çalıştırmak için geliştirilmiş destek.
- Birim testleri doğrudan Gradle'den çalıştırırken Java tarzı kaynakları sınıf yoluna dahil etme desteği eklendi.
- Android Arşivi (AAR) yapıları için birim testi bağımlılık desteği eklendi.
- Birim testi varyantlarının
build.gradle
dosyası kullanılarak değiştirilebilmesi içinunitTestVariants
özelliği için destek eklendi. - Birim testi için özelleştirilmiş görevleri yapılandırmak üzere
testOptions
altındaunitTest.all
kod bloğu eklendi. Aşağıdaki örnek kodda, bu yeni seçenek kullanılarak birim testi yapılandırma ayarlarının nasıl ekleneceği gösterilmektedir:android { testOptions { unitTest.all { jvmArgs '-XX:MaxPermSize=256m' // Or any other gradle option. } } }
android { testOptions { unitTest.all { jvmArgs += listOf("-XX:MaxPermSize=256m") // Or any other gradle option. } } }
mockable-android.jar
dosyasının paketlenmesinde enum'ların ve herkese açık örnek alanlarının işlenmesi düzeltildi.- Kitaplık proje görev bağımlılıkları düzeltildi. Böylece test sınıfları, değişikliklerden sonra yeniden derlenecek.
- Test APK'sını küçütürken ProGuard dosyalarını uygulamak için
testProguardFile
mülkü eklendi. - Android Debug Bridge ekran kaydı için maksimum kayıt süresini ayarlamak amacıyla
adbOptions
kod bloğunatimeOut
mülkü eklendi. - 280 dpi kaynaklar için destek eklendi.
- Proje değerlendirmesi sırasında performansı artırma
- Gradle ile birim testleri çalıştırmak için geliştirilmiş destek.
Gradle için Android eklentisi, 1.1.3 düzeltmesi (Mart 2015)
- Bağımlılıklar:
-
- Gradle 2.2.1 veya sonraki sürümler.
- Derleme Araçları 21.1.1 veya sonraki sürümler.
- Genel Notlar:
-
- Test uygulamasında ProGuard hatası tetikleyen yinelenen bağımlılıklarla ilgili sorun düzeltildi.
- JDK Comparator sözleşmesine uymayan ve JDK 7 hatası oluşturan Comparator uygulaması düzeltildi.
Gradle için Android eklentisi, 1.1.2 düzeltmesi (Şubat 2015)
- Bağımlılıklar:
-
- Gradle 2.2.1 veya sonraki sürümler.
- Derleme Araçları 21.1.1 veya sonraki sürümler.
- Genel Notlar:
-
- Birim testi için taklit edilebilir bir JAR oluştururken normalleştirilmiş yol.
build.gradle
dosyasındaarchivesBaseName
ayarı düzeltildi.- Kitaplık test uygulaması oluştururken manifest birleştirme işleminde çözülmemiş yer tutucu hatası düzeltildi.
Gradle için Android eklentisi, 1.1.1 düzeltmesi (Şubat 2015)
- Bağımlılıklar:
-
- Gradle 2.2.1 veya sonraki sürümler.
- Derleme Araçları 21.1.1 veya sonraki sürümler.
- Genel Notlar:
-
- Derleme varyantları, yalnızca Wear uygulaması paketleyen varyantların Wear'a özgü derleme görevlerini tetiklemesi için değiştirildi.
- Bağımlılıkla ilgili sorunlar, hata ayıklama zamanında değil, derleme zamanında başarısız olacak şekilde değiştirildi. Bu davranış, çatışmayı çözmenize yardımcı olacak teşhis görevleri ("bağımlılıklar" gibi) çalıştırmanıza olanak tanır.
android.getBootClasspath()
yönteminin değer döndürecek şekilde düzeltildi.
Gradle için Android eklentisi, 1.1.0 düzeltmesi (Şubat 2015)
- Bağımlılıklar:
-
- Gradle 2.2.1 veya sonraki sürümler.
- Derleme Araçları 21.1.1 veya sonraki sürümler.
- Genel Notlar:
-
- Yeni birim testi desteği eklendi
- Yerel JVM'de
android.jar
dosyasının Mockito gibi popüler taklit çerçeveleriyle uyumlu özel bir sürümüne karşı çalıştırılacak birim testlerini etkinleştirdi. - Ürün varyantları kullanıldığında yeni test görevleri
testDebug
,testRelease
vetestMyFlavorDebug
eklendi. - Birim testi olarak tanınan yeni kaynak klasörler eklendi:
src/test/java/
,src/testDebug/java/
,src/testMyFlavor/java/
. - Yalnızca test amaçlı bağımlılıkların (ör.
testCompile 'junit:junit:4.11'
,testMyFlavorCompile 'some:library:1.0'
) bildirilmesi içinbuild.gradle
dosyasına yeni yapılandırmalar eklendi.Not: Yalnızca test için kullanılan bağımlılar şu anda Jack (Java Android Derleyici Kiti) ile uyumlu değildir.
- Taklit edilebilir android.jar dosyasının davranışını kontrol etmek için
android.testOptions.unitTests.returnDefaultValues
seçeneği eklendi. - Test görev adlarındaki
Test
,AndroidTest
ile değiştirildi. Örneğin,assembleDebugTest
görevi artıkassembleDebugAndroidTest
görevidir. Birim test görevlerinde görev adındaUnitTest
(ör.assembleDebugUnitTest
) yer almaya devam eder. - ProGuard yapılandırma dosyalarını, artık test APK'sı için geçerli olmayacak şekilde değiştirin. Kod sıkıştırma etkinse ProGuard, test APK'sını işler ve yalnızca ana APK sıkıştırılırken oluşturulan eşleme dosyasını uygular.
- Güncellenen bağımlılık yönetimi
provided
vepackage
kapsamlarını kullanmayla ilgili sorunlar düzeltildi.Not: Bu kapsamlar AAR (Android ARchive) paketleriyle uyumlu değildir ve AAR paketleri içeren bir derlemenin başarısız olmasına neden olur.
- Test edilen uygulamanın ve test uygulamasının bağımlılıklarını karşılaştırmak için bağımlılık çözümü değiştirildi. Her iki uygulama için de aynı sürüme sahip bir yapı bulunursa bu yapı test uygulamasına dahil edilmez ve yalnızca test edilen uygulamayla paketlenir. Her iki uygulama için de farklı bir sürüme sahip bir yapı bulunursa derleme başarısız olur.
- Kaynak birleştirme işleminde
anyDpi
kaynak niteleyici için destek eklendi. - Çok sayıda Android modülü içeren projeler için değerlendirme ve IDE senkronizasyon hızları iyileştirildi.
Gradle için Android eklentisi, 1.0.1 düzeltmesi (Ocak 2015)
- Bağımlılıklar:
-
-
Gradle 2.2.1 ile 2.3.x arasındaki sürümler.
Not: Gradle için Android eklentisinin bu sürümü, Gradle 2.4 ve sonraki sürümlerle uyumlu değildir.
- Derleme Araçları 21.1.1 veya sonraki sürümler.
-
- Genel Notlar:
-
extractReleaseAnnotations
modülüne erişirken Gradle derleme hatasıyla ilgili sorun düzeltildi. (81638 numaralı sorun).Disable
'ün--no-optimize
ayarını Dalvik yürütülebilir (dex) koduna iletmesiyle ilgili sorun düzeltildi. (Sayı 82662).targetSdkVersion
değeri 16'dan az olan kitaplıkların içe aktarılmasında manifest birleştirme sorunları düzeltildi.- Android Studio'yu JDK 8 ile kullanırken yoğunluk sıralaması sorunu düzeltildi.
Gradle için Android eklentisi, 1.0.0 düzeltmesi (Aralık 2014)
- Bağımlılıklar:
-
-
Gradle 2.2.1 ile 2.3.x arası sürümler.
Not: Gradle için Android eklentisinin bu sürümü, Gradle 2.4 ve sonraki sürümlerle uyumlu değildir.
- Derleme Araçları 21.1.1 veya sonraki sürümler.
-
- Genel Notlar:
-
- İlk eklenti sürümü.