Android Studio Hedgehog | 1.1.2023 (Kasım 2023)

Android Studio Hedgehog'daki yeni özellikleri aşağıda bulabilirsiniz.

IntelliJ IDEA 2023.1 platform güncellemesi

Android Studio Hedgehog, aşağıdakileri içeren IntelliJ IDEA 2023.1 güncellemelerini Studio IDE deneyimi. Değişikliklerle ilgili ayrıntılar için IntelliJ IDEA 2023.1 sürüm notları.

Uygulama Kalitesi Analizleri'nde Android vitals'ı analiz etme

Uygulama Kalitesi Analizleri artık şunları içeriyor: Android vitals verilerine daha kolay erişebilmeniz için temel metriklerinize göre toplayarak kullanıcı deneyiminizi iyileştirebilirsiniz. Tekliflerinizi otomatikleştirmek ve optimize etmek için Android vitals'ın uygulama kararlılığıyla ilgili sorunları gidererek kalitesine bakarız.

Android vitals sorunlarını görüntüleyebilir, filtreleyebilir ve yığın izlemeden Uygulama Kalitesi Analizleri araç penceresinden ekleyebilirsiniz. Başlamak için şu adımları uygulayın:

  1. Android Studio'da profil simgesini kullanarak geliştirici hesabınızda oturum açın benzer seviyede tıklayın.
  2. Araç penceresini tıklayarak Uygulama Kalitesi Analizleri'ni açın. Android Studio'ya giderek veya Görünüm > Araç Pencereleri > Uygulama Kalitesi Analizleri.
  3. Uygulama Kalitesi Analizleri'nde Android vitals sekmesini tıklayın.

Android vitals ve Crashlytics arasındaki farklı sayılar

Android vitals ve Crashlytics'in Aynı kilitlenmeyle ilişkili kullanıcı ve etkinlik sayısı. Bu tutarsızlıklar bunun nedeni Play ve Crashlytics'in kilitlenmeleri farklı zamanlarda yararlanabilirsiniz. Play ve Crashlytics'in neden başarılı olduğunu sayılar farklılık gösterebilir:

  • Play, açılma zamanından itibaren kilitlenmeleri yakalar, Crashlytics ise bunu yakalar kilitlenmeler olduğunu tespit ettik.
  • Kullanıcılar yeni bir telefon aldıklarında kilitlenme raporlamasını devre dışı bırakırsa bu kilitlenmeler Play'e bildirilmeyen içerikler ancak Crashlytics, kilitlenmeleri uygulamanın kendi gizlilik politikanız.

Yeni Güç Profil Aracı

Güç Profili aracı, Android Studio Hedgehog'dan itibaren güç tüketimini gösterir. cihazlarda çalışır. Bu yeni verileri cihaz üzerindeki Power Rails Monitor'da (ODPM) görüntüleyebilirsiniz. ODPM, verileri Power Rails adı verilen alt sistemlere göre segmentlere ayırır. Profillenebilir elektrik hatları konusuna bakın sayfasını inceleyin.

System Trace Güç tüketimi verilerini kaydedip görüntüler. CPU profil oluşturucunun bir parçasıdır. Bu veriler, güç ve veri analizi arasındaki ilişkinizi uygulamanızda gerçekleşen işlemlerle cihazın kullanımı. Güç Profil Aracı, bu verilerin görselleştirilmesini sağlar.

Yeni Güç Profil Aracı

Yeni Güç Profil Aracı'ndaki verileri görüntülemek için Pixel 6 ve sonraki modellerde sistem takibi yapın cihaz:

  1. Görünüm > Araç Pencereleri > Profiler'a gidin.
  2. CPU zaman çizelgesi'nde herhangi bir yeri tıklayarak CPU Profiler'ı açın ve sistem izleme başlatın.

Yeni App Links Assistant, derin bağlantılarla ilgili kapsamlı bir genel bakış sunar yapılandırdığınızdan emin olun. Asistan, uygulamanın AndroidManifest.xml dosyası, bu derinlikteki yapılandırmanın bağlantılarının doğru olduğunu ve sorunu otomatik olarak düzeltmenin hızlı bir yolunu emin olun.

App Links Asistan'ı açmak için Araçlar > Uygulama Bağlantıları Asistanı: Android Studio'ya gidin. Uygulama bağlantıları hakkında daha fazla bilgi için Android App Links ekleyin.

Canlı Düzenleme manuel mod kısayolu güncellendi

Android'de Canlı Düzenleme Studio Hedgehog'da manuel mod için yeni bir kısayol bulunur (Manuel Olarak Aktar): Control+\ (macOS için Command+\). Manuel mod faydalı üzerinde tam kontrole sahip olmak istediğinizde çalışan uygulamaya dağıtıldı. Örneğin, müzakere becerilerinizi gösteren ve hiçbir ara durumun olanak tanır. Manuel Olarak Aktar ve Kaydettiğinde Manuel Olarak Aktar arasında seçim yapabilirsiniz. veya Canlı Düzenleme kullanıcı arayüzü göstergesini kullanarak yapabilirsiniz. Daha fazla Live Edit for Jetpack'teki (Jetpack için Canlı Düzenleme) video klibi izleyin Oluştur'u tıklayın.

Çoklu önizleme şablonları oluşturma

androidx.compose.ui:ui-tooling-preview 1.6.0-alpha01+ yeni Çoklu önizleme API'si şablonlar: @PreviewScreenSizes, @PreviewFontScales, @PreviewLightDark, ve @PreviewDynamicColors. Böylece tek bir ek açıklamayla, Sık karşılaşılan senaryolarda Compose kullanıcı arayüzünüzü önizleyin.

Android Studio Hedgehog'da, Aynı anda tek bir önizlemeye odaklanmanıza ve her bir önizlemeyi ayrı bir şekilde kaynak tasarrufu sağlar. Galeri modunu kullanmanızı öneririz uygulamanızın kullanıcı arayüzünde iterasyon yapmanız ve diğer modlara geçmeniz gerektiğinde ör. Izgara veya Liste gibi pek çok işlevi kullanabilirsiniz.

Hata ayıklayıcıda durum bilgilerini oluştur

Oluşturma kullanıcı arayüzünüzün bazı bölümleri beklenmedik şekilde yeniden oluşturduğunda anlamak için kısa bir açıklamasını yapın. Artık composable işlevde bir ayrılma noktası ayarlarken debugger, composable'ın parametrelerini ve bunların Böylece, bu soruna neden olmuş olabilecek değişiklikleri daha kolay bile olabilir. Örneğin, bir composable'da durduğunuzda hata ayıklayıcı size tam olarak hangi parametrelerin "Değiştirildiğini" bildirir veya "Değişmeyen" olarak kaldıysa Böylece, yeniden oluşturma işleminin nedenini daha verimli bir şekilde araştırabilirsiniz.

Cihaz yansıtma

Artık fiziksel cihazınızı Çalışan Cihazlar penceresine yansıtabilirsiniz. Android Studio'ya gidin. Cihazınızın ekranını doğrudan Android Studio'ya aktararak uygulamaları başlatma ve uygulamalarla etkileşimde bulunma, ekranı döndürme, telefonu katlama ve açma, ses seviyesini değiştirme ve doğrudan Studio IDE'sinden yararlanabilirsiniz.

Cihaz yansıtma özelliği, etkinleştirilmiş bir bilgisayarda kullanın. 24 saat boyunca Çalışan Cihazlar penceresini veya Cihaz Yöneticisi (Görünüm > Araç Pencereleri > Cihaz Yöneticisi). Ayrıca transkriptinizi Ayarlarda cihaz yansıtma etkinleştirildiğinde özelleştirin (Ayarlar > Araçlar > Cihaz Yansıtma).

Çalışan Cihazlar Kullanıcı Arayüzü

Bilinen sorunlar

Bazı cihazlar destekleme için yeterli bir bit hızında kodlama yapamayabilir. yansıtabilir. Bu tür durumlarda, Çalışanlar Cihazlar penceresinin yanı sıra aşağıda gösterilene benzer günlükler görürsünüz.

2023-06-01 15:32:22,675 [  56094]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - Too many video encoder errors:
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - encoder: c2.android.vp8.encoder
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - mime type: video/x-vnd.on2.vp8
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max resolution: 640x640
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - min resolution: 2x2
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - alignment: 2x2
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max frame rate: 960
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max frame rate for 288x640: 960
2023-06-01 15:32:22,870 [  56289]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max bitrate: 20000000
2023-06-01 15:32:22,871 [  56290]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - terminated with code 1

Gizlilik uyarısı

Cihaz yansıtma ayarlarına bağlı olarak Android Studio otomatik olarak başlatılabilir cihaz yansıtma özelliğini kullanabilirsiniz. Bu da adb tcpip komutuna bağlı cihazlar için bilgi açıklaması Bunun nedeni, yansıtma bilgilerinin ve komutların şifrelenmemiş bir yardımcı olur. Ayrıca, Android Studio, bir kullanıcı tarafından bir içerik üreticiyle iletişim kurmak için adb sunucusu ile yapılır. Böylece, yansıtılan bilgiler diğer kullanıcılar tarafından ele geçirilebilir. kontrol edin.

Donanım girişi yönlendirme

Artık iş istasyonu donanım girişlerinizin şeffaf iletimini etkinleştirebilirsiniz. bağlı fiziksel ve sanal bir cihaza bağlanabilir. Alıcı: şeffaf yönlendirmeyi etkinleştirin, Donanım girişi'ni tıklayın. Çalışan Cihazlar penceresinde hedef cihaz için.

Cihazları doğrudan Çalışan Cihazlar penceresinden yönetme

Artık Android Sanal Cihaz'ı (AVD) başlatabilir veya doğrudan Çalışan Cihazlar penceresinden fiziksel cihazınızda oturum açmak için + simgesine dokunup bir cihaz seçin. AVD'yi veya fiziksel bir cihazın yansıtmasını durdurmak için cihaz sekmesini kapatın.

Çalışan Cihazlar'daki Cihaz açılır menüsü

Gömülü Düzen Denetleyici

Android Studio Hedgehog Canary 2 sürümünden itibaren Düzen Denetleyicisi, Çalıştırılan Cihazlar araç penceresi. Bu deneysel özellik, ekranın gerçekliğini korur gösterir ve kullanıcı arayüzü hata ayıklama iş akışınızı tek bir araç penceresinde düzenlemenize yardımcı olur. İçinde görüntüleme hiyerarşisini gösterebilir, her birinin özelliklerini inceleyebilir Düzen Denetleyicisi özelliklerini görüntüleyebilir ve bu özelliklere erişebilirsiniz. Setin tamamına erişmek için istiyorsanız Düzen İnceleyici'yi bağımsız bir pencerede çalıştırmanız (Windows'da Dosya > Ayarlar > Deneysel > Düzen Denetleyicisi veya Android Studio > Ayarlar > Deneysel > Düzen İnceleyici'yi tıklayın.

Gömülü Düzen Denetleyicisi'nin bir sınırlaması, 3D modu yalnızca şuralarda kullanılabilir: anlık görüntüler.

Yerleşik Düzen Denetleyici'yi iyileştirmemize yardımcı olmak için lütfen geri bildirimlerinizi almaktan mutluluk duyarız.

Yeni kullanıcı arayüzü iyileştirmeleri

İlgili içeriği oluşturmak için kullanılan yeni kullanıcı arayüzü Android Studio, Studio'ya daha modern, daha sade bir görünüm ve tarz getiriyor. IDE. Şimdiye kadar geri bildirimlerinizi dinledik ve Android Studio Hedgehog'da aşağıdaki özellikler:

  • Kompakt mod
  • Dikey veya yatay olarak bölme desteği
  • macOS için proje sekmeleri
  • Dikkat dağıtmayan mod düzeltildi
  • Araç penceresi işlemlerinin her zaman gösterilmesi için gelişmiş ayarlar

SDK Yükseltme Asistanı güncellemeleri

SDK Yükseltme Asistanı şunları sağlar: size yardımcı olacak adım adım sihirbaz akışı targetSdkVersion yükseltmeleri gerekir. Android Studio'daki SDK Yükseltme Asistanı ile ilgili güncellemeleri burada bulabilirsiniz Kirpi:

  • Android 14'e yükseltme sırasında zarar veren değişiklikleri inceleyin
  • Bazı gereksiz adımların kaldırılması için alaka düzeyi filtreleri eklendi
  • Belirli değişikliklerde, değişikliklerin kodda tam olarak nerede olması gerektiğini belirleyin yapıldı
ziyaret edin.

Derleme optimizasyonunu yalnızca hedef API düzeyi için devre dışı bırak

Artık IDE optimizasyonunu hedef cihaz API düzeyi için devre dışı bırakabilirsiniz. Ölçüt Android Studio varsayılan olarak işlemini uygulayın. Bunu çevirmek için özelliğini kapatmak için Dosya > Ayarlar > Deneysel (Android Studio > Ayarlar > Deneysel) ve Derlemeyi hedef için optimize et" seçeneğinin işaretini kaldırın cihaz API düzeyinde kullanılabilir. Bu derleme optimizasyonunun kapatılmasının, derleme süresini uzatır.

[Yalnızca Windows] Virüsten koruma yazılımının derleme hızı üzerindeki etkisini en aza indirin

Build Analyzer, derlemenizi etkileyen bir virüsten koruma yazılımı olup olmadığını size bildirir bazı yolları da görmüştük. Bu durum, Windows Defender gibi bir antivirüs yazılımı veya , Gradle tarafından kullanılan dizinleri gerçek zamanlı olarak tarar. Derleme Analiz Aracı etkin taramanın dışında tutulacak dizinlerin bir listesini önerir. mümkünse bunları Windows Defender'a eklemek için bir bağlantı sunar. klasör hariç tutma listesi.

Eclipse Android Geliştirme Aracı projeleri artık desteklenmiyor

Android Studio Hedgehog ve sonraki sürümler Eclipse ADT'yi içe aktarmayı desteklemez bilgi edinmenizi sağlar. Bu projeleri yine açabilirsiniz ancak artık açık değiller Android projeleri olarak kabul ediliyor. Bu tür projeleri içe aktarmanız gerekiyorsa Android Studio'nun önceki bir sürümünü kullanabilirsiniz. Android’in belirli bir sürümü Studio projenizi içe aktaramıyor. İsterseniz bir önceki sürümü kullanın. Proje, Android platformu kullanılarak Android projesine dönüştürüldükten sonra Android Studio'nun önceki sürümlerinden birini kullanarak çalışmak için AGP Yükseltme Asistanı'nı Android Studio'nun son sürümünü kullanarak söz konusu projede.

Firebase Test Lab cihazlarını Gradle tarafından yönetilen cihazlarla kullanma

AGP 8.2.0-alpha03 veya daha yeni bir sürüm kullanırken otomatik araçlar geniş ölçekte test ederek Firebase Test Lab cihazları aşağıdaki durumlarda Gradle tarafından yönetilen cihazları kullanarak. Test Laboratuvarı çok çeşitli Android cihazlarda testlerinizi aynı anda çalıştırmanıza olanak tanır. hem de sanal. Bu testler uzak Google veri merkezlerinde yapılır. Entegre Gradle tarafından yönetilen cihazlardan (GMD) desteklendiğinde, derleme sistemi artık aşağıdaki yapılandırmalara göre bu Test Lab cihazlarına yönelik testler çalıştırma projelerinin Gradle dosyalarını tarar.

Gradle tarafından yönetilen Firebase Test Lab cihazlarını kullanmaya başlama

Aşağıdaki adımlarda, Firebase Test Lab cihazlarını GMD. Bu adımlarda, kullanıcı kimlik bilgilerini sağlamak için gcloud CLI'ı tüm geliştirme ortamları için geçerli olmayabilir. Proje yönetiminin ne olduğuna kimlik doğrulama işlemini nasıl uygulayacağınızı öğrenmek için Uygulama Varsayılan Kimlik Bilgileri nasıl çalışır?

  1. Firebase projesi oluşturmak için Firebase konsolu. Sonraki slayta geçin Proje ekleyin ve proje oluşturmak için ekrandaki talimatları uygulayın. Proje kimliğinizi unutmayın.

  2. Google Cloud KSA'yı yüklemek için şu sayfadaki adımları uygulayın: gcloud KSA'yı yükleyin.
  3. Yerel ortamınızı yapılandırın.
    1. gcloud'daki Firebase projenize bağlayın:
        gcloud config set project FIREBASE_PROJECT_ID
        
    2. Kullanıcı kimlik bilgilerinizin API erişimi için kullanımına yetki verin. Önerilerimiz: bir hizmet hesabı JSON dosyasını kullanarak Gradle'a Modül düzeyinde derleme komut dosyasındaki DSL:

      Kotlin

        firebaseTestLab {
          ...
          serviceAccountCredentials.set(file(SERVICE_ACCOUNT_JSON_FILE))
        }
        

      Eski

        firebaseTestLab {
          ...
          serviceAccountCredentials = file(SERVICE_ACCOUNT_JSON_FILE)
        }
        

      Alternatif olarak aşağıdaki terminali kullanarak manuel olarak yetkilendirebilirsiniz komut:

        gcloud auth application-default login
        
    3. İsteğe bağlı: Firebase projenizi kota projesi olarak ekleyin. Bu adım yalnızca Test Lab için ücretsiz kota.

        gcloud auth application-default set-quota-project FIREBASE_PROJECT_ID
        
  4. Gerekli API'leri etkinleştirin.

    Google Developers Console API Kitaplığı sayfası, etkinleştir Cloud Testing API ve Cloud Tool Results API Bu API adlarını konsol üst kısmındaki arama kutusuna yazarak, ve ardından her API'nin genel bakış sayfasında API'yi etkinleştir'i tıklayın.

  5. Android projenizi yapılandırın.

    1. Firebase Test Lab eklentisini üst düzey derleme komut dosyasına ekleyin:

      Kotlin

        plugins {
          ...
          id("com.google.firebase.testlab") version "0.0.1-alpha05" apply false
        }
        

      Eski

        plugins {
          ...
          id 'com.google.firebase.testlab' version '0.0.1-alpha05' apply false
        }
        
    2. gradle.properties dosyasında özel cihaz türlerini etkinleştirin:

        android.experimental.testOptions.managedDevices.customDevice=true
        
    3. Firebase Test Lab eklentisini modül düzeyindeki derleme komut dosyasına ekleyin:

      Kotlin

        plugins {
          ...
          id "com.google.firebase.testlab"
        }
        

      Eski

        plugins {
          ...
          id 'com.google.firebase.testlab'
        }
        

    Gradle tarafından yönetilen bir Firebase Test Lab cihazında test oluşturma ve çalıştırma

    Gradle'ın test amacıyla kullanacağı bir Firebase Test Lab cihazı belirtebilirsiniz inceleyebilirsiniz. Aşağıdaki kod örneği, Gradle tarafından yönetilen bir Test Lab cihazı olarak API düzeyi 30'u çalıştıran Pixel 3 ftlDevice firebaseTestLab {} bloğunu şurayı uyguladığınızda kullanılabilir: Modülünüze com.google.firebase.testlab eklentisi. Desteklenen minimum tutar Android Gradle Eklentisi sürümü 8.2.0-alpha01.

    Kotlin

    firebaseTestLab {
      managedDevices {
        create("ftlDevice") {
          device = "Pixel3"
          apiLevel = 30
        }
      }
      ...
    }
    

    Eski

    firebaseTestLab {
      managedDevices {
        ftlDevice {
          device = "Pixel3"
          apiLevel = 30
        }
      }
      ...
    }
    

    Testlerinizi, yapılandırdığınız Gradle tarafından yönetilen Test Lab cihazlarını kullanarak çalıştırmak için komutudur. device-name, yapılandırdığınız cihazın adıdır ftlDevice gibi bir Gradle derleme komut dosyanızdır ve BuildVariant, derleme varyantını kullanabilirsiniz. Gradle'ın test çalıştırmadığını unutmayın: Test Lab cihazları için diğer Google Cloud CLI yapılandırmalarını desteklemeli veya paralellik yapmalısınız.

    Windows'da:

    gradlew device-nameBuildVariantAndroidTest
    

    Linux veya macOS'te:

    ./gradlew device-nameBuildVariantAndroidTest
    

    Test çıkışı, test raporunun bulunduğu HTML dosyasının yolunu içerir. Siz ayrıca, test sonuçlarını kullanarak daha ayrıntılı bir analiz için Çalıştır > IDE'deki Test Geçmişi.

    Bir cihaz grubunda test oluşturma ve çalıştırma

    Testinizi ölçeklendirmek için Gradle tarafından yönetilen birden fazla Firebase Test Lab cihazını test edebilir ve tüm cihazlarda tek bir komutla test yapabilirsiniz. Şunu söyle: Aşağıdaki gibi ayarlanmış birden fazla cihazınız varsa:

    firebaseTestLab {
      managedDevices {
        create("GalaxyS23Ultra") { ... }
        create("GalaxyZFlip3") { ... }
        create("GalaxyZFold3") { ... }
        create("GalaxyTabS2") { ... }
      }
    }
    

    Bunları samsungGalaxy adlı bir cihaz grubuna eklemek için groups {} bloğunu kullanın:

    firebaseTestLab {
      managedDevices {...}
    }
    
    android {
      ...
      testOptions {
        managedDevices {
          groups {
            create("samsungGalaxy") {
              targetDevices.add(devices["GalaxyS23Ultra"])
              targetDevices.add(devices["GalaxyZFlip3"])
              targetDevices.add(devices["GalaxyZFold3"])
              targetDevices.add(devices["GalaxyTabS3"])
            }
          }
        }
      }
    }
    

    Cihaz grubundaki tüm cihazlarda test çalıştırmak için aşağıdaki komutu kullanın:

    Windows'da:

    gradlew group-nameGroupBuildVariantAndroidTest
    

    Linux veya macOS'te:

    ./gradlew group-nameGroupBuildVariantAndroidTest
    

    Akıllı parçalama ile test çalıştırmalarını optimize edin

    Gradle tarafından yönetilen Test Lab cihazlarında yapılan testler artık akıllı parçalamayı desteklemektedir. Akıllı parçalama, testlerinizi otomatik olarak parçalara dağıtır. Böylece, her bir kırık yaklaşık olarak aynı süre boyunca çalışır. Bu da manuel ayırma çalışmalarını azaltır ve toplam test çalıştırması süresidir. Akıllı parçalama, test geçmişinizi veya bilgilerinizi kullanır için testlerinizin ne kadar süre önce çalıştırıldığına dair yol açabilir. Gradle eklentisinin 0.0.1-alpha05 sürümüne ihtiyacınız olduğunu unutmayın Firebase Test Lab'in akıllı parçalama özelliğini kullanmasını sağlayın.

    Akıllı parçalamayı etkinleştirmek için her kırıkta ne kadar süre test yapılacağını belirtin belirler. Hedef parça süresini en az beş olarak ayarlamalısınız. parçanın timeoutMinutes dakikadan daha kısa olması sayesinde testler bitmeden iptal edilir.

    firebaseTestLab {
      ...
      testOptions {
        targetedShardDurationMinutes = 2
      }
    }
    

    Daha fazla bilgi edinmek için yeni DSL seçenekleri hakkında bilgi edinin.

    Gradle tarafından yönetilen Firebase Test Lab cihazları için DSL güncellendi

    Test çalıştırmalarınızı özelleştirmenize yardımcı olması için yapılandırabileceğiniz başka DSL seçenekleri vardır. diğer çözümlerden geçiş yapın. Bu seçeneklerden bazılarını inceleyin aşağıdaki kod snippet'inde açıklandığı gibidir.

    firebaseTestLab {
      ...
    
      /**
       * A path to a JSON file that contains service account credentials to access to
       * a Firebase Test Lab project.
       */
      serviceAccountCredentials.set(file("your_service_account_credentials.json"))
    
    
      testOptions {
        fixture {
          /**
           * Whether to grant permissions on the device before tests begin.
           * Available options are "all" or "none".
           *
           * Default value is "all".
           */
          grantedPermissions = "all"
    
          /**
           * Map of files to push to the device before starting the test.
           *
           * The key is the location on the device.
           * The value is the location of the file, either local or in Google Cloud.
           */
          extraDeviceFiles["/sdcard/dir1/file1.txt"] = "local/file.txt"
          extraDeviceFiles["/sdcard/dir2/file2.txt"] = "gs://bucket/file.jpg"
    
          /**
           * The name of the network traffic profile.
           *
           * Specifies network conditions to emulate when running tests.
           *
           * Default value is empty.
           */
          networkProfile = "LTE"
        }
    
        execution {
          /**
           * The maximum time to run the test execution before cancellation,
           * measured in minutes. Does not include the setup or teardown of device,
           * and is handled server-side.
           *
           * The maximum possible testing time is 45 minutes on physical devices
           * and 60 minutes on virtual devices.
           *
           * Defaults to 15 minutes.
           */
           timeoutMinutes = 30
    
          /**
           * Number of times the test should be rerun if tests fail.
           * The number of times a test execution should be retried if one
           * or more of its test cases fail.
           *
           * The max number of times is 10.
           *
           * The default number of times is 0.
           */
          maxTestReruns = 2
    
          /**
           * Ensures only a single attempt is made for each execution if
           * an infrastructure issue occurs. This doesn't affect `maxTestReruns`.
           * Normally, two or more attempts are made by Firebase Test Lab if a
           * potential infrastructure issue is detected. This is best enabled for
           * latency sensitive workloads. The number of execution failures might be
           * significantly greater with `failFast` enabled.
           *
           * Defaults to false.
           */
          failFast = false
    
          /**
           * The number of shards to split the tests across.
           * 
           * Default to 0 for no sharding.
           */
          numUniformShards = 20
    
          /**
          * For smart sharding, the target length of time each shard should takes in
          * minutes. Maxes out at 50 shards for physical devices and 100 shards for
          * virtual devices.
          *
          * Only one of numUniformShards or targetedShardDurationMinutes can be set.
          *
          * Defaults to 0 for no smart sharding.
          */
          targetedShardDurationMinutes = 15
        }
    
        results {
          /**
           * The name of the Google storage bucket to store the test results in.
           *
           * If left unspecified, the default bucket is used.
           *
           * Please refer to Firebase Test Lab permissions for required permissions
           * for using the bucket.
           */
          cloudStorageBucket = "bucketLocationName"
    
          /**
           * Name of test results for the Firebase console history list.
           * All tests results with the same history name are grouped
           * together in the Firebase console in a time-ordered test history list.
           *
           * Defaults to the application label in the APK manifest in Flank/Fladle.
           */
          resultsHistoryName = "application-history"
    
          /**
           * List of paths to copy from the test device's storage to the test
           * results folder. These must be absolute paths under /sdcard or
           * /data/local/tmp.
           */
          directoriesToPull.addAll(
            "/sdcard/path/to/something"
          )
    
          /**
           * Whether to enable video recording during the test.
           *
           * Disabled by default.
           */
          recordVideo = false
    
          /**
           * Whether to enable performance metrics. If enabled, monitors and records
           * performance metrics such as CPU, memory, and network usage.
           *
           * Defaults to false.
           */
          performanceMetrics = true
        }
      }
    }