Winscope'u çalıştırma

Winscope izleme, Android çerçevesinin bir parçasıdır. Bu sayfada, Winscope izleme görüntüleyicisini yerel olarak indirmek, oluşturmak ve çalıştırmak için gereken adımlar özetlenmiştir.

Winscope'u yerel olarak derleme

PC'nizi Winscope izleyicisini çalıştıracak şekilde ayarlamak için aşağıdaki adımları uygulayın:

  1. Android kaynağını indirin.
  2. Winscope klasörüne gidin:

    cd development/tools/winscope
    
  3. Bağımlılıkları şu şekilde yükleyin:

    npm install
    

    Kullanılabilir komutların listesini görmek için: npm run

  4. Aşağıdakileri kullanarak tüm üretim ve test hedeflerini oluşturun:

    npm run build:prod
    
  5. Winscope'u şu şekilde çalıştırın:

    npm run start
    

Ayrı parçalar oluşturma

Winscope'un ayrı parçalarını aşağıdaki komutları kullanarak ayrı ayrı oluşturabilirsiniz:

Komut Açıklama
build:trace_processor Perfetto'nun trace_processor aracının en son sürümünü kontrol edip yeniden oluşturur.
build:protos Proto tanımlarını yeniden derleyin.

Test çalıştırma

Winscope, birim ve uçtan uca testler içerir. Bunları çalıştırmak için npm run <command>'ü kullanın:

Komut Açıklama
test:unit:ci Birim testlerini CI
veya göndermeden önce kanca için daha az ayrıntılı bir biçimde çalıştırır.
test:unit:dev Birim testlerini yerel geliştirme için daha ayrıntılı bir biçimde çalıştırır.
Bu mod, değişiklikleri izler ve doğru testleri otomatik olarak yeniden çalıştırır.
test:e2e Araç arası protokol için olanlar gibi uçtan uca testleri çalıştırır.
test:presubmit:quiet Tüm göndermeden önce birim testlerini, linters'i ve grafik analizini CI veya göndermeden önce kancası için daha az ayrıntılı bir biçimde oluşturur.

test:presubmit Göndermeden önce tüm birim testlerini, linters'i ve grafik analizini yerel geliştirme için daha ayrıntılı bir biçimde oluşturur.

test:all Yerel geliştirme için tüm testleri (birim ve uçtan uca), linters'i ve grafik analizini daha ayrıntılı bir biçimde çalıştırır.

@IntDef eşlemesini güncelleme

@IntDef, Android'de bir tam sayının olası değerlerini kısıtlamak için kullanılan bir ek açıklamadır. Winscope, tam sayı yerine değerin adını görüntülemek için bu ek açıklamaların eşlemesini kullanır.

@IntDef eşlemesini güncellemek için aşağıdakileri yapın:

  1. Ek açıklama ön işlemcisinin çalışması için :framework-minus-apex-intdefs'ü derleyin:

    mp :framework-minus-apex-intdefs
    
  2. Oluşturulan intDefMapping.json dosyasını önceden derlenmiş paketler deposuna kopyalayın:

    $ python3 -c 'import sys,json,collections; print(json.dumps(collections.OrderedDict(sorted(collections.ChainMap(*map(lambda x:json.load(open(x)), sys.argv[1:])).items())), indent=2))' $(find out/soong/.intermediates/frameworks/base -iname intDefMapping.json) > ./development/tools/winscope/src/common/intDefMapping.json
    
  3. repo upload simgesini kullanarak Winscope'a değişiklikleri yükleyin.

Diğer komutlar

Winscope komut dosyaları, derleme ve testlere ek olarak tabloda gösterildiği gibi başka özellikler de içerir. Bunları çalıştırmak için npm run command'ü kullanın:

Komut Açıklama
format:check prettier kullanarak kod biçimlendirme sorunlarını kontrol eder.
format:fix prettier'ü kullanarak kod biçimlendirme sorunlarını kontrol eder ve otomatik olarak düzeltir.
eslint:check eslint kullanarak kod biçimlendirme sorunlarını kontrol eder.
eslint:fix eslint'ü kullanarak kod biçimlendirme sorunlarını kontrol eder ve otomatik olarak düzeltir.
tslint:check tslint kullanarak kod biçimlendirme sorunlarını kontrol eder.
tslint:fix tslint'ü kullanarak kod biçimlendirme sorunlarını kontrol eder ve otomatik olarak düzeltir.
deps_graph:check_cycles Kodu döngüsel bağımlılıklar açısından analiz eder.

Sorunu giderin

Sorun giderme için aşağıdaki ipuçlarını kullanın:

  • ProtocolError: missing required '<FIELD>' veya TypeError: Cannot read property '<PROP>' of null hatası

    • Bu durum, izleme dosyası yeni zorunlu alanlar içeren yeni bir proto tanımı ile oluşturulduğunda ortaya çıkar.

      1. İzlemeyi doğru Winscope sürümünde (ana, S veya R) açtığınızdan emin olun.
      2. Proto üzerinde yeni alanı oluşturursanız npm run build:protos kullanarak Winscope'ta protoları yeniden derleyin.

  • Yüklü bazı bağımlılık sürümleri yanlış (derleme başarısız)

    • package.json ve package-lock.json için değişiklikleri geri alın. node_modules öğesini kaldırın. npm install'ü tekrar çalıştırın.
  • Proto dosyalarından birine yeni bir alan ekledim. Nasıl gösterebilirim?

    • Winscope, derlendiği zamanki proto tanımlarını kullanır. Bu nedenle yeni alanlar varsayılan olarak görünmez. Yeni alanları göstermek için npm run build:protos kullanarak prototipi yeniden oluşturun.