Pelacakan Winscope adalah bagian dari framework Android. Halaman ini menguraikan langkah-langkah yang diperlukan untuk mendownload, mem-build, dan menjalankan penampil rekaman aktivitas Winscope secara lokal.
Mem-build Winscope secara lokal
Ikuti langkah-langkah berikut untuk menyiapkan PC Anda guna menjalankan pelacak Winscope:
- Download sumber Android.
Buka folder Winscope:
cd development/tools/winscope
Instal dependensi menggunakan:
npm install
Untuk melihat daftar perintah yang tersedia, jalankan:
npm run
Build semua target produksi dan pengujian menggunakan:
npm run build:prod
Jalankan Winscope menggunakan:
npm run start
Membuat bagian terpisah
Anda dapat mem-build setiap bagian Winscope secara terpisah menggunakan perintah berikut:
Perintah | Deskripsi |
---|---|
build:trace_processor |
Memeriksa dan mem-build ulang versi terbarutrace_processor Perfetto. |
build:protos |
Mengompilasi ulang definisi proto. |
Menjalankan pengujian
Winscope berisi pengujian unit dan menyeluruh. Untuk menjalankannya, gunakan npm run
<command>
:
Perintah | Deskripsi |
---|---|
test:unit:ci |
Menjalankan pengujian unit dalam format yang lebih ringkas untuk hook presubmit
atau CI . |
test:unit:dev |
Menjalankan pengujian unit dalam format yang lebih panjang untuk pengembangan lokal. Mode ini memantau perubahan dan otomatis menjalankan ulang pengujian yang benar. |
test:e2e |
Menjalankan pengujian menyeluruh, seperti pengujian untuk protokol lintas alat . |
test:presubmit:quiet |
Mem-build semua pengujian unit pra-pengiriman, linter, dan analisis
grafik dalam format yang lebih ringkas untuk hook CI atau presubmit . |
test:presubmit |
Mem-build semua pengujian unit pra-pengiriman, linter, dan analisis grafik dalam format yang lebih panjang untuk pengembangan lokal. |
test:all |
Menjalankan semua pengujian (unit dan menyeluruh), linter, dan analisis grafik dalam format yang lebih panjang untuk pengembangan lokal. |
Memperbarui pemetaan @IntDef
@IntDef
adalah anotasi yang digunakan di Android untuk membatasi kemungkinan nilai
bilangan bulat. Winscope menggunakan pemetaan anotasi ini untuk menampilkan nama
nilai, bukan bilangan bulat.
Untuk memperbarui pemetaan @IntDef
, lakukan hal berikut:
Build
:framework-minus-apex-intdefs
agar preprosesor anotasi berjalan:mp :framework-minus-apex-intdefs
Salin file
intDefMapping.json
yang dihasilkan ke repositori bawaan:$ 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
Upload perubahan di Winscope menggunakan
repo upload
.
Perintah lainnya
Selain build dan pengujian, skrip Winscope berisi kemampuan lain, seperti
yang ditunjukkan dalam tabel. Untuk menjalankannya, gunakan npm run command
:
Perintah | Deskripsi |
---|---|
format:check |
Memeriksa masalah pemformatan kode menggunakan prettier . |
format:fix |
Memeriksa dan memperbaiki masalah pemformatan kode secara otomatis menggunakan prettier . |
eslint:check |
Memeriksa masalah pemformatan kode menggunakan eslint . |
eslint:fix |
Memeriksa dan memperbaiki masalah pemformatan kode secara otomatis menggunakan eslint . |
tslint:check |
Memeriksa masalah pemformatan kode menggunakan tslint . |
tslint:fix |
Memeriksa dan memperbaiki masalah pemformatan kode secara otomatis menggunakan tslint . |
deps_graph:check_cycles |
Menganalisis kode untuk dependensi siklus. |
Memecahkan masalah
Gunakan tips berikut untuk memecahkan masalah:
Error
ProtocolError: missing required '<FIELD>'
atauTypeError: Cannot read property '<PROP>' of null
Hal ini terjadi saat file rekaman aktivitas dibuat dengan definisi proto baru, yang berisi kolom wajib baru.
- Pastikan Anda membuka rekaman aktivitas pada versi Winscope yang benar (master, S, atau R).
Jika Anda membuat kolom baru di proto, kompilasi ulang proto di Winscope menggunakan
npm run build:protos
.
Beberapa versi dependensi yang diinstal salah (build gagal)
- Kembalikan perubahan ke
package.json
danpackage-lock.json
. Hapusnode_modules
. Jalankannpm install
lagi.
- Kembalikan perubahan ke
Saya menambahkan kolom baru ke salah satu file proto. Bagaimana cara menampilkannya?
- Winscope menggunakan definisi proto sejak dikompilasi, sehingga kolom
baru tidak akan muncul secara default. Untuk menampilkan kolom baru, build ulang proto
menggunakan
npm run build:protos
.
- Winscope menggunakan definisi proto sejak dikompilasi, sehingga kolom
baru tidak akan muncul secara default. Untuk menampilkan kolom baru, build ulang proto
menggunakan