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/winscope
Bağımlılıkları yüklemek için:
npm install
Kullanılabilir komutların listesini görmek için şu komutu çalıştırın:
npm run
Aşağıdakileri kullanarak tüm üretim ve test hedeflerini oluşturun:
npm run build:prod
Winscope'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 çalıştırma 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-intdefs
oluşturun:mp :framework-minus-apex-intdefs
Oluşturulan
intDefMapping.json
dosyası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.json
repo upload
kullanarak Winscope'taki değişiklikleri yükleyin.
Diğer komutlar
Winscope komut dosyaları, derleme ve testlerin yanı sıra 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 null
Bu 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:protos
kullanarak Winscope'taki proto'ları yeniden derleyin.
Yüklenen bazı bağımlılık sürümleri yanlış (derleme başarısız oluyor)
package.json
vepackage-lock.json
hizmetlerinde yapılan değişiklikleri geri alın.node_modules
öğesini kaldırın.npm install
komutunu 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:protos
kullanarak 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