一种区分快速和慢速Android设备的简单方法

时间:2016-05-08 14:46:59

标签: android performance libgdx

我使用libgdx创建了一款Android游戏,在许多设备上运行良好。我最近用一个“低端”手机来检查我的游戏,但它并不是真的可玩。

使用Android Studio工具,我发现问题不在于CPU时间(对于这款低端设备而言,稳定在10%-20%之间)。然后我创建了相同的游戏,使用相同的图形,但大小的一半(其中图形曾经是128x128,现在是64x64像素)。这有很大帮助,游戏再次运行良好。

我现在的问题是,用什么方法来判断我是应该使用正常尺寸的图形,还是使用“半尺寸”的图形? 我一直在研究测量CPU速度的事情(我认为它应该是gpu速度的一个不错的指标,低端处理器的设备可能也有低端GPU)但是要查找处理器的速度并不像人们想象的那么容易。

我现在想到的是,如果屏幕尺寸的最小尺寸为800或更小,则它是低端设备,否则它是“普通”设备。是的,非常随意,我知道,我希望有一种更聪明的方法来确定设备是否合理快速。 我概述了Android设备的所有屏幕尺寸(据我所知)前八个是(使用我的'800或更少'规则)低端设备,其他都是正常的。

低端:800x480,800x600,960x540,1024x758,1024x600,1024x768,1280x720& 1366×768

正常:1280x800,1920x1200,2048x1536,2736x1824,1600x900,1600x1200,1920x1080,1920x1280,2160x1440,2560x1440,2560x1600,2738x2048& 3840X2160。

1 个答案:

答案 0 :(得分:4)

您可以做的一件事是阅读此系统文件:

/ SYS /装置/系统/ CPU / CPU0 / CPU频率/ cpuinfo_max_freq

它可以让您知道处理器的最大时钟速度是多少。然后确定何时应将其视为慢速设备或快速设备。

访问cpu信息的另一种方法是访问/ proc / cpuinfo,如下所示:

private String getInfo()
{
    StringBuffer sb = new StringBuffer();
    sb.append("abi: ").append(Build.CPU_ABI).append("n");

    if (new File("/proc/cpuinfo").exists())
    {
        try
        {
            BufferedReader br = new BufferedReader(new FileReader(new File("/proc/cpuinfo")));
            String aLine;
            while ((aLine = br.readLine()) != null)
            {
                sb.append(aLine + "n");
            }

            if (br != null)
            {
                br.close();
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();
        } 
    }
    return sb.toString();
}

//代码来自这里http://www.roman10.net/2011/12/31/how-to-get-cpu-information-on-android/我没有测试它但应该正常工作。对于剧本,积分将转到roman10。

第二种方法应该需要root访问权限,但我不确定第一种方法。

同样对于GPU来说,这些是与CPU集成的芯片组,因此如果您拥有CPU ID,那么您基本上拥有GPU。

希望对你有所帮助。