最近可能会坐安卓的部分工作,所以收集一些关于Android进程方面的资料:
1、显示所有APP的进程详细信息(进程ID、进程所在UID、进程占用内存、进程名)
该博客主要通过一个Android程序去获取了当前手机中运行的那些进程信息,其界面如下:
该博客从系统层面讲解了Android的进程,其中主要内容有:
1)Android进程从大类来划分,可分为内核进程(由kthread孵化)和用户进程(由init孵化)。
2)init
进程(1号进程),是Linux系统的用户空间进程,或者说是Android的第一个用户空间进程。
3)Zygote本身是一个Native的应用程序,刚开始的名字为“app_process”,运行过程中,通过系统调用将自己名字改为Zygote。是所有上层Java进程的父进程,android系统中还有另一个Zygote64进程,用于孵化64位的应用进程。
……
3、Android系统中获取进程(和顶端包名)
地址:https://www.jianshu.com/p/91f60bd0d1f9
主要讲解Android5.0之后,获取进程名的方式~
4、Android 获取所有已安装应用程序的包名
地址:https://blog.csdn.net/LosingCarryJie/article/details/81514075
public void getAppProcessName(Context context) {
//当前应用pid
final PackageManager packageManager = getPackageManager();
final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
// get all apps
final List<ResolveInfo> apps = packageManager.queryIntentActivities(mainIntent, 0);
for (int i = 0; i <apps.size() ; i++) {
String name = apps.get(i).activityInfo.packageName;
if(!name.contains("huawei")&&!name.contains("android")){
Log.i("TAG", "getAppProcessName: "+apps.get(i).activityInfo.packageName);
}
}
}