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 özetlenmektedir.
Winscope'u yerel olarak derleme
Bilgisayarınızı Winscope izleyiciyi çalıştıracak şekilde ayarlamak için aşağıdaki adımları uygulayın:
- Android kaynağını indirin.
Winscope klasörüne gidin:
cd development/tools/winscopeBağımlılıkları yüklemek için:
npm installKullanılabilir komutların listesini görmek için şu komutu çalıştırın:
npm runAşağıdakileri kullanarak tüm üretim ve test hedeflerini oluşturun:
npm run build:prodWinscope'u çalıştırmak için:
npm run start
Ayrı parçalar oluşturma
Aşağıdaki komutları kullanarak Winscope'un bağımsız bölümlerini ayrı ayrı oluşturabilirsiniz:
| Komut | Açıklama |
|---|---|
build:trace_processor |
Perfetto'nun trace_processor en son sürümünü kullanır ve yeniden oluşturur. |
build:protos |
Proto tanımlarını yeniden derler. |
Testler yapın
Winscope, birim ve uçtan uca testleri içerir. Bunları çalıştırmak için npm run
<command> kullanın:
| Komut | Açıklama |
|---|---|
test:unit:ci |
CI veya göndermeden önce kancası için birim testlerini 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çlar arası protokol gibi uçtan uca testleri çalıştırır. |
test:presubmit:quiet |
CI veya göndermeden önce kancası için tüm göndermeden önce birim testlerini, linters'ı ve grafik analizini daha az ayrıntılı bir biçimde oluşturur. |
test:presubmit |
Yerel geliştirme için tüm gönderme öncesi birim testlerini, linters'ları ve grafik analizini 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 ve grafik analizini daha ayrıntılı bir biçimde çalıştırır. |
Uçtan uca testler
Uçtan uca testleri çalıştırmadan önce uzaktan aracı başlatmanız ve Chrome sürücüsünün doğru sürümünü yüklemeniz gerekir. Aşağıdaki kod snippet'inde run test:e2e komutu, Chrome sürücüsünü otomatik olarak yükler.
$ npm run start
$ npm run start:remote_tool_mock
$ npm run test:e2e
Aşağıdaki tabloda gerekli komutlar ve açıklamaları listelenmiştir. Bunları çalıştırmak için npm run command kullanın:
| Komut | Açıklama |
|---|---|
start:remote_tool_mock |
Araçlar arası protokolü test etmek için uzaktan araç taklidini başlatır. |
install:chromedriver |
Uçtan uca testleri çalıştırmak için gerekli olan Chrome sürücüsünü yükler. |
@IntDef eşlemesini güncelleme
@IntDef, bir tam sayının olası değerlerini kısıtlamak için Android'de kullanılan bir ek açıklamadır. Winscope, tam sayı yerine değerin adını göstermek için bu notların bir eşlemesini kullanır.
@IntDef eşlemesini güncellemek için aşağıdakileri yapın:
Ek açıklama ön işlemcisinin çalışması için
:framework-minus-apex-intdefsoluşturun:mp :framework-minus-apex-intdefsOluşturulan
intDefMapping.jsondosyasını önceden oluşturulmuş öğeler 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.jsonrepo uploadkullanarak Winscope'taki 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çimlendirmeyle ilgili sorunları kontrol eder. |
format:fix |
prettier kullanarak kod biçimlendirmeyle ilgili sorunları kontrol eder ve otomatik olarak düzeltir. |
eslint:check |
eslint kullanarak kod biçimlendirmeyle ilgili sorunları kontrol eder. |
eslint:fix |
eslint kullanarak kod biçimlendirmeyle ilgili sorunları kontrol eder ve otomatik olarak düzeltir. |
tslint:check |
tslint kullanarak kod biçimlendirmeyle ilgili sorunları kontrol eder. |
tslint:fix |
tslint kullanarak kod biçimlendirmeyle ilgili sorunları kontrol eder ve otomatik olarak düzeltir. |
deps_graph:check_cycles |
Döngüsel bağımlılıklar için kodu analiz eder. |
Sorunu giderin
Sorun giderme için aşağıdaki ipuçlarını kullanın:
Hata
ProtocolError: missing required '<FIELD>'veyaTypeError: Cannot read property '<PROP>' of nullBu durum, izleme dosyası yeni zorunlu alanlar içeren yeni bir proto tanımıyla oluşturulduğunda meydana gelir.
- İzi doğru Winscope sürümünde (master, S veya R) açtığınızdan emin olun.
Yeni alanı proto üzerinde oluşturursanız
npm run build:protoskullanarak Winscope'taki proto'ları yeniden derleyin.
Yüklenen bazı bağımlılık sürümleri yanlış (derleme başarısız oluyor)
package.jsonvepackage-lock.jsonhizmetlerinde yapılan değişiklikleri geri alın.node_modulesöğesini kaldırın.npm installkomutunu tekrar çalıştırın.
Proto dosyalarından birine yeni bir alan ekledim. Bu bilgiyi nasıl gösterebilirim?
- Winscope, derlendiği zamandaki proto tanımlarını kullandığından yeni alanlar varsayılan olarak görünmez. Yeni alanları göstermek için
npm run build:protoskullanarak proto'ları yeniden oluşturun.
- Winscope, derlendiği zamandaki proto tanımlarını kullandığından yeni alanlar varsayılan olarak görünmez. Yeni alanları göstermek için