Android 查看手机中所有进程
真机测试的时候发现DDMS对进程的显示很不给力,一些进程管理工具又不显示包名。
所以就自己写了一个小程序,查看自己手机中的进程,显示当前时间和进程的包名:
程序运行截图:
布局:
<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); } }