Android系统信息获取

        由于Android手机的可开发性,导致市场上各种不同配置、不同价格的Android手机应有尽有。因此,“拼配置”也成了Android手机厂家的一个宣传重点。类似“安兔兔”的手机跑分软件可以非常清楚地检查手机系统的配置信息和软硬件信息,下面我们就来看看如何获取这些信息。

        要获取系统的配置信息,通常可以从以下两个方面获取。

  • android.os.Build
  • SystemProperty

1.android.os.Build

        android.os.Build类里面的信息非常丰富,它包含了系统编译时的大量设备、配置信息,下面列举了一些常用的信息,如下所示。

  • Build.BOARD//主板
  • Build.BRAND//Android系统定制商
  • Build.SUPPORTED_ABIS//CPU指令集
  • Build.DEVEICE//设备参数
  • Build.DISPLAY//显示屏参数
  • Build.FINGERPRINT//唯一编号
  • Build.SERIAL//硬件序列号
  • Build.ID//修订版本列表
  • Build.MANUFACTURER//硬件制造商
  • Build.MODEL//版本
  • Build.HARDWARE//硬件名
  • Build.PROFUCT//手机产品名
  • Build.TAGS//描述Build的标签
  • Build.TYPE//Builder类型
  • Build.VERSION.CODENAME//当前开发代码
  • Build.VERSION.INCREMENTAL//源码控制版本号
  • Build.VERSIONRELEASE//版本字符串
  • Build.VERSION.SDK_INT//版本号
  • Build.HOST//Host值
  • Build.USER//User名
  • Build.TIME//编译事件

        上面列表中有一些没有注释的值,它们来自系统RO值中,这些值时手机生产厂商配置的只读的参数值,更具厂家配置的不同而不同,接下来,看看另一个存储设置软硬件信息的类——SystemProperty。

2.SystemProperty

        SystemProperty包含了许多系统配置属性值和参数,很多信息与上面通过android.os.Build获取的值时相同的,下面同样列举了一些常用的信息。

  • os.version//OS版本
  • os.name//OS名称
  • os.arch//OS架构
  • user.home//home属性
  • user.name//name属性
  • user.dir//DIR属性
  • user.timezone//时区
  • path.separator//路径分隔符
  • line.separator//行分隔符
  • file.separator//文件分隔符
  • java.vendor.url//java vender URL属性
  • java.class.path//java Class 路径
  • java.class.version//java Class 版本
  • java.vendor//java vender属性
  • java.version//java版本
  • java.home//java home 属性

3.Android系统信息实例

        下面通过一个简单的实例,来帮助我们了解这些系统信息。

        通过android.os.Build类,可以直接获得一些Build提供的系统信息,而通过System.getProperty("XXXX"),我们可以访问到系统的属性值,代码如下所示。

        String board = Build.BOARD;
        String brand = Build.BRAND;
        
        String os_version = System.getProperty("os.version");
        String os_name = System.getProperty("os.name");

        在实例程序中获取的信息与上面列举出来的属性值相同,这里就不重复了,程序运行效果如下图所示。

         Android系统信息获取_第1张图片 

         运行示例程序后,可以看到,我们已经获取到了相当多的系统信息。那么这些系统信息最根本的来源又是在哪儿呢?记得在分析Android系统目录的时候,我们曾经提到过一点,在system/build.prop文件中,包含了很多RO属性值,打开命令行窗口,进入/system目录,通过cat build.prop命令查看文件信息,结果如图所示。

               Android系统信息获取_第2张图片

        这里我们看见了很多前面通过android.os.Build所获取到的信息,同时,在adb shell中,还可以通过getprop来获取对应属性的值,如图所示。

         

        除了上面所说的两个方法,Android系统还有另外一个非常重要的目录来存储系统信息——/proc目录,在adb shell中进入/;roc目录,通过ll命令查看文件信息,如下图所示。

            Android系统信息获取_第3张图片

        可以看到,这里包含了非常多的系统信息,使用cat cpuinfo命令打开cpuinfo文件,显示内容如下。

 Android系统信息获取_第4张图片

        可见,这里的信息比通过Build获得的信息更加丰富,因此,如果想要获得更加精确、丰富的系统信息,可以通过执行adb shell命令来查看这些节点文件,来获取更多的系统信息。

你可能感兴趣的:(android群英传笔记)