Tuning Fork 主界面

使用 Tuning Fork 的主界面。

摘要

枚举

LoadingSource 枚举
LoadingState 枚举
NetworkConnectivity 枚举
TuningFork_ErrorCode{
  TUNINGFORK_ERROR_OK = 0,
  TUNINGFORK_ERROR_NO_SETTINGS = 1,
  TUNINGFORK_ERROR_NO_SWAPPY = 2,
  TUNINGFORK_ERROR_INVALID_DEFAULT_FIDELITY_PARAMS = 3,
  TUNINGFORK_ERROR_NO_FIDELITY_PARAMS = 4,
  TUNINGFORK_ERROR_TUNINGFORK_NOT_INITIALIZED = 5,
  TUNINGFORK_ERROR_INVALID_ANNOTATION = 6,
  TUNINGFORK_ERROR_INVALID_INSTRUMENT_KEY = 7,
  TUNINGFORK_ERROR_INVALID_TRACE_HANDLE = 8,
  TUNINGFORK_ERROR_TIMEOUT = 9,
  TUNINGFORK_ERROR_BAD_PARAMETER = 10,
  TUNINGFORK_ERROR_B64_ENCODE_FAILED = 11,
  TUNINGFORK_ERROR_JNI_BAD_VERSION = 12,
  TUNINGFORK_ERROR_JNI_BAD_THREAD = 13,
  TUNINGFORK_ERROR_JNI_BAD_ENV = 14,
  TUNINGFORK_ERROR_JNI_EXCEPTION = 15,
  TUNINGFORK_ERROR_JNI_BAD_JVM = 16,
  TUNINGFORK_ERROR_NO_CLEARCUT = 17,
  TUNINGFORK_ERROR_NO_FIDELITY_PARAMS_IN_APK = 18,
  TUNINGFORK_ERROR_COULDNT_SAVE_OR_DELETE_FPS = 19,
  TUNINGFORK_ERROR_PREVIOUS_UPLOAD_PENDING = 20,
  TUNINGFORK_ERROR_UPLOAD_TOO_FREQUENT = 21,
  TUNINGFORK_ERROR_NO_SUCH_KEY = 22,
  TUNINGFORK_ERROR_BAD_FILE_OPERATION = 23,
  TUNINGFORK_ERROR_BAD_SETTINGS = 24,
  TUNINGFORK_ERROR_ALREADY_INITIALIZED = 25,
  TUNINGFORK_ERROR_NO_SETTINGS_ANNOTATION_ENUM_SIZES = 26,
  TUNINGFORK_ERROR_DOWNLOAD_THREAD_ALREADY_STARTED = 27,
  TUNINGFORK_ERROR_PLATFORM_NOT_SUPPORTED = 28,
  TUNINGFORK_ERROR_GENERATE_TUNING_PARAMETERS_ERROR = 29,
  TUNINGFORK_ERROR_GENERATE_TUNING_PARAMETERS_RESPONSE_NOT_SUCCESS = 30,
  TUNINGFORK_ERROR_NO_MORE_SPACE_FOR_LOADING_TIME_DATA = 31,
  TUNINGFORK_ERROR_NO_MORE_SPACE_FOR_FRAME_TIME_DATA = 32,
  TUNINGFORK_ERROR_INVALID_LOADING_HANDLE = 33,
  TUNINGFORK_ERROR_DUPLICATE_START_LOADING_EVENT = 34,
  TUNINGFORK_ERROR_METERED_CONNECTION_DISALLOWED = 35,
  TUNINGFORK_ERROR_INVALID_LOADING_STATE = 36,
  TUNINGFORK_ERROR_NO_ACTIVE_LOADING_GROUP = 37,
  TUNINGFORK_ERROR_FRAME_LOGGING_ALREADY_PAUSED = 38,
  TUNINGFORK_ERROR_FRAME_LOGGING_ALREADY_RUNNING = 39,
  TUNINGFORK_ERROR_PREDICT_QUALITY_LEVELS_PARSE_ERROR = 40,
  TUNINGFORK_ERROR_PREDICT_QUALITY_LEVELS_RESPONSE_ERROR = 41
}
枚举
Tuning Fork 函数可以返回的所有错误代码。
TuningFork_InstrumentKeys{
  TFTICK_RAW_FRAME_TIME = 64000,
  TFTICK_PACED_FRAME_TIME = 64001,
  TFTICK_CPU_TIME = 64002,
  TFTICK_GPU_TIME = 64003
}
枚举
表示帧内时间段的测量键。
TuningFork_LifecycleState 枚举
TuningFork_reportLifecycleEvent 方法接受的状态集。
TuningFork_Submission 枚举

类型别名

SwappyTracerFn)(const struct SwappyTracer *) typedef
void(*
指向 Swappy_injectTracers 的指针,可以附加到 TuningFork_Settings::swappy_tracer_fn
TuningFork_CProtobufArray typedef
表示序列化协议缓冲区数组的一系列字节。
TuningFork_CProtobufSerialization typedef
表示序列化协议缓冲区的一系列字节。
TuningFork_Duration typedef
uint64_t
持续时间,单位为纳秒。
TuningFork_ErrorCode typedef
Tuning Fork 函数可以返回的所有错误代码。
TuningFork_FidelityParamsCallback)(const TuningFork_CProtobufSerialization *) typedef
void(*
指向可附加到 TuningFork_Settings::fidelity_params_callback 的函数的指针。
TuningFork_InstrumentKey typedef
uint16_t
测量键用于标识帧或跟踪段中的一个计时点。
TuningFork_LifecycleState typedef
TuningFork_reportLifecycleEvent 方法接受的状态集。
TuningFork_LoadingEventHandle typedef
uint64_t
在 TuningFork_startRecordingLoadingTime 中使用的句柄。
TuningFork_LoadingGroupHandle typedef
uint64_t
在 TuningFork_startLoadingGroup 中使用的句柄。
TuningFork_LoadingTimeMetadata typedef
与加载时间事件一起记录的元数据。
TuningFork_MetricLimits typedef
每种指标类型的数量限制。
TuningFork_Settings typedef
初始化设置。未使用的任何值均设置为零。
TuningFork_Submission typedef
enum TuningFork_Submission
TuningFork_TimePoint typedef
uint64_t
自 Epoch 以来的毫秒数。
TuningFork_TraceHandle typedef
uint64_t
在 TuningFork_startTrace 中使用的跟踪句柄。
TuningFork_UploadCallback)(const char *message, size_t size) typedef
void(*
指向可传递给 TuningFork_setUploadCallback 的函数的指针。

函数

TuningFork_CProtobufArray_free(TuningFork_CProtobufArray *array)
void
释放给定 protobuf 数组拥有的所有内存。
TuningFork_CProtobufSerialization_free(TuningFork_CProtobufSerialization *ser)
void
释放协议缓冲区序列化拥有的所有内存。
TuningFork_destroy()
清除 Tuning Fork 拥有的所有内存并终止所有线程。
TuningFork_enableMemoryRecording(bool enable)
启用或禁用内存遥测记录。
TuningFork_endTrace(TuningFork_TraceHandle handle)
停止并记录一个跟踪段。
TuningFork_flush()
强制上传当前的直方图。
TuningFork_frameDeltaTimeNanos(TuningFork_InstrumentKey key, TuningFork_Duration dt)
使用外部时间(而非系统时间)记录一帧的计时。
TuningFork_frameTick(TuningFork_InstrumentKey key)
记录一帧的计时,该计时将与测量键和当前注释相关联。
TuningFork_getFidelityParameters(const TuningFork_CProtobufSerialization *defaultParams, TuningFork_CProtobufSerialization *params, uint32_t timeout_ms)
一个阻塞调用,用于从服务器获取保真度参数。
TuningFork_init(const TuningFork_Settings *settings, JNIEnv *env, jobject context)
初始化 Tuning Fork。
TuningFork_isFrameTimeLoggingPaused()
bool
检查帧时间记录是否已暂停。
TuningFork_pauseFrameTimeLogging()
暂停将帧时间记录到帧时间直方图。
TuningFork_predictQualityLevels(TuningFork_CProtobufArray *qualityLevels, uint32_t target_frame_time_ms, uint32_t timeout_ms)
一个阻塞调用,用于从服务器获取质量等级预测。
TuningFork_recordLoadingTime(uint64_t time_ns, const TuningFork_LoadingTimeMetadata *eventMetadata, uint32_t eventMetadataSize, const TuningFork_CProtobufSerialization *annotation)
记录加载时间事件。
TuningFork_reportLifecycleEvent(TuningFork_LifecycleState state)
记录应用生命周期的状态变化。
TuningFork_resumeFrameTimeLogging()
恢复将帧时间记录到帧时间直方图。
TuningFork_setAggregationStrategyInterval(TuningFork_Submission method, uint32_t interval_ms_or_count)
设置直方图上传间隔,覆盖设置中的值。
TuningFork_setCurrentAnnotation(const TuningFork_CProtobufSerialization *annotation)
设置当前注释。
TuningFork_setFidelityParameters(const TuningFork_CProtobufSerialization *params)
设置当前活动的保真度参数。
TuningFork_setUploadCallback(TuningFork_UploadCallback cbk)
设置一个回调函数,每当 TuningFork 执行上传操作时,就会在一个单独的线程中调用该函数。
TuningFork_startLoadingGroup(const TuningFork_LoadingTimeMetadata *eventMetadata, uint32_t eventMetadataSize, const TuningFork_CProtobufSerialization *annotation, TuningFork_LoadingGroupHandle *handle)
开始一个加载组。
TuningFork_startRecordingLoadingTime(const TuningFork_LoadingTimeMetadata *eventMetadata, uint32_t eventMetadataSize, const TuningFork_CProtobufSerialization *annotation, TuningFork_LoadingEventHandle *handle)
记录加载事件的开始时间。
TuningFork_startTrace(TuningFork_InstrumentKey key, TuningFork_TraceHandle *handle)
开始一个跟踪段。
TuningFork_stopLoadingGroup(TuningFork_LoadingGroupHandle handle)
停止将事件记录为属于一个组,并记录一个组事件。
TuningFork_stopRecordingLoadingTime(TuningFork_LoadingEventHandle handle)
记录加载事件的结束时间。
Tuningfork_versionString()
const char *
获取 Tuning Fork API 版本,作为以 null 结尾的 ASCII 字符串。

结构体

TuningFork_CProtobufArray

表示序列化协议缓冲区数组的一系列字节。

TuningFork_CProtobufSerialization

表示序列化协议缓冲区的一系列字节。

TuningFork_LoadingTimeMetadata

与加载时间事件一起记录的元数据。

TuningFork_MetricLimits

每种指标类型的数量限制。

TuningFork_Settings

初始化设置。未使用的任何值均设置为零。

枚举

LoadingSource

 LoadingSource

LoadingState

 LoadingState

NetworkConnectivity

 NetworkConnectivity

TuningFork_ErrorCode

 TuningFork_ErrorCode

Tuning Fork 函数可以返回的所有错误代码。

属性
TUNINGFORK_ERROR_ALREADY_INITIALIZED

TuningFork_init 被多次调用。

TUNINGFORK_ERROR_B64_ENCODE_FAILED

无法编码 protobuf。

TUNINGFORK_ERROR_BAD_FILE_OPERATION

一般文件错误。

TUNINGFORK_ERROR_BAD_PARAMETER

通用错误参数。

TUNINGFORK_ERROR_BAD_SETTINGS

无效的 tuningfork_settings.bin 文件。

TUNINGFORK_ERROR_COULDNT_SAVE_OR_DELETE_FPS

调用 TuningFork_saveOrDeleteFidelityParamsFile 时出错。

TUNINGFORK_ERROR_DOWNLOAD_THREAD_ALREADY_STARTED

TuningFork_startFidelityParamDownloadThread 被多次调用,或在 TuningFork_init 已开始下载时被调用。

TUNINGFORK_ERROR_DUPLICATE_START_LOADING_EVENT

在两次 TuningFork_startRecordingLoadingTime 调用之间没有调用停止函数的情况下,使用相同的参数调用了两次。

TUNINGFORK_ERROR_FRAME_LOGGING_ALREADY_PAUSED

无法暂停帧时间记录,因为它已经暂停。

TUNINGFORK_ERROR_FRAME_LOGGING_ALREADY_RUNNING

无法恢复帧时间记录,因为它已经在运行。

TUNINGFORK_ERROR_GENERATE_TUNING_PARAMETERS_ERROR

解析 generateTuningParameters 响应时出错。

TUNINGFORK_ERROR_GENERATE_TUNING_PARAMETERS_RESPONSE_NOT_SUCCESS

generateTuningParameters 返回的响应不是成功代码。

TUNINGFORK_ERROR_INVALID_ANNOTATION

TuningFork_setCurrentAnnotation 参数无效。

TUNINGFORK_ERROR_INVALID_DEFAULT_FIDELITY_PARAMS

fpDefaultFileNum 超出范围。

TUNINGFORK_ERROR_INVALID_INSTRUMENT_KEY

传递给计时函数或跟踪函数的测量键无效。

TUNINGFORK_ERROR_INVALID_LOADING_HANDLE

传递给 TuningFork_startRecordingLoadingTime 的句柄无效。

TUNINGFORK_ERROR_INVALID_LOADING_STATE

在调用加载函数时,TuningFork_LoadingTimeMetadata 的一部分未设置加载状态。

TUNINGFORK_ERROR_INVALID_TRACE_HANDLE

传递给 TuningFork_startTrace 的句柄无效。

TUNINGFORK_ERROR_JNI_BAD_ENV

Jni 错误 - 已弃用。

TUNINGFORK_ERROR_JNI_BAD_JVM

Jni 错误 - 已弃用。

TUNINGFORK_ERROR_JNI_BAD_THREAD

Jni 错误 - 已弃用。

TUNINGFORK_ERROR_JNI_BAD_VERSION

Jni 错误 - 已弃用。

TUNINGFORK_ERROR_JNI_EXCEPTION

Jni 错误 - 抛出了异常。请参阅 logcat 输出。

TUNINGFORK_ERROR_METERED_CONNECTION_DISALLOWED

无法发起 HTTP 请求,因为没有可用的非按流量计费连接。

TUNINGFORK_ERROR_NO_ACTIVE_LOADING_GROUP

调用 TuningFork_stopLoadingGroup 时没有活动的加载组。

TUNINGFORK_ERROR_NO_CLEARCUT

已弃用。

TUNINGFORK_ERROR_NO_FIDELITY_PARAMS

初始化时未找到保真度参数。

TUNINGFORK_ERROR_NO_FIDELITY_PARAMS_IN_APK

在 assets/tuningfork 中未找到 dev_tuningfork_fidelityparams_#.bin。

TUNINGFORK_ERROR_NO_MORE_SPACE_FOR_FRAME_TIME_DATA

启动时为指标数据分配的空间不足

请增加 Settings.max_num_metrics.frame_time 或检查 max_num_instrument_keys

TUNINGFORK_ERROR_NO_MORE_SPACE_FOR_LOADING_TIME_DATA

启动时为指标数据分配的空间不足:请增加 Settings.max_num_metrics.loading_time。

TUNINGFORK_ERROR_NO_SETTINGS

在 assets/tuningfork 中未找到 tuningfork_settings.bin。

TUNINGFORK_ERROR_NO_SETTINGS_ANNOTATION_ENUM_SIZES

tuningfork_settings.bin 文件缺少部分内容。

TUNINGFORK_ERROR_NO_SUCH_KEY

访问文件缓存时没有此键。

TUNINGFORK_ERROR_NO_SWAPPY

找不到所需的 Swappy 函数。

TUNINGFORK_ERROR_OK

无错误。

TUNINGFORK_ERROR_PLATFORM_NOT_SUPPORTED

已弃用。

TUNINGFORK_ERROR_PREDICT_QUALITY_LEVELS_PARSE_ERROR

解析 predictQualityLevels 响应时出错。

TUNINGFORK_ERROR_PREDICT_QUALITY_LEVELS_RESPONSE_ERROR

predictQualityLevels 返回的响应不是成功代码。

TUNINGFORK_ERROR_PREVIOUS_UPLOAD_PENDING

无法上传,因为有另一个请求正在等待处理。

TUNINGFORK_ERROR_TIMEOUT

请求保真度参数时发生超时。

TUNINGFORK_ERROR_TUNINGFORK_NOT_INITIALIZED

在 Tuning Fork 初始化之前调用了函数。

TUNINGFORK_ERROR_UPLOAD_TOO_FREQUENT

TuningFork_flush 的调用过于频繁。

TuningFork_InstrumentKeys

 TuningFork_InstrumentKeys

表示帧内时间段的测量键。

键 64000-65535 保留

属性
TFTICK_CPU_TIME

帧开始与调用 Swappy_swap 之间的时间。

TFTICK_GPU_TIME

缓冲区交换与 GPU 栅栏触发之间的时间。

TFTICK_PACED_FRAME_TIME

eglSwapBuffers 调用或 Vulkan 队列呈现结束之间的帧时间。

TFTICK_RAW_FRAME_TIME

如果 GPU 时间可用,这是 MAX(CPU_TIME,GPU_TIME)。如果不可用,则与 PACED_FRAME_TIME 相同。

TuningFork_LifecycleState

 TuningFork_LifecycleState

TuningFork_reportLifecycleEvent 方法接受的状态集。

TuningFork_Submission

 TuningFork_Submission

类型别名

SwappyTracerFn

void(* SwappyTracerFn)(const struct SwappyTracer *)

指向 Swappy_injectTracers 的指针,可以附加到 TuningFork_Settings::swappy_tracer_fn

另请参阅: TuningFork_Settings

TuningFork_CProtobufArray

struct TuningFork_CProtobufArray TuningFork_CProtobufArray

表示序列化协议缓冲区数组的一系列字节。

另请参阅:TuningFork_CProtobufArray_free,了解如何在处理完缓冲区后释放内存。

TuningFork_CProtobufSerialization

struct TuningFork_CProtobufSerialization TuningFork_CProtobufSerialization

表示序列化协议缓冲区的一系列字节。

另请参阅:TuningFork_CProtobufSerialization_free,了解如何在处理完缓冲区后释放内存。

TuningFork_Duration

uint64_t TuningFork_Duration

持续时间,单位为纳秒。

TuningFork_ErrorCode

enum TuningFork_ErrorCode TuningFork_ErrorCode

Tuning Fork 函数可以返回的所有错误代码。

TuningFork_FidelityParamsCallback

void(* TuningFork_FidelityParamsCallback)(const TuningFork_CProtobufSerialization *)

指向可附加到 TuningFork_Settings::fidelity_params_callback 的函数的指针。

下载保真度参数后将调用的函数。另请参阅:TuningFork_Settings 保真度参数是游戏中 dev_tuningfork.proto 文件中定义的 FidelityParams 消息的序列化。此消息的结构完全由开发者决定,但有一些集成指南中概述的限制。

TuningFork_InstrumentKey

uint16_t TuningFork_InstrumentKey

测量键用于标识帧或跟踪段中的一个计时点。

TuningFork_LifecycleState

enum TuningFork_LifecycleState TuningFork_LifecycleState

TuningFork_reportLifecycleEvent 方法接受的状态集。

TuningFork_LoadingEventHandle

uint64_t TuningFork_LoadingEventHandle

在 TuningFork_startRecordingLoadingTime 中使用的句柄。

TuningFork_LoadingGroupHandle

uint64_t TuningFork_LoadingGroupHandle

在 TuningFork_startLoadingGroup 中使用的句柄。

TuningFork_LoadingTimeMetadata

struct TuningFork_LoadingTimeMetadata TuningFork_LoadingTimeMetadata

与加载时间事件一起记录的元数据。

TuningFork_MetricLimits

struct TuningFork_MetricLimits TuningFork_MetricLimits

每种指标类型的数量限制。

将所有值归零即可获取该类型的默认值。

帧时间:min(64, 注释组合的最大数量) * 测量键数量。

加载时间:32。

电池:32。

热量:32。

内存:15 个可能的内存指标。

TuningFork_Settings

struct TuningFork_Settings TuningFork_Settings

初始化设置。未使用的任何值均设置为零。

TuningFork_Submission

enum TuningFork_Submission TuningFork_Submission

TuningFork_TimePoint

uint64_t TuningFork_TimePoint

自 Epoch 以来的毫秒数。

TuningFork_TraceHandle

uint64_t TuningFork_TraceHandle

在 TuningFork_startTrace 中使用的跟踪句柄。

TuningFork_UploadCallback

void(* TuningFork_UploadCallback)(const char *message, size_t size)

指向可传递给 TuningFork_setUploadCallback 的函数的指针。

每当 TuningFork 执行上传操作时,就会在一个单独的线程中调用该函数。另请参阅:TuningFork_Settings

详细信息
参数
message
包含上传的 JSON 的 UTF-8 字符串。
size
消息中的字节数。

函数

TuningFork_CProtobufArray_free

void TuningFork_CProtobufArray_free(
  TuningFork_CProtobufArray *array
)

释放给定 protobuf 数组拥有的所有内存。

详细信息
参数
array
协议缓冲区数组

TuningFork_CProtobufSerialization_free

void TuningFork_CProtobufSerialization_free(
  TuningFork_CProtobufSerialization *ser
)

释放协议缓冲区序列化拥有的所有内存。

详细信息
参数
ser
协议缓冲区序列化

TuningFork_destroy

TuningFork_ErrorCode TuningFork_destroy()

清除 Tuning Fork 拥有的所有内存并终止所有线程。

详细信息
返回值
成功时返回 TUNINGFORK_ERROR_OK。
返回值
如果 Tuning Fork 未初始化,则返回 TUNINGFORK_ERROR_TUNINGFORK_NOT_INITIALIZED。

TuningFork_enableMemoryRecording

TuningFork_ErrorCode TuningFork_enableMemoryRecording(
  bool enable
)

启用或禁用内存遥测记录。

默认情况下,内存遥测记录在初始化时开启,但目前内存统计信息不会显示在 Play 界面中。

详细信息
参数
enable
如果为 true,则启用内存记录;如果为 false,则禁用。
返回值
成功时返回 TUNINGFORK_ERROR_OK。
返回值
如果 Tuning Fork 未初始化,则返回 TUNINGFORK_ERROR_TUNINGFORK_NOT_INITIALIZED。

TuningFork_endTrace

TuningFork_ErrorCode TuningFork_endTrace(
  TuningFork_TraceHandle handle
)

停止并记录一个跟踪段。

详细信息
参数
handle
这是之前由 TuningFork_startTrace 返回的句柄。
返回值
如果句柄无效,则返回 TUNINGFORK_ERROR_INVALID_TRACE_HANDLE。
返回值
成功时返回 TUNINGFORK_ERROR_OK。

TuningFork_flush

TuningFork_ErrorCode TuningFork_flush()

强制上传当前的直方图。

详细信息
返回值
如果可以发起上传,则返回 TUNINGFORK_ERROR_OK。
返回值
如果之前有上传阻止此上传,则返回 TUNINGFORK_ERROR_PREVIOUS_UPLOAD_PENDING。
返回值
如果自上次上传以来经过的时间不足一分钟,则返回 TUNINGFORK_ERROR_UPLOAD_TOO_FREQUENT。

TuningFork_frameDeltaTimeNanos

TuningFork_ErrorCode TuningFork_frameDeltaTimeNanos(
  TuningFork_InstrumentKey key,
  TuningFork_Duration dt
)

使用外部时间(而非系统时间)记录一帧的计时。

另请参阅:上面的保留测量键

详细信息
参数
key
测量键
参数
dt
您希望记录的持续时间(纳秒)
返回值
如果测量键无效,则返回 TUNINGFORK_ERROR_INVALID_INSTRUMENT_KEY。
返回值
成功时返回 TUNINGFORK_ERROR_OK。

TuningFork_frameTick

TuningFork_ErrorCode TuningFork_frameTick(
  TuningFork_InstrumentKey key
)

记录一帧的计时,该计时将与测量键和当前注释相关联。

注意:允许从不同线程调用计时或跟踪函数,但单个测量键应始终从同一线程计时。另请参阅:上面的保留测量键

详细信息
参数
key
测量键
返回值
如果测量键无效,则返回 TUNINGFORK_ERROR_INVALID_INSTRUMENT_KEY。
返回值
成功时返回 TUNINGFORK_ERROR_OK。

TuningFork_getFidelityParameters

TuningFork_ErrorCode TuningFork_getFidelityParameters(
  const TuningFork_CProtobufSerialization *defaultParams,
  TuningFork_CProtobufSerialization *params,
  uint32_t timeout_ms
)

一个阻塞调用,用于从服务器获取保真度参数。

如果您在 TuningFork_init 的设置中传递了 fidelity_params_callback,则无需调用此函数。请注意,一旦下载了保真度参数,任何计时信息都将记录为与这些参数关联。如果您随后调用 GetFidelityParameters 并下载了新的参数集,则已经收集的任何数据都将提交到后端。'params' 的所有权转移给调用者,因此他们在使用完毕后必须调用 params->dealloc。参数请求发送到:${url_base}+'applications/'+package_name+'/apks/'+version_number+':generateTuningParameters'。

详细信息
参数
defaultParams
如果无法下载参数,则假定这些参数是当前的。
params
timeout_ms
无法连接时,此调用返回之前等待的时间。如果为零或负数,则使用 Settings.initial_request_timeout_ms 中的值。
返回值
如果在下载参数之前发生超时,则返回 TUNINGFORK_ERROR_TIMEOUT。
返回值
如果尚未调用 TuningFork_init,则返回 TUNINGFORK_ERROR_TUNINGFORK_NOT_INITIALIZED。
返回值
成功时返回 TUNINGFORK_ERROR_OK。

TuningFork_init

TuningFork_ErrorCode TuningFork_init(
  const TuningFork_Settings *settings,
  JNIEnv *env,
  jobject context
)

初始化 Tuning Fork。

此函数必须在调用任何其他函数之前调用。

库将从您的 tuningfork_settings.bin 文件加载直方图和注释设置。另请参阅:TuningFork_Settings,了解其他设置如何更改初始化行为的语义。

详细信息
参数
settings
一个 TuningFork_Settings 结构体
env
一个 JNIEnv
context
应用上下文
返回值
成功时返回 TUNINGFORK_ERROR_OK,
返回值
如果没有找到设置,则返回 TUNINGFORK_ERROR_NO_SETTINGS,
返回值
如果您的 tuningfork_settings.bin 文件无效,则返回 TUNINGFORK_ERROR_BAD_SETTINGS,或
返回值
如果 tuningfork 已经初始化,则返回 TUNINGFORK_ERROR_ALREADY_INITIALIZED。

TuningFork_isFrameTimeLoggingPaused

bool TuningFork_isFrameTimeLoggingPaused()

检查帧时间记录是否已暂停。

详细信息
返回值
如果帧时间记录已暂停,则返回 true;否则返回 false。

TuningFork_pauseFrameTimeLogging

TuningFork_ErrorCode TuningFork_pauseFrameTimeLogging()

暂停将帧时间记录到帧时间直方图。

这对于在菜单或加载期间禁用帧时间记录很有用。

详细信息
返回值
成功时返回 TUNINGFORK_ERROR_OK。
返回值
如果日志记录已暂停,则返回 TUNINGFORK_ERROR_FRAME_LOGGING_ALREADY_PAUSED
返回值
如果 Tuning Fork 未初始化,则返回 TUNINGFORK_ERROR_TUNINGFORK_NOT_INITIALIZED。

TuningFork_predictQualityLevels

TuningFork_ErrorCode TuningFork_predictQualityLevels(
  TuningFork_CProtobufArray *qualityLevels,
  uint32_t target_frame_time_ms,
  uint32_t timeout_ms
)

一个阻塞调用,用于从服务器获取质量等级预测。

详细信息
参数
qualityLevels
质量等级作为序列化协议缓冲区数组返回。如果未定义 apk 的质量等级,则可以为空。
target_frame_time_ms
每帧所需的时长,单位为毫秒
timeout_ms
无法连接时,此调用返回之前等待的时间。如果为零,则使用 Settings.initial_request_timeout_ms 中的值。
返回值
成功时返回 TUNINGFORK_ERROR_OK。
返回值
如果在返回预测之前发生超时,则返回 TUNINGFORK_ERROR_TIMEOUT。
返回值
如果调用服务器失败,则返回 TUNINGFORK_ERROR_PREDICT_QUALITY_LEVELS_RESPONSE_ERROR。
返回值
如果无法解析响应,则返回 TUNINGFORK_ERROR_PREDICT_QUALITY_LEVELS_PARSE_ERROR。

TuningFork_recordLoadingTime

TuningFork_ErrorCode TuningFork_recordLoadingTime(
  uint64_t time_ns,
  const TuningFork_LoadingTimeMetadata *eventMetadata,
  uint32_t eventMetadataSize,
  const TuningFork_CProtobufSerialization *annotation
)

记录加载时间事件。

详细信息
参数
time_ns
加载事件耗时(纳秒)
eventMetadata
一个 LoadingTimeMetadata 结构体
eventMetadataSize
LoadingTimeMetadata 结构体的大小(字节),用于版本控制。
annotation
用于此事件的注释。
返回值
成功时返回 TUNINGFORK_ERROR_OK。
返回值
如果在元数据中未设置状态,则返回 TUNINGFORK_ERROR_INVALID_LOADING_STATE。

TuningFork_reportLifecycleEvent

TuningFork_ErrorCode TuningFork_reportLifecycleEvent(
  TuningFork_LifecycleState state
)

记录应用生命周期的状态变化。

每次触发应用的 onCreate()、onStart()、onStop() 和 onDestroy() 方法时都应调用此方法。这将有助于 Tuning Fork 准确跟踪应用何时在前台或后台。

详细信息
参数
state
应用的新生命周期状态
返回值
成功时返回 TUNINGFORK_ERROR_OK。
返回值
如果 Tuning Fork 未初始化,则返回 TUNINGFORK_ERROR_TUNINGFORK_NOT_INITIALIZED。

TuningFork_resumeFrameTimeLogging

TuningFork_ErrorCode TuningFork_resumeFrameTimeLogging()

恢复将帧时间记录到帧时间直方图。

详细信息
返回值
成功时返回 TUNINGFORK_ERROR_OK。
返回值
如果日志记录未暂停,则返回 TUNINGFORK_ERROR_FRAME_LOGGING_ALREADY_RUNNING
返回值
如果 Tuning Fork 未初始化,则返回 TUNINGFORK_ERROR_TUNINGFORK_NOT_INITIALIZED。

TuningFork_setAggregationStrategyInterval

TuningFork_ErrorCode TuningFork_setAggregationStrategyInterval(
  TuningFork_Submission method,
  uint32_t interval_ms_or_count
)

设置直方图上传间隔,覆盖设置中的值。

另请参阅: TuningFork_frameTick

详细信息
参数
method
是否使用基于时间或基于计数的策略。
interval_ms_or_count
基于毫秒或基于计数的间隔。
返回值
成功时返回 TUNINGFORK_ERROR_OK。
返回值
如果 Tuning Fork 未初始化,则返回 TUNINGFORK_ERROR_TUNINGFORK_NOT_INITIALIZED。
返回值
如果 method 不是 TIME_BASED 或 TICK_BASED,或者 interval_ms_or_count 为 0 或大于一天,则返回 TUNINGFORK_ERROR_BAD_PARAMETER。

TuningFork_setCurrentAnnotation

TuningFork_ErrorCode TuningFork_setCurrentAnnotation(
  const TuningFork_CProtobufSerialization *annotation
)

设置当前注释。

详细信息
参数
annotation
当前注释的 protobuf 序列化。
返回值
如果注释与设置不一致,则返回 TUNINGFORK_ERROR_INVALID_ANNOTATION。
返回值
成功时返回 TUNINGFORK_ERROR_OK。

TuningFork_setFidelityParameters

TuningFork_ErrorCode TuningFork_setFidelityParameters(
  const TuningFork_CProtobufSerialization *params
)

设置当前活动的保真度参数。

如果在实验模式下,此函数将覆盖任何已下载的参数。例如,当玩家手动更改游戏质量设置时使用此函数。这将刷新(即上传)与任何先前参数相关联的数据。

详细信息
参数
params
协议缓冲区编码参数。
返回值
成功时返回 TUNINGFORK_ERROR_OK。
返回值
如果 Tuning Fork 未初始化,则返回 TUNINGFORK_ERROR_TUNINGFORK_NOT_INITIALIZED。

TuningFork_setUploadCallback

TuningFork_ErrorCode TuningFork_setUploadCallback(
  TuningFork_UploadCallback cbk
)

设置一个回调函数,每当 TuningFork 执行上传操作时,就会在一个单独的线程中调用该函数。

详细信息
参数
cbk
返回值
成功时返回 TUNINGFORK_ERROR_OK。
返回值
如果 Tuning Fork 未初始化,则返回 TUNINGFORK_ERROR_TUNINGFORK_NOT_INITIALIZED。

TuningFork_startLoadingGroup

TuningFork_ErrorCode TuningFork_startLoadingGroup(
  const TuningFork_LoadingTimeMetadata *eventMetadata,
  uint32_t eventMetadataSize,
  const TuningFork_CProtobufSerialization *annotation,
  TuningFork_LoadingGroupHandle *handle
)

开始一个加载组。

在此 group 之后,后续加载时间将带上此 group 的 id,直到再次调用 startLoadingGroup 或调用 stopLoadingGroup。

详细信息
参数
eventMetadata
一个 LoadingTimeMetadata 结构体。
eventMetadataSize
LoadingTimeMetadata 结构体的大小(字节)(用于结构体的版本控制)。
annotation
用于此事件的注释。
handle
此事件的句柄(目前始终为 null,因为只能有一个加载组处于活动状态)。
返回值
成功时返回 TUNINGFORK_ERROR_OK。
返回值
如果在元数据中未设置状态,则返回 TUNINGFORK_ERROR_INVALID_LOADING_STATE。

TuningFork_startRecordingLoadingTime

TuningFork_ErrorCode TuningFork_startRecordingLoadingTime(
  const TuningFork_LoadingTimeMetadata *eventMetadata,
  uint32_t eventMetadataSize,
  const TuningFork_CProtobufSerialization *annotation,
  TuningFork_LoadingEventHandle *handle
)

记录加载事件的开始时间。

详细信息
参数
eventMetadata
一个 LoadingTimeMetadata 结构体。
eventMetadataSize
LoadingTimeMetadata 结构体的大小(字节)(用于结构体的版本控制)。
annotation
用于此事件的注释。
handle
此事件的句柄。
返回值
成功时返回 TUNINGFORK_ERROR_OK。
返回值
如果在元数据中未设置状态,则返回 TUNINGFORK_ERROR_INVALID_LOADING_STATE。

TuningFork_startTrace

TuningFork_ErrorCode TuningFork_startTrace(
  TuningFork_InstrumentKey key,
  TuningFork_TraceHandle *handle
)

开始一个跟踪段。

另请参阅:上面的保留测量键

详细信息
参数
key
测量键
参数
handle
成功时填充新的句柄。
返回值
如果测量键无效,则返回 TUNINGFORK_ERROR_INVALID_INSTRUMENT_KEY。
返回值
成功时返回 TUNINGFORK_ERROR_OK。

TuningFork_stopLoadingGroup

TuningFork_ErrorCode TuningFork_stopLoadingGroup(
  TuningFork_LoadingGroupHandle handle
)

停止将事件记录为属于一个组,并记录一个组事件。

详细信息
参数
handle
由 startLoadingGroup 生成的句柄(目前应为 0)。

TuningFork_stopRecordingLoadingTime

TuningFork_ErrorCode TuningFork_stopRecordingLoadingTime(
  TuningFork_LoadingEventHandle handle
)

记录加载事件的结束时间。

详细信息
参数
handle
由 startRecordingLoadingTime 生成的句柄。

Tuningfork_versionString

const char * Tuningfork_versionString()

获取 Tuning Fork API 版本,作为以 null 结尾的 ASCII 字符串。