마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

top 명령어 실행시 line 출력

0 추천

adb shell 에서 

|generic_x86:/ $ top -n 1 |grep com.google.android.talk
14053 u0_a54   20   0   0% S    17 1207504K  65164K  bg com.google.android.talk
14087 u0_a54   20   0   0% S    12 1201296K  56052K  bg com.google.android.talk:matchstick

top -n 1 |grep com.google.android.talk명령어를 입력하면 분명히 2줄이 출력되는데 

아무리 reuntime.exec 돌려도 null이나오네요.

현재 안드로이드버젼은 24버전(마시멜로 ) 입니다.

ActivityManager activity_manager = (ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runningApps = activity_manager.getRunningAppProcesses();
Runtime runtime = Runtime.getRuntime();
Process process=null;
float cpuAvail=0;
try {
    String cmd = "top -n 1 |grep com.google.android.talk";
    process = runtime.exec(cmd);
    InputStream is = process.getInputStream();
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader br = new BufferedReader(isr);
    String line ;
    
    while ((line = br.readLine()) != null) {
        Log.i("LOGs","line:"+line);
        String segs[] = line.trim().split("[ ]+");

    }


} catch (Exception e) {
    e.printStackTrace();
    Log.i("LOGs","cmd:"+e.getMessage());
    return ;
}

뭐가 문제인지 .. 도통 알수가 없네요 ; 

 

 

now882002 (3,860 포인트) 님이 2018년 1월 10일 질문

1개의 답변

0 추천
adb shell의 '권한'과 실제 app에서 runtime.exec()할때 '권한'이 달라서 그렇습니다.

권한에 따라 볼 수 있는 내용이 다릅니다.

따라서 runtime.exec()일때 보여지는 결과는 다르게 나타납니다.
디자이너정 (42,810 포인트) 님이 2018년 1월 10일 답변
...