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:
- Android kaynağını indirin.
Winscope klasörüne gidin:
cd development/tools/winscope
Bağımlılıkları şu şekilde yükleyin:
npm install
Kullanılabilir komutların listesini görmek için:
npm run
Aşağıdakileri kullanarak tüm üretim ve test hedeflerini oluşturun:
npm run build:prod
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:
Ek açıklama ön işlemcisinin çalışması için
:framework-minus-apex-intdefs
'ü derleyin:mp :framework-minus-apex-intdefs
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
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>'
veyaTypeError: 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.
- İzlemeyi doğru Winscope sürümünde (ana, S veya R) açtığınızdan emin olun.
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
vepackage-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.
- 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