GPU服务API允许您使用乘数因子管理GPU频率。在某些情况下,应用程序的3D性能并不像温度或模块消耗的能量那么重要。

您可以使用此API来缩放GPU的工作频率。频率总是除以64,然后乘以一个范围在1到64之间的值。您可以控制这个乘数因子,以便更好地控制模块温度和功耗。

除了管理GPU频率外,此API还允许您配置当模块温度达到热跳闸点时将应用的最小频率乘法器。热跳闸点是一种Android安全机制,当设备达到该跳闸点配置的温度时,会降低CPU和GPU的频率。看到Digi APIx javadoc获取此API中可用方法的完整列表。

除非特别说明,否则所有GPU API方法都需要com.digi.android.permission.GPU许可。

如果您的应用程序没有com.digi.android.permission.GPU权限,则无法访问任何GPU服务特性。

必须实例化GPUManager对象来管理GPU倍频器。为此,您必须提供应用程序上下文

实例化GPUManager
进口android.app.Activity;进口android.os.Bundle;进口com.digi.android.system.gpu.GPUManager;公共GPUSampleActivity扩展活动{GPUManager GPUManager;[…]@Override公共无效onCreate(Bundle savedInstanceState) {超级onCreate(savedInstanceStace);//实例化GPU管理器对象。gpuManager =GPUManager ();[…]} [...] }

一旦GPUManager对象的实例化,你将能够:

管理GPU倍频器

GPUManager的主要特性之一是通过1 ~ 64的乘数来控制GPU的频率。设置为64时,表示设置为GPU的最高频率;设置为1时,表示设置为GPU的最低频率。GPU频率与模块的温度和功耗直接相关。频率越低,温度和功耗越低。

有两种方法允许您获取和设置GPU倍频器。

方法 描述

setMultiplier (int)

设置倍频器。取值范围是1 ~ 64。

此方法返回配置的频率。如果操作成功,则返回一个等于指定乘数的值。

getMultiplier ()

获取频率乘法器。

在某些模块变体中,允许的最小倍频大于1。方法返回的值进行比较,以确保成功配置了新的乘数setMultiplier (int)方法与所需的一个。它们一定是相等的。

这些方法可能会失败,原因如下:

  • 该功能不受支持,将抛出UnsupportedOperationException

  • 指定的乘数超出范围,抛出IllegalArgumentException

  • 设置或获取乘数时发生错误,抛出IOException

获取并设置倍频器
进口com.digi.android.system.gpu.GPUManager;[…]//获取GPU管理器GPUManager GPUManager =GPUManager(上下文);//获取当前频率乘法器。intcurrentMultiplier = gpuManager。getMultiplier();//设置乘数为48。gpuManager。setMultiplier48);[…]

修改GPU最小倍频

当模块温度达到热跳闸点时,Android将CPU和GPU的频率设置为最低。当温度低于热跳闸点10度时,Android将CPU和GPU频率配置为先前的值。

您可以获取和设置热跳闸点温度值getHotTemperature ()setHotTemperature (int)CPU服务的方法。

配置图形处理器的最小倍频值有以下两种方法:

方法 描述

setMinMultiplier (int)

设置最小倍频器。取值范围是1 ~ 64。

此方法返回配置的最小频率。如果操作成功,则返回一个等于指定乘数的值。

getMinMultiplier ()

获取最小频率乘法器。

在某些模块变体中,允许的最小倍频大于1。方法返回的值进行比较,以确保成功配置了新的乘数setMinMultiplier (int)方法使用所需的值。它们一定是相等的。

这些方法可能会失败,原因如下:

  • 指定的乘数超出范围,抛出IllegalArgumentException

  • 设置或获取乘数时发生错误,抛出IOException

获取并设置最小倍频
进口com.digi.android.system.gpu.GPUManager;[…]//获取GPU管理器GPUManager GPUManager =GPUManager(上下文);//获取最小频率乘法器。intminimumMultiplier = gpuManager。getMinMultiplier();//设置最小倍频为2。gpuManager。setMinMultiplier2);[…]

GPU的例子

示例:GPU管理

GPU管理示例应用程序演示了GPU API。在本例中,您可以使用切片条修改GPU倍频器的值,并查看其对GPU性能和模块温度的影响。

您可以使用Digi的Android Studio插件导入示例。有关更多信息,请参见导入Digi示例应用程序.要查看应用程序源代码,请转到GitHub库