原文: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;
}
|