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); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了