(二)Android系统信息
16lz
2021-01-23
本文为Android的系统信息相关知识整理,具体参考了
- 《Android群英传》第九章 Android系统信息与安全机制
- 系统信息获取
获取系统信息的两种方式:
- 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/
文件夹,里面包含非常多的系统信息。
- 应用信息获取
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);}
更多相关文章
- android 扫描SD卡与系统文件(转)
- 如何修改应用兼容Android 3.0系统
- Android 内存数据库
- android framework增加新的系统服务
- Android内存泄漏监测(MAT)及解决办法
- android 8.1.0 添加系统service
- [转]Android 技术专题系列之九 -- 图形系统
- Android 的GUI 系统
- Android系统信息与安全机制