android系统软硬件信息获取

来源:互联网 发布:银行风险预警模型数据 编辑:程序博客网 时间:2024/05/21 08:01

Android系统信息获取

在android中,我们要获取系统信息,主要通过两个方面获取

android.os.BuildSystemProperty

android.os.Build

Information about the current build, extracted from system properties.

Build.BOARD (主板)    The name of the underlying board, like "goldfish".Build.BOOTLOADER(boos 版本)   The system bootloader version number.Build.BRAND(android系统定制商)   The consumer-visible brand with which the product/hardware will be associated, if any.Build.TIME (编译时间)Build.VERSION.SDK_INT (版本号)Build.MODEL (版本)Build.SUPPORTED_ABIS (cpu指令集)Build.DEVICE (设备参数)Build.ID (修订版本列表)...

SystemProperty

SystemProperty 包含了许多的系统配置属性和参数

可以使用 * System.getProperty(“”) * 进行获取

  os.version  os版本  os.name     os名称  os.arch     os架构  user.home     home属性  user.name     name属性  user.dir      dir属性  java.class.path   java class 路径  java.class.version   java class 版本  java.version   java版本  java.home    java home属性

PackageManager 获取apk应用内信息

我们的minifest.xml清单文件,我们可以在其中声明activity、service、provider、receiver、权限等信息。其实我们可以理解minifest文件是我们的app的配置管理信息,然后呢,packagemanager就是负责管理我们所有的已安装app。

activityinfo

activityinfo 是对minifest中的所有 的管理,我们可以获取name, icon, lable等信息

serviceinfo

serviceinfo 是对minifest中所有的 的管理。

applicationinfo

applicationinfo 是对 之间的信息。

packageinfo

packageinfo 包含了所有的activity, service …等信息

resolveinfo

resolveinfo 封装的是 信息的上一层信息,所以它可以返回 serviceinfo, activityinfo 等包含的信息。它常常用来帮我们找到那些包含特定intent条件的信息,如果播放功能应用、分享等等。

PackageManager 针对于上面的这些管理类,提供了一些常用的方法,我们可以轻松的获取需要的管理类。

  • getPackageManager 通过调用这个方法获取packagemanager对象
  • getApplicationInfo 以applicationinfo的形式返回指定包名的applicationinfo
  • getApplicationIcon 返回置顶包名的icon
  • getInstalledApplications 以applicationinfo的形式返回所有安装的应用
  • getInstalledPackages 以packageinfo的形式返回所有安装的应用
  • queryIntentActivities 返回指定intent的resolveinfo对象,activity集合
  • queryIntentService 返回指定intent的resolveinfo对象, service集合
  • resolveActivity 返回指定intent的activity
  • resolveService 返回指定intent的service

区分应用类型

ApplicationInfo app;app.flags & ApplicationInfo.FLAG_SYSTEM
  • 如果当前应用的flags & ApplicationInfo.FLAG_SYSTEM != 0 则为系统应用
  • 如果当前应用的flags & ApplicationInfo.FLAG_SYSTEM <= 0 则为第三方应用
  • 特殊情况下,当系统应用升级后,也将变成第三方应用,flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP != 0
  • 如果当前应用的flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE != 0 则为安装在sdcard上的应用

ActivityManager 获取正在运行的应用的信息

  • AcitivityManager.MemoryInfo

在MemoryInfo中,有几个我们很有用的字段:

availMem : 系统可用内存totalMem : 总内存threshold : 低内存的阀值,用来区分低内存lowMemory : 是否处于低内存
  • RunningAppProcessInfo

正在运行进程的信息, processName:进程名, pid: 进程pid ,uid: 进程uid, pkgList: 该进程下的所有包

  • RunningServiceInfo

封装了正在运行的服务信息, activeSince: 第一次被激活的时间, foreground: 服务是否在后台执行

0 0