android進程號
⑴ android怎樣判斷一個進程是否結束
手機通過USB,使用電腦進行調試
打開cmd,輸入adb shell ps|findstr 包名的一部分
查看列印的結果,如果列印出某進程的進程號則說明該進程沒有結束,否則已經結束
如果手機已成功root,可以使用
adb shell
su
kill -s 9 進程號
殺掉該進程
⑵ android怎麼查看進程的埠號
這是看不了的,因為這些埠是由DDMS創建,並且將它們與設備中的進程建立了連接。
這不是ADB做的,ADB只是提供了介面來做這些工作。你可以在命令行下自己去做連接映射,看一下adb的forward命令。
⑶ Android中如何根據埠號尋找對應的進程
參考下面方法:首先,通過埠號找到進程PID,命令:netstat -ano | findstr "埠號" 其次,通過PID號找進程名,命令:tasklist | findstr "PID號"。
⑷ 如何在Android中取得當前進程名
方法一:調用ActivityManager
代碼如下
java">ActivityManageram=(ActivityManager)this
.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo>list=_am.getRunningAppProcesses();
for(inti=0;i<list.size();i++){
Log.i("tag",list.get(i).pid);
}
方法二:調用Process類獲取
只需要一句代碼即可
intpid=android.os.Process.myPid();
還可以使用android.os.Process.myTid()獲取調用進程的線程ID
和android.os.Process.myUid():獲取該進程的用戶ID
⑸ Android怎麼獲取進程Id
通過linux命令來獲取進程ID範例代碼:
ProcesspsProcess=Runtime.getRuntime().exec("sh");
DataOutputStreamout=newDataOutputStream(psProcess.getOutputStream());
InputStreamis=psProcess.getInputStream();
out.writeBytes("ps|grep'vpnloader'|cut-c10-14 ");
out.writeBytes("ps ");
out.flush();
try{
psProcess.waitFor();
}catch(InterruptedExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();}
if(is.read()!=0)
{
bytefirstByte=(byte)is.read();
intavailable=is.available();
byte[]characters=newbyte[available+1];
characters[0]=firstByte;
is.read(characters,1,available);
Stringre=newString(characters);
}
⑹ g700中android os進程包含哪些
我們通過ActivityManager獲取了系統的可用內存信息以及正在運行在系統里的進程具體信息,當然你也可以選擇手動殺死這些進程,不過前提是用戶進程,因為系統進程是殺不死的。
資源文件什麼的就不再貼代碼了,直接列出邏輯文件。
獲取系統可用內存的代碼:MainActivity.java
package com.qin.ammp;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityManager.MemoryInfo;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Debug;
import android.text.format.Formatter;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
private static String TAG = "AM_MEMORYIPROCESS" ;
private ActivityManager mActivityManager = null ;
private TextView tvAvailMem ;
private Button btProcessInfo ;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tvAvailMem = (TextView)findViewById(R.id.tvAvailMemory) ;
btProcessInfo =(Button)findViewById(R.id.btProcessInfo);
//跳轉到顯示進程信息界面
btProcessInfo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this,BrowseProcessInfoActivity.class);
startActivity(intent);
}
});
//獲得ActivityManager服務的對象
mActivityManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
//獲得可用內存信息
String availMemStr = getSystemAvaialbeMemorySize();
Log.i(TAG, "The Availabel Memory Size is"+availMemStr);
//顯示
tvAvailMem.setText(availMemStr);
}
//獲得系統可用內存信息
private String getSystemAvaialbeMemorySize(){
//獲得MemoryInfo對象
MemoryInfo memoryInfo = new MemoryInfo() ;
//獲得系統可用內存,保存在MemoryInfo對象上
mActivityManager.getMemoryInfo(memoryInfo) ;
long memSize = memoryInfo.availMem ;
//字元類型轉換
String availMemStr = formateFileSize(memSize);
return availMemStr ;
}
//調用系統函數,字元串轉換 long -String KB/MB
private String formateFileSize(long size){
return Formatter.formatFileSize(MainActivity.this, size);
}
}
獲取系統進程信息的代碼 :BrowseProcessInfoActivity .java
package com.qin.ammp;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Debug;
import android.util.Log;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
public class BrowseProcessInfoActivity extends Activity implements OnItemClickListener{
private static String TAG = "ProcessInfo";
private static final int KILL_PORCESS = 1;
private static final int SEARCH_RUNNING_APP = 2;
private ActivityManager mActivityManager = null;
// ProcessInfo Model類 用來保存所有進程信息
private List<ProcessInfo> processInfoList = null;
private ListView listviewProcess;
private TextView tvTotalProcessNo ;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.browse_process_list);
listviewProcess = (ListView) findViewById(R.id.listviewProcess);
listviewProcess.setOnItemClickListener(this);
tvTotalProcessNo =(TextView)findViewById(R.id.tvTotalProcessNo);
this.registerForContextMenu(listviewProcess);
// 獲得ActivityManager服務的對象
mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
// 獲得系統進程信息
getRunningAppProcessInfo();
// 為ListView構建適配器對象
BrowseProcessInfoAdapter mprocessInfoAdapter = new BrowseProcessInfoAdapter(
this, processInfoList);
listviewProcess.setAdapter(mprocessInfoAdapter);
tvTotalProcessNo.setText("當前系統進程共有:"+processInfoList.size());
}
//殺死該進程,並且刷新
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, final int position, long arg3) {
// TODO Auto-generated method stub
new AlertDialog.Builder(this).setMessage("是否殺死該進程")
.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
//殺死該進程,釋放進程佔用的空間
mActivityManager.killBackgroundProcesses(processInfoList.get(position).getProcessName());
//刷新界面
getRunningAppProcessInfo() ;
BrowseProcessInfoAdapter mprocessInfoAdapter = new BrowseProcessInfoAdapter(
BrowseProcessInfoActivity.this, processInfoList);
listviewProcess.setAdapter(mprocessInfoAdapter);
tvTotalProcessNo.setText("當前系統進程共有:"+processInfoList.size());
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.cancel() ;
}
}).create().show() ;
}
// 獲得系統進程信息
private void getRunningAppProcessInfo() {
// ProcessInfo Model類 用來保存所有進程信息
processInfoList = new ArrayList<ProcessInfo>();
// 通過調用ActivityManager的getRunningAppProcesses()方法獲得系統里所有正在運行的進程
List<ActivityManager.RunningAppProcessInfo> appProcessList = mActivityManager
.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo appProcessInfo : appProcessList) {
// 進程ID號
int pid = appProcessInfo.pid;
// 用戶ID 類似於Linux的許可權不同,ID也就不同 比如 root等
int uid = appProcessInfo.uid;
// 進程名,默認是包名或者由屬性android:process=""指定
String processName = appProcessInfo.processName;
// 獲得該進程佔用的內存
int[] myMempid = new int[] { pid };
// 此MemoryInfo位於android.os.Debug.MemoryInfo包中,用來統計進程的內存信息
Debug.MemoryInfo[] memoryInfo = mActivityManager
.getProcessMemoryInfo(myMempid);
// 獲取進程占內存用信息 kb單位
int memSize = memoryInfo[0].dalvikPrivateDirty;
Log.i(TAG, "processName: " + processName + " pid: " + pid
+ " uid:" + uid + " memorySize is -->" + memSize + "kb");
// 構造一個ProcessInfo對象
ProcessInfo processInfo = new ProcessInfo();
processInfo.setPid(pid);
processInfo.setUid(uid);
processInfo.setMemSize(memSize);
processInfo.setPocessName(processName);
processInfoList.add(processInfo);
// 獲得每個進程里運行的應用程序(包),即每個應用程序的包名
String[] packageList = appProcessInfo.pkgList;
Log.i(TAG, "process id is " + pid + "has " + packageList.length);
for (String pkg : packageList) {
Log.i(TAG, "packageName " + pkg + " in process id is -->"+ pid);
}
}
}
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
menu.add(0, 0, KILL_PORCESS, "殺死該進程");
menu.add(0, 0, SEARCH_RUNNING_APP, "運行在該進程的應用程序");
super.onCreateContextMenu(menu, v, menuInfo);
}
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case KILL_PORCESS: // 殺死該進程 , 重新載入界面
new AlertDialog.Builder(this).setMessage("是否殺死該進程")
.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.cancel() ;
}
}).create().show() ;
break;
case SEARCH_RUNNING_APP: // 查看運行在該進程的應用程序信息
break;
default:
break;
}
return super.onContextItemSelected(item);
}
}
我們可以通過進程佔用內存大小來進而獲取佔用cpu大小,直接換算還是很簡單的。
⑺ 在Android中,是否有獲得當前進程名稱的方法
方法一:調用ActivityManager
代碼如下
ActivityManageram=(ActivityManager)this
.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo>list=_am.getRunningAppProcesses();
for(inti=0;i<list.size();i++){
Log.i("tag",list.get(i).pid);
}
方法二:調用Process類獲取
只需要一句代碼即可
intpid=android.os.Process.myPid();
還可以使用android.os.Process.myTid()獲取調用進程的線程ID
和android.os.Process.myUid():獲取該進程的用戶ID
⑻ 如何在android中取得當前進程名
在Android中,我們可以通過Process.myPid()和
RunningAppProcessInfo來取得當前的進程名。
示例1
String getCurProcessName(Context context) {
int pid = android.os.Process.myPid();
ActivityManager mActivityManager = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningAppProcessInfo appProcess : mActivityManager
.getRunningAppProcesses()) {
if (appProcess.pid == pid) {
return appProcess.processName;
}
}
return null;
⑼ Android中的進程有哪些,說出他們的優先順序
你這問的賊有深度,鏈接給你網頁鏈接我蹭個積分先
前台進程
可見進程
服務進程
後台進程
空進程