android项目获得所有运行程序
首先也是要建立一个javabean
package com.itheima.bean;import android.graphics.drawable.Drawable;public class TaskInfo {private Drawable icon;private String name;private String size;private boolean isUser;public Drawable getIcon() {return icon;}public void setIcon(Drawable icon) {this.icon = icon;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSize() {return size;}public void setSize(String size) {this.size = size;}public boolean isUser() {return isUser;}public void setUser(boolean isUser) {this.isUser = isUser;}@Overridepublic String toString() {return "TaskInfo [name=" + name + ", size=" + size+ ", isUser=" + isUser + "]";} }
然后通过activitymanager来获取运行中程序的list集合
通过遍历集合获得包名,
在通过packagemanager和包名来获得其他信息
package com.itheima.engine;import java.util.ArrayList; import java.util.List;import android.app.ActivityManager; import android.app.ActivityManager.RunningAppProcessInfo; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.graphics.drawable.Drawable; import android.os.Debug.MemoryInfo; import android.text.format.Formatter;import com.itheima.bean.TaskInfo; import com.itheima.superman.R;public class TaskInfoProvider {private static String packageName;public static List<TaskInfo>getTaskInfo(Context context){List<TaskInfo> list = new ArrayList<TaskInfo>();ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);PackageManager pm = context.getPackageManager();List<RunningAppProcessInfo> runningAppProcesses = am.getRunningAppProcesses();for (RunningAppProcessInfo runningAppProcessInfo : runningAppProcesses) {TaskInfo task = null;try {task = new TaskInfo();packageName = runningAppProcessInfo.processName;//得到图标Drawable loadIcon = pm.getPackageInfo(packageName, 0).applicationInfo.loadIcon(pm);task.setIcon(loadIcon);//得到名称task.setName(pm.getPackageInfo(packageName, 0).applicationInfo.loadLabel(pm).toString());//是不是用户程序int flag = pm.getPackageInfo(packageName, 0).applicationInfo.flags;if((flag&ApplicationInfo.FLAG_SYSTEM)==0){task.setUser(true);}else{task.setUser(false);}//得要程序占用运行内存MemoryInfo processMemoryInfo = am.getProcessMemoryInfo(new int[]{runningAppProcessInfo.pid})[0];String size = Formatter.formatFileSize(context, processMemoryInfo.getTotalPrivateDirty()*1024);task.setSize(size);} catch (NameNotFoundException e) {// TODO Auto-generated catch block e.printStackTrace();//系统中有些程序是用C语言写的没有图标和名字 task.setIcon(context.getResources().getDrawable(R.drawable.ic_launcher));task.setName(packageName);}list.add(task);}return list;} }
转载于:https://www.cnblogs.com/84126858jmz/p/5040188.html
android项目获得所有运行程序相关推荐
- Android实现开机自动运行程序
有些时候,应用需要在开机时就自动运行,例如某个自动从网上更新内容的后台service.怎样实现开机自动运行的应用?在撰写本文时,联想到高焕堂先生以"Don't call me, I'll c ...
- Android开发遇到eclipse运行程序时报timeout
运行的时候总是提示这样 Failed to install ***.apk on device 'emulator-5554': timeout Launch canceled! 第一次遇到这样的问题 ...
- Android项目目录结构
在 Eclipse 中新建或者打开一个 Android 项目,可以看到目录视图如下所示: 其实项目开发中,使用频率较高的并不多,我们只要了解清楚不同类型的文件和不同目录的对应关系就可以了. 1. sr ...
- Android项目该如何选择targetSdkVersion
新手的第一个Android项目或许没有认真考虑过如何选择targetSdkVersion的问题,也或许还有一部分像TeachCourse一样的开发者,积累一些工作经验后才回头来思考这个问题.那么该如何 ...
- Android Studio 点击运行总是debug
今天遇见个奇葩问题,Android studio一点击运行程序按钮,就会安装并进入debug模式,还巨卡 后来发现,先把手机的开发者模式,关了再打开就行了 在在后来发现,原来是开发者选项的等待调试打开 ...
- Android项目 Eclipse 引入其他项目 打包出现 Rejecting re-init on previously-failed class 错误
编译时没有报错,运行时报了Rejecting re-init on previously-failed class错误 我的原因:导入其他项目时,使用的是Java Build Path 结果运行时找不 ...
- 为什么Android项目mainactivity中有一个变量R_安卓4:第一个安卓程序 AS 安卓项目结构解析 手机运行app 模拟器运行app...
学习于:https://www.bilibili.com/video/av22836860?p=2 首先,要知道AS的一个基本模型,1个Android project可以有多个module,而每个mo ...
- 为什么Android项目mainactivity中有一个变量R_【Android开发入门教程】二.Android应用程序结构分析!...
一.新建HelloWorld项目: 1.打开Eclipse,点击"File"->"New"->"Project"-Android ...
- Android ADT插件更新后程序运行时抛出java.lang.VerifyError异常解决办法
当我把Eclipse中的 Android ADT插件从21.1.0更新到22.0.1之后,安装后运行程序抛出java.lang.VerifyError异常. 经过调查,终于找到了一个有效的解决办法: ...
最新文章
- bootstrap 全局 CSS 样式
- 005_Queue消息模式发送字节消息
- Cstring转化为String
- C语言实现希尔排序shell sort算法之二(附完整源码)
- [vue] EventBus注册在全局上时,路由切换时会重复触发事件,如何解决呢?
- okHttp源码解析------待续
- 怎样清空输入缓冲区里的内容
- C++学习之路 | PTA乙级—— 1030 完美数列 (25 分)(精简)
- 卷积(convolution)与相关(correlation)(matlab 实现)
- 微信小程序开发之视频video组件报错:渲染层网络层错误
- Metro风格的CSS框架 BootMetro
- 微信小程序 环形进度条_微信小程序实现圆形进度条
- vue判断什么手机打开网页及是否用QQ浏览器或者微信浏览器打开
- IDEA之非常复制黏贴
- 硅原子重组纳米级芯片构想
- latex 跳转标签_在 LaTeX 中使用交叉引用
- 【Asp.net入门01】动态网站基础知识
- redis3.0.7 cluster 集群部署
- app应用关键词排名都有哪些因素?
- IBM带库加磁带操作