解决方案

【Android】ActivityManager的介绍

seo靠我 2023-09-24 22:56:01

ActivityManager虽然名为Activity管理器,其实际功能比类名描述的广泛,定义的方法涵盖了内存、进程、任务、设备等相关功能。因此,将ActivityManager理解为AppManagSEO靠我er,更符合这个类。

内存相关

方法返回值解释getMemoryClass()int返回当前设备为每个应用程序分配的内存,单位MgetLargeMemoryClass()int返回当前设备为每个应用程序分SEO靠我配的最大内存,单位MgetMemoryInfo(ActivityManager.MemoryInfo outInfo)返回系统内存状态的信息。getMyMemoryState(ActivityManaSEO靠我ger.RunningAppProcessInfo outState)为调用进程返回全局内存状态信息。getProcessMemoryInfo(int[] pids)MemoryInfo[]返回关于一SEO靠我个或多个进程的内存使用情况的信息。isLowRamDevice()boolean如果这是一个低ram设备,返回true。setWatchHeapLimit(long pssSize)请求系统监视调用进SEO靠我程的堆限制大小,如果超过pssSize,会自动进行堆转储操作clearWatchHeapLimit()清除之前由setWatchHeapLimit(long)设置的Watch Heap限制。dumpPSEO靠我ackageState(FileDescriptor fd, String packageName)执行与给定应用程序包名称相关的各种状态的系统转储。此调用在执行转储时会阻塞,因此不应在 UI 线程上SEO靠我执行。数据将作为文本写入给定的文件描述符。 。

getMemoryInfo 方法

返回系统的内存信息,用于帮助开发者管理内存。不建议轮询。优先使用onTrimMemory。

MemoryInfo 属性

属性说SEO靠我明totalMem总内存availMem系统可用内存threshold低内存阈值,即低内存的临界线lowMemory是否为低内存状态 public void memoryInfo(ViSEO靠我ew view) {ActivityManager.MemoryInfo info = new ActivityManager.MemoryInfo();manager.getMemoryInfo(iSEO靠我nfo);log("info.totalMem:"+toMb(info.totalMem));log("info.availMem:"+toMb(info.availMem));log("info.tSEO靠我hreshold:"+toMb(info.threshold));log("info.lowMemory:"+info.lowMemory); }

输出:

info.totalMem:2.SEO靠我96吉字节 info.availMem:820兆字节 info.threshold:226兆字节 info.lowMemory:false

getMyMeSEO靠我moryState 方法

返回调用进程的全局内存状态,只会写入以下字段

RunningAppProcessInfo 属性

属性说明pid进程IDuid进程所在的用户IDlastTrimLevel报告给进程的SEO靠我最后内存修剪级别importance该进程的相对重要级别,值越小级别越高 importance值的意义lru当importance == 400 ,即IMPORTANCE_CACHED 时,这个数字才SEO靠我有意义importanceReasonCodeimportance 取值的原因 public void memoryState(View view) {ActivityManager.SEO靠我RunningAppProcessInfo info = new ActivityManager.RunningAppProcessInfo();ActivityManager.getMyMemorySEO靠我State(info);log("info.pid:"+info.pid);log("info.uid:"+info.uid);log("info.lastTrimLevel:" + info.lasSEO靠我tTrimLevel);log("info.importance:" + info.importance);log("info.lru:" + info.lru);log("info.importanSEO靠我ceReasonCode:" + info.importanceReasonCode); }

输出:

info.pid:18906 info.uid:10251 SEO靠我 info.lastTrimLevel:0 info.importance:100 info.lru:0 info.importanceReasonSEO靠我Code:0

进程相关

方法返回值解释killBackgroundProcesses(String packageName)让系统立即终止与给定包关联的所有后台进程。getProcessesInErrorSEO靠我State()List ActivityManager.ProcessErrorStateInfo返回当前处于错误状态的所有进程的列表。getRunningAppProcesses()List ActSEO靠我ivityManager.RunningAppProcessInfo返回在设备上运行的应用程序进程列表。getRunningServiceControlPanel(ComponentName servSEO靠我ice)PendingIntent返回一个 PendingIntent,您可以显示给定服务的控制面板。如果服务没有控制面板,则返回 null。getRunningServices(int maxNumSEO靠我)List ActivityManager.RunningServiceInfo返回当前运行的Services列表

任务相关

方法返回值解释getAppTasks()List AppTask获取与应用程序SEO靠我关联的任务列表addAppTask(Activity activity, Intent intent, ActivityManager.TaskDescription description, BitSEO靠我map thumbnail)int添加一个ActivityManager.AppTaskgetAppTaskThumbnailSize()Size返回用于当前 ActivityManager.AppTSEO靠我ask缩略图的当前设计尺寸,用于addAppTask(Activity, Intent, ActivityManager.TaskDescription, Bitmap)getLockTaskModeSEO靠我State()int返回当前任务锁定状态。moveTaskToFront(int taskId, int flags, Bundle options)请求与给定任务ID关联的任务被移动到堆栈的前面,因SEO靠我此用户现在可以看到它。moveTaskToFront(int taskId, int flags)同上

getAppTasks

获取与应用程序关联的任务列表。

Task

一些相关联的activity的集合,但SEO靠我activity之间不一定非得相关联。当我们按home键旁边那个方形键(recent-apps)时,屏幕上展示的就是一个个task。

设备相关

方法返回值解释getDeviceConfigurationISEO靠我nfo()ConfigurationInfo获取设备配置属性。getLauncherLargeIconDensity()int获取启动器图标的首选密度。getLauncherLargeIconSizeSEO靠我()int获取首选的启动器图标大小。这在创建自定义可绘制对象时使用(例如,用于快捷方式)。clearApplicationUserData()boolean允许应用程序从磁盘中擦除自己的数据。这相当于SEO靠我用户选择从设备设置 UI 中清除应用程序的数据。它会删除与应用程序相关的所有动态数据——其私有数据和外部存储上其私有区域中的数据——但不会删除已安装的应用程序本身,也不会删除任何 OBB 文件。它还撤SEO靠我销应用程序已获得的所有运行时权限,清除所有通知并删除与此应用程序相关的所有 Uri 授权。
“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2