本文为Android的系统信息相关知识整理,具体参考了

  • 《Android群英传》第九章 Android系统信息与安全机制
  1. 系统信息获取

获取系统信息的两种方式:

  • android.os.Builder,包含系统编译时的大量设备、配置信息。
    • Build.BOARD //主板
    • Build.BRAND //Android系统定制商
    • Build.PRODUCT //手机产品名
    • ...
  • SystemProperty,包含系统配置属性值和参数。
    • os.version //OS版本
    • os.name //OS名称
    • user.timezone //时区
    • ...
String board = Build.BOARD;String brand = Build.BRAND;String os_version = System.getProperty("os.version");String os_name = Ststem.getProperty("os.version");

系统信息来源,其中包含比函数获得的多得多的信息:

  • Android系统目录的system/build.prop文件。里面包含android.os.Build所获取的信息。
  • Android系统目录的proc/文件夹,里面包含非常多的系统信息。
  1. 应用信息获取

2.1 PackageManager

PackageManager,重点在于获取应用的包信息。这些信息来自AndroidManifest.xml

AndroidManifest.xml的文件内容结构:

    <?xml version="1.0" encoding="utf-8"?>                                                                                                                                                    

各个标签的封装类:

  • mainfest -> PackageInfo
  • application -> ApplicationInfo
  • activity -> ActivityInfo
  • service -> ServiceInfo

简单用法示例,提取所有应用名。当然也可以新建一个类,存到里面。

//获取PackageManager对象pm = this.getPackageManager(); //获取所有的应用信息List listApplications = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES) List labelList = new ArrayList();for(ApplicationInfo app:listApplications){    labelList.add((String)app.loadLabel(pm));}

2.2 ActivityManager

ActivityManager,重点在于获得在运行的应用程序信息。

ActivityManager封装的重要的Bean对象:

  • ActivityManager.MemoryInfo,全局的内存信息
    • availMem,系统可用内存
    • totalMem,总内存
    • threshold,低内存阈值
    • lowMemory,是否处于低内存
  • Debug.MemoryInfo,进程下的内存信息
  • RunningAppProcessInfo,运行的进程信息
  • RunningServiceInfo,运行的服务信息

示例,获取正在运行过的进程的pid:

ActivityManager mActivityManager =(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);List appProcessList = mActivityManager.getRunningAppProcessInfo();List pidList = new ArrayList();for(int i = 0; i < appProcessList.size(); i++){    pidList.add(info.pid);}

更多相关文章

  1. Android获取运营商代码
  2. android 缓存Bitmap
  3. android 扫描SD卡与系统文件(转)
  4. Android(安卓)内存数据库
  5. android UDID获取:android 设备SN的获取 续 android 设备唯一码的
  6. Android内存泄漏监测(MAT)及解决办法
  7. android sim卡 TelephonyManager类:Android手机及Sim卡状态的获取
  8. 选项卡使用方法二(Android学习随笔十三)
  9. Android系统信息与安全机制

随机推荐

  1. 正则表达式在 ES2018 中的新写法 [每日前
  2. 如何用自己喜欢的 CSS 风格重置网站的样
  3. 如何用原生 DOM API 生成表格 [每日前端
  4. 2019最烂密码榜单出炉,教你设置神级密码!
  5. 回到基础:理解 JavaScript DOM[每日前端夜
  6. Webpack5.0 新特性尝鲜实战 [每日前端夜
  7. 怎样使用React Context API [每日前端夜
  8. 7个开放式的 HTML 面试题及回答策略 [每
  9. 尝鲜 ES2019 的新功能 [每日前端夜话0x38
  10. 表弟的数学题,我竟然用了python才解出来