2011-11-12 5 views
1

셸의 top 명령을 사용하여 찾은 앱에 대한 정보를 찾으려고합니다. 내가 가지고있는 것은 프로세스 이름 (패키지 이름 포함)입니다. 아이콘과 앱 이름이 완벽 할 것입니다. 나는 Google을 통해 어떤 적절한 soultion을 찾을 수 없습니다. 어떤 도움을 받으실 건가요?)프로세스 이름을 기반으로하는 Android 애플리케이션 정보

우선 사용하려면 top을 사용하십시오. 현재 프로세서 사용량을 표시하는 유일한 방법이기 때문에 사용합니다. 누군가가 좀 더 API 친숙한 soultion에 익숙하다면, 나는 감사 할 것입니다. 내가 할

예 프로세스 이름은 다음과 같습니다

  • com.android.deskclock 바탕 화면 시계
  • com.creativemobile.DragRacing에 대한 게임 드래그 레이싱에 대한

답변

4

여기에서 세부 정보를 얻을 수 있습니다. 패키지 이름을 가졌으므로 패키지 이름을 사용하여 해당 응용 프로그램 이름, 버전 및 아이콘을 가져올 수 있습니다.

List<PackageInfo> packagess = getPackageManager().getInstalledPackages(0); 
for(int i=0;i<packagess.size();i++) { 
    PackageInfo pack = packagess.get(i); 
    if ((!getSysPackages) && (pack.versionName == null)) { 
     continue ; 
    } 

    //this is the application name 
    pack.applicationInfo.loadLabel(getPackageManager()).toString(); 

    //this is the package name 
    pack.packageName; 

    //this is the version name 
    pack.versionName; 

    //this is the version code 
    pack.versionCode; 

    //this is the application icon 
    pack.applicationInfo.loadIcon(getPackageManager()); 
} 
+0

내가 올바르게 이해할 수 있는지 확인하려면 설치 패키지에서 'top'명령을 통해 얻은 패키지를 찾는 것이 좋습니다. 맛있게 들리 겠지만, 오후에 일하러 가서 확인해 보겠습니다.) – Moyshe

+0

@Moyshe 예. HashMap 또는 원하는대로 저장할 수 있습니다. –

+0

효과가있었습니다! 고마워요! 에일 크레딧은 당신 소유입니다;) – Moyshe

0

당신은 코드 아래에 시도 할 수 있습니다

private String getTopActivity() { 

     ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
     List<ActivityManager.RunningTaskInfo> RunningTask = mActivityManager.getRunningTasks(1); 
     ActivityManager.RunningTaskInfo ar = RunningTask.get(30); 
     return ar.topActivity.getClassName().toString(); 
    } 

당신에게 AndroidManifes에서 작업 가져 오기 권한을 부여해야합니다. t.xml

+0

내 두 번째 질문에 대한 답변입니다. 왜냐하면 그것은 앱 이름 대신 클래스 이름을 제공하기 때문입니다. 불행하게도, 나는 proc 이름만큼 똑같이 쓸모가 없다는 것을 알았다. 또한, 내 두 번째 질문에 대한 대답이라면 프로세서 통계가 어딘가에서 사용할 수 있습니까? 아니면 여기서 뭔가를 놓치고있는 것일까 요? 어쩌면 내가 너의 요점을 이해하지 못했을 까? – Moyshe