Bu dokümanda, ek açıklamaları, doğruluk parametrelerini ve ekleyebilirsiniz.
Ek açıklamalar ve doğruluk parametreleri
Ek açıklamalar, bir kullanıcı sizi tıkladığında oyununuzun onay işareti kaydedilir. Doğruluk parametreleri, performansı ve grafik özelliklerini yansıtır ayarlarını yapabilirsiniz. Bunları, protokol arabelleklerini kullanarak tanımlarsınız. Google'ın dilden bağımsız, yapılandırılmış veri değişim biçimi. Daha fazla bkz. Protokol arabellekleri hakkında.
Oyununuz için olası ek açıklamalar ve doğruluk parametreleri
dev_tuningfork.proto
adlı dosya, assets/tuningfork
dizininde bulunur.
dizin oluşturun. Aşağıda demo uygulamasından bir örnek verilmiştir:
syntax = "proto3";
package com.google.tuningfork;
enum InstrumentKey {
CPU = 0;
GPU = 1;
SWAPPY_WAIT = 2;
SWAPPY_SWAP = 3;
CHOREOGRAPHER = 4;
}
enum Level {
// 0 is not a valid value
LEVEL_INVALID = 0;
LEVEL_1 = 1;
LEVEL_2 = 2;
LEVEL_3 = 3;
};
message Annotation {
Level level = 1;
}
message FidelityParams {
int32 num_spheres = 1;
float tesselation_percent = 2;
}
Aşağıdakileri göz önünde bulundurun:
- Paket,
com.google.tuningfork
olmalıdır. - Mesaj adları tam olarak
Annotation
veFidelityParams
olmalıdır. - Ek açıklamaların bir parçası olarak bu dosyada tanımlanan yalnızca
enums
kullanabilirsiniz. FidelityParams
alanlarında yalnızcaenums
,int32s
veyafloats
kullanabilirsiniz.- İlgili içeriği oluşturmak için kullanılan doğrulama aracı bu kuralları uygular.
Ayarlar
Settings
mesajı tuningfork.proto
tarafından tanımlanır. Tam bir örneği şurada görebilirsiniz:
şu dosyayı seçin:
gamesdk/samples/tuningfork/insightsdemo/app/src/main/assets/tuningfork/tuningfork_settings.txt
Oyununuzun ayarlarını
tuningfork_settings.txt
, sitenizin assets/tuningfork
dizininde bulunur
belirler. Yalnızca aşağıdaki alanları belirtmeniz gerekir:
aggregation_strategy
: Şunları içeren bir ileti:method
: Her n milisaniye veyaTICK_BASED
bir yükleme içinTIME_BASED
her n çizgiyi yüklemek.intervalms_or_count
:method
alanı için n.max_instrumentation_keys
: Kullanılacak araç anahtarı sayısı. Ayarla Android Frame Pacing kitaplığını kullanıyorsanız4
değerine ayarlayın.annotation_enum_size
: Boyut hesaplandığından isteğe bağlı bir alan başlangıcında tanımlayıcıya göre düzenleyin.
api_key
: Uygulamanızın Cloud projesi API anahtarı. Bu anahtar, şuna yönelik istekleri doğrulamak için kullanılır: sona erecektir. Bu anahtarı oluşturmak için şuraya bakın: API'yi etkinleştirin. Eğerlogcat
içinde bağlantı hataları görüyorsanız API anahtarının doğru olduğundan emin olun.default_fidelity_parameters_filename
: başlatma (training_fidelity_params
girin).level_annotation_index
: (İsteğe bağlı) Aşağıdaki ek açıklama alanlarınızdaki dizin seviye numarası.
Aşağıda örnek bir metin temsili verilmiştir:
aggregation_strategy: {method: TIME_BASED, intervalms_or_count: 10000,
max_instrumentation_keys: 5, annotation_enum_size: [3,4]}
api_key: "API-KEY-FROM-GOOGLE-CLOUD-CONSOLE"
default_fidelity_parameters_filename: "dev_tuningfork_fidelityparams_3.bin"
level_annotation_index: 1
Ek açıklamaları ayarlama
Oyununuz sırasında notları manuel olarak ayarlamanız gerekir. Bir
Bunun örneğini demo uygulamada görebilirsiniz.
otomatik olarak oluşturur. Daha fazla bilgi için SetAnnotations()
işlevine
insightsdemo.cpp
Bu durumda, ek açıklama yalnızca seviye numarasını belirtir.
message Annotation {
Level level = 1;
}
Kalite seviyelerini tanımlama
Cihazların doğru olup olmadığını belirleyebilmek için kalite seviyelerini kullanarak oturumlara notlar ekleyin. çok yüksek bir kalite seviyesinde yayınlanıyor (bu da performansın düşmesine neden oluyor) veya çok düşük (bu durum, kalitenin gereksiz şekilde azalmasına neden olur).
Projeniz için en az bir, tercihen birkaç kalite seviyesi tanımlamanız gerekir.
bir oyundur. Kalite seviyesi, FidelityParams
öğenizin bir örneğine karşılık gelir
mesajını alırsınız. Bu düzeylerin doğruluğu, artan
şu dosya adı biçimini kullanın:
dev_tuningfork_fidelityparams_i.txt
Bu örnekte i
, 1 ile başlayan ve maksimum değere sahip bir dizindir
/ 15. Bu dosyalar sitenizin assets/tuningfork
dizininde bulunmalıdır.
belirler. Örnek projede bu yapının bir örneği
gamesdk/samples/tuningfork/insightsdemo/app/src/main/assets/tuningfork/
.
dizin.
Protokol arabellekleri hakkında
Tuning Fork kitaplığı, Google'ın protokol arabelleği biçimini kullanarak kalite parametrelerini dahil eder. Bu, iyi tanımlanmış, genişletilebilir, yapılandırılmış veriler için çok dilli protokol. Daha fazla bilgi için bkz. Protokol Arabellekleri dokümanları.
Proto2 ve proto3 karşılaştırması
Protokol arabelleği biçiminin sürümü, dosyanın ilk satırında ayarlanır:
syntax="proto2";
Proto2 ve proto3, protokol arabelleklerinin yaygın olarak kullanılan iki sürümüdür. Her ikisi de aynı kablo biçimini kullanın, ancak tanım dosyaları uyumlu değil. Anahtar iki sürüm arasındaki farklar şunlardır:
- Proto3'te
optional
verequired
anahtar kelimelerine artık izin verilmiyor. - Proto3'te her şey etkili bir şekilde
optional
. - proto3'te uzantılar desteklenmiyor.
C# biçiminde derlenebileceği için proto dosyalarınızda proto3'ü kullanın. Proto2 çalışıyor Tuning Fork kitaplığında kullanılan sınırlı özellik setiyle birlikte.
Metin ve ikili gösterimler karşılaştırması
İkili protobuf kablo biçimi iyi tanımlanmıştır ve farklı
protobuf sürümleri (oluşturulan kod değildir). Ayrıca tablodaki
protobuf kitaplığının tam sürümü oluşturulabilir ve okunabilir. Bu biçim
iyi tanımlanmamıştır, ancak
Tuning Fork kitaplığı. İkili ve metin biçimleri arasında dönüştürme yapabilirsiniz.
protoc
derleyicisi kullanılıyor. Aşağıdaki komut, bir metin protobuf'u
ikili:
protoc --encode com.google.tuningfork.Settings tuningfork.proto < tuningfork_settings.txt > tuningfork_settings.bin
APK'nıza metin dosyaları yerine ikili dosyalar eklemeniz gerekir çünkü tam protobuf kitaplığının boyutu birkaç MB'tır; Ses Çatalı'nın yapımı oyununuzun boyutunu benzer miktarda artıracağını gösterdiğini fark edeceksiniz.
Tam ve Nano karşılaştırması
Protobuf kitaplığının tamamının yanı sıra kodları azaltan basit bir sürüm de vardır.
yansıma, FileDescriptors
ve
akışla optimize edebilirsiniz. Bu sürüm için de yine birkaç MB gereklidir
ekstra kod ayak izi olduğu için Tuning Fork kitaplığı dahili olarak
nanopb kütüphanesi için de geçerli. Kaynak kodu
bu kitaplık external/nanopb-c
bölgesinde Android Açık Kaynak Projesi'ne dahil edilmiştir ve
gamesdk
dalının bir parçasıdır. Kod boyutu şuysa oyununuzda bu kitaplığı kullanın:
bir sorundur.
gamesdk/src/protobuf
uygulamasında entegrasyon yapmanıza yardımcı olabilecek CMake dosyaları var
üç sürümünü de kullanabilirsiniz. Örnekler hem nanopb hem de tam
Protobuf'tur.