Android 查看手机中所有进程

时间:2021-05-22 17:39:25

  真机测试的时候发现DDMS对进程的显示很不给力,一些进程管理工具又不显示包名。

  所以就自己写了一个小程序,查看自己手机中的进程,显示当前时间和进程的包名:

  程序运行截图:

Android 查看手机中所有进程

  布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <Button
android:id="@+id/updateBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Update ProcessInfos" /> <TextView
android:id="@+id/time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
android:textStyle="bold" /> <ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent" > <TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
android:padding="5dp"/>
</ScrollView> </LinearLayout>

  主要代码:

package com.example.helloprocess;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List; import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityManager.RunningAppProcessInfo;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView; public class HelloProcessActivity extends Activity
{
private TextView mTextView = null;
private TextView mTime = null;
private Button mButton = null;
private String mText = ""; @Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hello_process); mTextView = (TextView) findViewById(R.id.text);
mTime = (TextView) findViewById(R.id.time);
mButton = (Button) findViewById(R.id.updateBtn); mButton.setOnClickListener(new View.OnClickListener()
{ @Override
public void onClick(View v)
{
updateProcessInfo();
}
}); } private void updateProcessInfo()
{
mText = "";
mTextView.setText(mText); // 获取ActivityManager
ActivityManager activityManager = (ActivityManager) this
.getSystemService(Context.ACTIVITY_SERVICE); // 更新时间
updateTimeInfo(); // 获取进程信息***************************************************
List<RunningAppProcessInfo> infos = activityManager
.getRunningAppProcesses(); for (RunningAppProcessInfo info : infos)
{
String name = info.processName; mText = mTextView.getText().toString();
mText += name + "\n\n";
mTextView.setText(mText); } } private void updateTimeInfo()
{
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
String time = df.format(new Date());
System.out.println(time);// new Date()为获取当前系统时间 mTime.setText(time); } }