3.16android debug 获取cpu使用率和内存占用率

原文:http://www.oschina.net/translate/encryption-decryption-invoking-openssl-api-through-jni-calls?from=20150315


下面的代码可以帮助我们了解cpu平均使用率 (利用存储在/proc/stat的信息)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public  float  readCPUusage() {
             try  {
       RandomAccessFile reader =  new  RandomAccessFile( "/proc/stat" "r" );
       String load = reader.readLine();
       String[] toks = load.split( " " );
       long  idle1 = Long.parseLong(toks[ 5 ]);
       long  cpu1 = Long.parseLong(toks[ 2 ]) + Long.parseLong(toks[ 3 ])
                               + Long.parseLong(toks[ 4 ]) + Long.parseLong(toks[ 6 ])+ Long.parseLong(toks[ 7 ]) +Long.parseLong(toks[ 8 ]);
                   try  {
                         Thread.sleep( 360 );
                   catch  (Exception e) {
                   }
 
                   reader.seek( 0 );
                   load = reader.readLine();
                   reader.close();
                   toks = load.split( " " );
                   long  idle2 = Long.parseLong(toks[ 5 ]);
                   long  cpu2 = Long.parseLong(toks[ 2 ]) + Long.parseLong(toks[ 3 ])+ Long.parseLong(toks[ 4 ]) + Long.parseLong(toks[ 6 ])
                         + Long.parseLong(toks[ 7 ]) + ong.parseLong(toks[ 8 ]);
                   return  ( float ) (cpu2 - cpu1) / ((cpu2 + idle2) - (cpu1 + idle1));
             catch  (IOException ex) {
                   ex.printStackTrace();
             }
             return  0 ;

下面的代码读取可用的系统内存.

Memory Info 是一个Android API,它允许我们查询可用的内存信息.

由于, 1024 Bytes = 1 kB & 1024 kB = 1 MB. 因此, 转换可用内存到 MB - 1024*1024 == 1048576

?
1
2
3
4
5
6
public  long  readMem(ActivityManager am) {
             MemoryInfo mi =  new  MemoryInfo();
             am.getMemoryInfo(mi);
             long  availableMegs = mi.availMem / 1048576L;
             return  availableMegs;
       }






你可能感兴趣的:(android)