Bu sayfada, oyun kodunuzdaki kitaplığı nasıl ilk kullanıma hazırlayacağınız ve bu kitaplığın Google Play'e veri yüklüyor. Belirli konulardaki daha fazla bilgi edinmek için referans belgeleri.
Kitaplığı ilk kullanıma hazırlama
Oyununuzun başındaki bir başlatma yönteminde kitaplığı şu şekilde başlatın:
AndroidPerformanceTuner
örneğini örneklendirmek ve
Start()
yöntem:
using Google.Android.PerformanceTuner;
using UnityEngine;
public class SomeBehaviour : MonoBehaviour
{
AndroidPerformanceTuner<FidelityParams, Annotation> tuner =
new AndroidPerformanceTuner<FidelityParams, Annotation>();
void Start()
{
ErrorCode startErrorCode = tuner.Start();
Debug.Log("Android Performance Tuner started with code: " + startErrorCode);
tuner.onReceiveUploadLog += request =>
{
Debug.Log("Telemetry uploaded with request name: " + request.name);
};
}
}
Bu kod, Android Performance Tuner'ın başlatılması ve oyununuzun başlatılması için yeterlidir enstrümanla. Günlük ifadeleri, Android Performance Tuner'ın ne zaman başlatıldığını gösterir Google Play Console API'lerine telemetri yüklendiğinden emin olun. Daha sonra, eklentinin çalıştığını doğrulamak için bu ifadeleri günlükte bulabilirsiniz sağlayabilir.
Geç başlatma (yalnızca Vulkan)
Oyununuz Vulkan'ı hedefliyorsa ve Android Çerçeve İlerlemesi'ni kullanıyorsa, Android Performance Tuner geç bir başlatmaya sahip olması gerekir:
IEnumerator Start()
{
yield return new WaitForEndOfFrame();
ErrorCode startErrorCode = tuner.Start();
Debug.Log("Android Performance Tuner started with code: " + startErrorCode);
tuner.onReceiveUploadLog += request =>
{
Debug.Log("Telemetry uploaded with request name: " + request.name);
};
}
Telemetri yüklemeleri arasındaki aralığı doğrulama
Eklenti ayarlarında telemetri yüklemeleri arasındaki varsayılan aralık 30'dur saniye. Bu süre, doğrulama işlemini kolaylaştırmak için kısa bir aralığa ayarlanır. telemetrinin düzgün şekilde yüklenmesi. Oyununuzu üretim sürümüne yayınladığınızda geniş bir aralığa (örneğin, her 10 dakikada bir) uygulayarak API'lerden çok fazla istekte bulunmak, özellikle de kullanıcılarınızın mobil veri planına sahip olmayan kullanıcılar için teklif vermelidir. Büyük , cihazın pilinin aşırı kullanılmasını da önler.
Aralığın 30 saniyeye ayarlandığını doğrulamak için aşağıdakileri yapın:
- Google > Android Performance Tuner'ı tıklayın.
- Araç Ayarları sekmesini seçin ve Gelişmiş olanı kullan'ı tıklayın Ayarlar'da bulabilirsiniz.
- Aralıklar (dakika) alanının 0.5 değerini içerdiğini doğrulayın.
. Eklentideki Araç ayarları sekmesi
Doğru çalıştığını doğrulama
IL2CPP veya kod kaldırma kullanıyorsanız Kod çıkarmayı yönetin.
Android için oyununuzu geliştirin. Oyununuz bir cihazda başlatılırken
terminalini açın ve adb logcat
uygulamasını başlatın:
adb logcat
adb logcat
çıktısında "TuningFork" araması yapın (Tuning Fork'un
kitaplığın dahili adı):
02-03 16:55:45.103 10511 10536 I TuningFork: Got settings from tuningfork/tuningfork_settings.bin
02-03 16:55:45.103 10511 10536 I TuningFork: Using local file cache at /data/user/0/com.Unity3d.BoatAttackDay/cache/tuningfork
02-03 16:55:45.105 10511 10536 I TuningFork: OpenGL version 3.2
02-03 16:55:45.105 10511 10536 I TuningFork: TuningFork.GoogleEndpoint: OK
02-03 16:55:45.106 10511 10611 I TuningFork: Creating directory /data/user/0/com.Unity3d.BoatAttackDay/cache/tuningfork
02-03 16:55:45.106 10511 10536 I TuningFork: TuningFork Settings:
[...]
02-03 16:55:45.116 10511 10536 I Unity : Tuningfork started with code: Ok
02-03 16:55:45.107 10511 10536 I TuningFork: TuningFork initialized
02-03 16:55:45.107 10511 10536 I UnityTuningfork: Swappy backend: 1
02-03 16:55:45.107 10511 10536 I TuningFork: Creating directory /data/user/0/com.Unity3d.BoatAttackDay/cache/tuningfork/V1
02-03 16:55:45.110 10511 10613 I TuningFork: OpenGL version 3.2
02-03 16:55:45.110 10511 10613 I TuningFork:Web: Connecting to: https://performanceparameters.googleapis.com/v1/applications/com.Unity3d.BoatAttackDay/apks/1:generateTuningParameters
Eklentiyi kurarken bir hata yaptıysanız, örneğin API anahtarı kullanmazsanız başlatma günlüklerinde bir hata görürsünüz:
02-03 16:49:44.970 8815 8831 I TuningFork: Got settings from tuningfork/tuningfork_settings.bin
02-03 16:49:44.971 8815 8831 I TuningFork: Using local file cache at /data/user/0/com.Unity3d.BoatAttackDay/cache/tuningfork
02-03 16:49:44.972 8815 8831 I TuningFork: OpenGL version 3.2
02-03 16:49:44.972 8815 8831 W TuningFork.GE: The API key in Tuning Fork TFSettings is invalid
02-03 16:49:44.972 8815 8831 E TuningFork: TuningFork.GoogleEndpoint: FAILED
02-03 16:49:44.973 8815 8831 I Unity : Tuningfork started with code: BadParameter
Android Performance Tuner'ın telemetri yüklediğinden emin olun. Günlüklerde TuningFork
initialized
görürseniz biraz daha bekleyin ve
telemetri yükleniyor.
02-03 16:58:00.552 10511 10611 I TuningFork:Web: Connecting to: https://performanceparameters.googleapis.com/v1/applications/com.Unity3d.BoatAttackDay/apks/1:uploadTelemetry
02-03 16:58:00.898 10511 10611 I TuningFork:Web: Response code: 200
02-03 16:58:00.898 10511 10611 I TuningFork:Web: Response message: OK
02-03 16:58:00.899 10511 10611 I TuningFork.GE: UPLOAD request returned 200 {}
Ayrıca, günlüklerde "Connecting to:" (Şuraya bağlanıyor:) araması da yapabilirsiniz. Bu mesaj takip ediliyor bunu birkaç satır sonra gelen yanıt koduna göre sıralayın.
Telemetri yükleme günlüklerini görmüyorsanız Android Performance Tuner ayarlarında her yükleme ile küçük bir kullanabilirsiniz.
Kod çıkarmayı yönet
Google.Protobuf.dll
, yansıma kullanıyor. Kod çıkarma işlemi sırasında,
gerekli kod kaldırılabilir. Bu kaldırılmayı önlemek için eklenti,
Hangi simgelerin korunması gerektiğiyle ilgili bilgiler içeren link.xml
dosyası. Şu durumda:
yansıma kullanan protobuf'un bazı işlevleri gerekiyor ve
çıkarma işlemi etkinse bu bilgileri link.xml
dosyasına ekleyerek
anlamına gelir.
Web sitemiz g.co/newsinitiative/labs üzerinden yönetilen kod çıkarma inceleyebilirsiniz.
Protobuf'taki tüm simgeleri korumanız gerekiyorsalink.xml
şunları içeren bir projeden oluşur:
<linker>
<assembly fullname="Google.Protobuf" preserve="all"/>
</linker>
Zamanında derleme (AOT)
IL2CPP arka ucu ve Unity sürümleri 2017 için zamanında derleme işlemi gereklidir için geçerli değildir (ancak Unity'nin sonraki sürümleri için geçerli değildir).
AOT derleyicisi, genel yöntemler için kod oluşturamaz. Zorlamanız gerekiyor koda ekleyerek protobuf için gereken doğru kodu oluşturmak üzere derleyiciye aşağıdaki yöntem:
using Google.Protobuf.Reflection;
using UnityEngine.Scripting;
...
// Don't call this method.
[Preserve]
void ExampleOfForceReflectionInitializationForProtobuf()
{
FileDescriptor.ForceReflectionInitialization<Scene>();
FileDescriptor.ForceReflectionInitialization<ShadowType>();
FileDescriptor.ForceReflectionInitialization<LevelType>();
...
// Add FileDescriptor.ForceReflectionInitialization<T> for each generated enum.
// You can find the list of enums in DevTuningfork.cs -> enum section
// or in the list of enums in Google -> Android Performance Tuner.
}
Web sitemiz g.co/newsinitiative/labs üzerinden komut dosyası kısıtlamaları inceleyebilirsiniz.