日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android提示程序正在执行,Android中获取正在运行的进程(一)

發布時間:2025/3/15 Android 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android提示程序正在执行,Android中获取正在运行的进程(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于android中應用程序正在運行的進程有下面幾種:1-包含services的進程,2-不包含services的進程,3-殺死應用時有些進程被init回收(類似于僵尸進程),ppid變為1,無法通過android 應用層代碼獲得的進程。這些進程可能是應用的重啟進程,導致應用重啟,也就是我們做了殺死應用進程的操作后,發現一段時間后,應用又重新啟動的現象。

一、對于前兩者,可以調用androud系統函數來獲得,示例如下:

ActivityManager?mActivityManager?=?(ActivityManager)?context.getSystemService(Context.ACTIVITY_SERVICE)?;

//獲得系統運行的進程

List?appList1?=?mActivityManager

.getRunningAppProcesses();

for(RunningAppProcessInfo?running?:?appList1)?{

System.out.println(running.processName);

}

System.out.println("================");

//獲得當前正在運行的service

List?appList2?=?mActivityManager

.getRunningServices(100);

for(ActivityManager.RunningServiceInfo?running?:?appList2)?{

System.out.println(running.service.getClassName());

}

System.out.println("================");

//獲得當前正在運行的activity

List?appList3?=?mActivityManager

.getRunningTasks(1000);

for(ActivityManager.RunningTaskInfo?running?:?appList3)?{

System.out.println(running.baseActivity.getClassName());

}

System.out.println("================");

//獲得最近運行的應用

List?appList4?=?mActivityManager

.getRecentTasks(100,1);

for(ActivityManager.RecentTaskInfo?running?:?appList4)?{

System.out.println(running.origActivity.getClassName());

}

二、對于第三種,我們都知道在linux shell中輸入ps命令,可以查看所有運行的進程,

root@android:/ #

root@android:/ # ps

USER???? PID?? PPID? VSIZE? RSS???? WCHAN??? PC???????? NAME

root????? 1???? 0???? 412??? 244?? c00cf1c0 0000ffe4 S /init

root????? 2???? 0???? 0????? 0???? c0044560 00000000 S kthreadd

root????? 3???? 2???? 0????? 0???? c002eae4 00000000 S ksoftirqd/0

root????? 6???? 2???? 0????? 0???? c007aaa4 00000000 S migration/0

root????? 7???? 2???? 0????? 0???? c007dfb0 00000000 S watchdog/0

root????? 12??? 2???? 0????? 0???? c003fd14 00000000 S khelper

root????? 13??? 2???? 0????? 0???? c003fd14 00000000 S netns

.......

root????? 17??? 2???? 0????? 0???? c003fd14 00000000 S suspend_sys_syn

u0_a55??? 16896 1413? 545192 52208 ffffffff 4010eea4 S com.tencent.mm

u0_a55??? 16934 1413? 526176 34352 ffffffff 4010eea4 S com.tencent.mm:push

u0_a37??? 17719 1413? 512816 30040 ffffffff 4010eea4 S com.nufront.NufrontTestDemo

u0_a25??? 17835 1413? 487536 22400 ffffffff 4010eea4 S com.android.smspush

root????? 18674 1432? 928??? 544?? c0011ad4 40160934 S /system/bin/sh

root????? 18688 18674 1236?? 460?? 00000000 400bfd38 R ps

再執行kill命令,就可以殺死對應的進程

root@android:/ # kill? 16896

再有,如果執行ps | grep試試看:

root@android:/ #

root@android:/ #ps | grep tencent

u0_a55??? 16896 1413? 545192 52208 ffffffff 4010eea4 S com.tencent.mm

u0_a55??? 16934 1413? 526176 34352 ffffffff 4010eea4 S com.tencent.mm:push

root@android:/ #

在android中有一個函數是有kill命令功能的: Process.killProcess(int pid);

所以,我們只需要根據package name,找到沒有被殺死的進程的進程號,再調用killprocess()函數,就可以殺死一直殺不死的進程了。可參考下面的代碼:

java.lang.Process process=null;

Runtime rt=Runtime.getRuntime();

System.out.println("start");

try {

process=rt.exec("busybox pgrep nuomi");

InputStream is=null;

InputStreamReader isr=null;

BufferedReader buffer=null;

String line=null;

String xxx = null;

is=process.getInputStream();

isr=new InputStreamReader(is);

buffer=new BufferedReader(isr);

while((line=buffer.readLine())!=null){

System.out.println(line+"----------");

Process.killProcess(Integer.valueOf(line));

xxx = line;

}

System.out.println(xxx+"***********");

} catch (IOException e) {

e.printStackTrace();

}

System.out.println("end");

三、另外一些關于應用程序的函數可參考下面

推薦方法

1、

//全部程序包

private void queryFilterAppInfo() {

PackageManager pm = this.getPackageManager();

// 查詢所有已經安裝的應用程序

List

listAppcations = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);//?GET_UNINSTALLED_PACKAGES代表已刪除,但還有安裝目錄的

for (ApplicationInfo app : listAppcations) {

AppInfo appInfo = new AppInfo();

appInfo.setAppLabel((String) app.loadLabel(pm));

appInfo.setAppIcon(app.loadIcon(pm));

appInfo.setPkgName(app.packageName);

mlistAppInfo.add(appInfo);

}

}

2、

// 獲得所有系統的

public void querySysAppInfo()

{

PackageManager pm = this.getPackageManager();

Intent intent = new Intent(Intent.ACTION_MAIN, null);

intent.addCategory(Intent.CATEGORY_LAUNCHER);

// 通過查詢,獲得所有ResolveInfo對象.

List resolveInfos =

pm.queryIntentActivities(intent,

PackageManager.MATCH_DEFAULT_ONLY);

for (ResolveInfo reInfo : resolveInfos) {

String activityName = reInfo.activityInfo.name; //

獲得該應用程序的啟動Activity的name

String pkgName = reInfo.activityInfo.packageName; // 獲得應用程序的包名

String appLabel = (String) reInfo.loadLabel(pm); //

獲得應用程序的Label

Drawable icon = reInfo.loadIcon(pm); // 獲得應用程序圖標

System.out.println(appLabel + " activityName---" +

activityName

+ " pkgName---" + pkgName);

}

}

3、 ?//最簡單的方法

public ?boolean appIsInstalled(String

packageName){

try {

PackageManager pm = this.getPackageManager();

pm.getPackageInfo(packageName,

PackageManager.GET_ACTIVITIES);

System.out.println("已安裝"+packageName);

} catch (NameNotFoundException e) {

System.out.println("沒有安裝"+packageName);

return false;

}

return true;

}

4、//?獲得所有包信息

public void getInstallPackage() {

PackageManager packageManager =

this.getPackageManager();

List

packageInfoList=packageManager.getInstalledPackages(0);

mlistAppInfo.clear();

for (int

i=0;i

{

PackageInfo pi = packageInfoList.get(i);

System.out.println((i+1)+":"+pi.toString());

}

}

5、 ?//直接啟動方法

public ?void srartApp(String

packageName){

Intent intent =

this.getPackageManager().getLaunchIntentForPackage(packageName);

if(intent!=null)

//已安裝包 直接啟動

startActivity(intent);

}

參考:androidbin.iteye.com/blog/1594908,blog.sina.com.cn/s/blog_3e333c4a01015v3e.html等,謝謝!!!

總結

以上是生活随笔為你收集整理的android提示程序正在执行,Android中获取正在运行的进程(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 最新av中文字幕 | 狠狠操网 | 日本少妇全体裸体洗澡 | 91精品国产综合久久久蜜臀粉嫩 | 免费视频爱爱太爽 | 国产精品久久久久久久久毛片 | 九月色婷婷 | 密臀av在线播放 | 国内av片 | 777片理伦片在线观看 | 欧美特级特黄aaaaaa在线看 | 日韩孕交 | 成年人在线免费观看视频网站 | 精品成人av| 日韩小视频网站 | 91成人看 | 日日躁夜夜躁aaaabbbb | 丰满孕妇性春猛交xx大陆 | 一区二区视频在线观看免费 | 国产精品乱码一区二区视频 | av网站免费在线观看 | 国产一级片一区二区 | 午夜精品福利在线 | 日韩成人精品视频 | 波多野结衣黄色网址 | 日韩欧美一区二区三区久久婷婷 | 日韩大片免费在线观看 | 青青视频免费看 | 精品少妇一二三区 | 成年人视频免费看 | 国产一区二区视频免费观看 | 亚洲最新视频 | 男人天堂国产 | 欧美日韩一区二区综合 | 影音资源av| 五月婷婷视频在线观看 | 男人的天堂伊人 | 午夜在线观看视频 | 免费看成人av | 成人黄色免费在线观看 | www.97av.com| 你懂的在线网站 | 亚洲乱码国产乱码精品天美传媒 | 涩涩视频在线播放 | 久久久久人妻一区精品色欧美 | 亚洲午夜福利在线观看 | 亚洲情人网 | 国产精品高清无码 | 亚洲欧美日韩在线不卡 | 中文字幕在线观看一区二区三区 | 波多野结衣加勒比 | 狂野欧美性猛交免费视频 | 亚洲精品五月 | 青青草这里只有精品 | 黄片毛片在线看 | 日韩爆操| 精品一性一色一乱农村 | 伊人99热 | 少妇太爽了太深了太硬了 | 激情自拍偷拍 | 午夜av福利 | 黑人巨大精品欧美一区免费视频 | 日韩精品一区二区三区高清免费 | 日韩精品一区二区在线看 | 日韩高清一区 | 97免费人妻无码视频 | 九色91popny蝌蚪 | 韩国一区二区三区在线观看 | 女女h百合无遮羞羞漫画软件 | 97在线精品视频 | 色综合久久精品亚洲国产 | 久久机热这里只有精品 | 久久国产精品久久久久久 | 国产视频69 | 波多野结衣办公室双飞 | 青在线视频 | 欧美成人不卡视频 | 中文精品在线观看 | 亚洲aⅴ网站 | aa丁香综合激情 | 中文字幕精品视频在线 | 国产+日韩+欧美 | 97视频网址 | 日韩午夜片 | 午夜视频在线网站 | 国产精品天天狠天天看 | 日本女v片 | 免费毛片在线播放 | 免费久久 | 中文字幕av第一页 | 蜜桃久久精品成人无码av | 天天综合色网 | 中文字幕在线播放第一页 | 操女人视频网站 | 精品国产伦一区二区三 | 国产一极片 | 国产二级毛片 | 玖玖在线资源 | 亚洲视频精品在线 |