Android系统信息(内存、cpu、sd卡、电量、版本)获取
来源:互联网 发布:java保留两位小数 编辑:程序博客网 时间:2024/05/01 10:03
原文
一、内存(ram):
android的总内存大小信息存放在系统的/proc/meminfo文件里面,可以通过读取这个文件来获取这些信息:
运行信息如下: 第一行是总内存大小(即用户可以使用的ram的大小)
获取当前剩余内存(ram)大小的方法 :
二、Rom大小
01
public
long
[] getRomMemroy() {
02
long
[] romInfo =
new
long
[
2
];
03
//Total rom memory
04
romInfo[
0
] = getTotalInternalMemorySize();
05
06
//Available rom memory
07
File path = Environment.getDataDirectory();
08
StatFs stat =
new
StatFs(path.getPath());
09
long
blockSize = stat.getBlockSize();
10
long
availableBlocks = stat.getAvailableBlocks();
11
romInfo[
1
] = blockSize * availableBlocks;
12
getVersion();
13
return
romInfo;
14
}
15
16
public
long
getTotalInternalMemorySize() {
17
File path = Environment.getDataDirectory();
18
StatFs stat =
new
StatFs(path.getPath());
19
long
blockSize = stat.getBlockSize();
20
long
totalBlocks = stat.getBlockCount();
21
return
totalBlocks * blockSize;
22
}
注意类型,不然相乘之后会有溢出。可用内部存储的大小不能通过getRootDirectory();取得,
网上传的很多都是用getRootDirectory()取得的,我测试之后发现取得的数值不对。要根据getDataDirectory();取得。
三、sdCard大小 注意类型,不然相乘之后会有溢出。
01
public
long
[] getSDCardMemory() {
02
long
[] sdCardInfo=
new
long
[
2
];
03
String state = Environment.getExternalStorageState();
04
if
(Environment.MEDIA_MOUNTED.equals(state)) {
05
File sdcardDir = Environment.getExternalStorageDirectory();
06
StatFs sf =
new
StatFs(sdcardDir.getPath());
07
long
bSize = sf.getBlockSize();
08
long
bCount = sf.getBlockCount();
09
long
availBlocks = sf.getAvailableBlocks();
10
11
sdCardInfo[
0
] = bSize * bCount;
//总大小
12
sdCardInfo[
1
] = bSize * availBlocks;
//可用大小
13
}
14
return
sdCardInfo;
15
}
1
private
BroadcastReceiver batteryReceiver=
new
BroadcastReceiver(){
2
@Override
3
public
void
onReceive(Context context, Intent intent) {
4
int
level = intent.getIntExtra(
"level"
,
0
);
5
// level加%就是当前电量了
6
}
7
};
1
registerReceiver(batteryReceiver,
new
IntentFilter(Intent.ACTION_BATTERY_CHANGED));
五、CPU信息 : /proc/cpuinfo文件中第一行是CPU的型号,第二行是CPU的频率
1
adb shell (connect to your Android device shell)
2
3
cat /proc/cpuinfo (read the CPU info)
01
private
String getInfo() {
02
03
StringBuffer sb =
new
StringBuffer();
04
05
sb.append(
"abi: "
).append(Build.CPU_ABI).append(
"\n"
);
06
07
if
(
new
File(
"/proc/cpuinfo"
).exists()) {
08
09
try
{
10
11
BufferedReader br =
new
BufferedReader(
new
FileReader(
new
File(
"/proc/cpuinfo"
)));
12
13
String aLine;
14
15
while
((aLine = br.readLine()) !=
null
) {
16
17
sb.append(aLine +
"\n"
);
18
19
}
20
21
if
(br !=
null
) {
22
23
br.close();
24
25
}
26
27
}
catch
(IOException e) {
28
29
e.printStackTrace();
30
31
}
32
33
}
34
35
return
sb.toString();
36
37
}
六、系统的版本信息:
版本信息里面还包括型号等信息。
七、MAC地址和开机时间:
最后贴一个格式化数据的方法: 保留两位小数。
01
public
String formatSize(
long
size) {
02
String suffix =
null
;
03
float
fSize=
0
;
04
05
if
(size >=
1024
) {
06
suffix =
"KB"
;
07
fSize=size /
1024
;
08
if
(fSize >=
1024
) {
09
suffix =
"MB"
;
10
fSize /=
1024
;
11
}
12
if
(fSize >=
1024
) {
13
suffix =
"GB"
;
14
fSize /=
1024
;
15
}
16
}
else
{
17
fSize = size;
18
}
19
java.text.DecimalFormat df =
new
java.text.DecimalFormat(
"#0.00"
);
20
StringBuilder resultBuffer =
new
StringBuilder(df.format(fSize));
21
if
(suffix !=
null
)
22
resultBuffer.append(suffix);
23
return
resultBuffer.toString();
24
}
0 0
- Android系统信息(内存(RAM)、cpu、sd卡、电量、版本)获取
- android系统信息(内存,cpu,sd卡,电量,版本)的获取
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- Android:系统信息(内存、cpu、sd卡、电量、版本)的获取
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- Android 系统信息(内存、cpu、sd卡、电量、版本)获取
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- Android系统信息(内存、cpu、sd卡、电量、版本)获取
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- 【我所认知的BIOS】—>Advanced Configuration and Power Interface原理(硬件部分)
- 英雄会 高校俱乐部 最少操作次数
- MySQL explain执行计划解读
- 29-Linux-服务-Apache-基础
- Struts JSON方式 提交数据 检查后返回检查结果
- Android系统信息(内存、cpu、sd卡、电量、版本)获取
- 不经不觉用了Linux 5个月了!
- Java 垃圾回收策略调优
- maven 基本配置
- 走进小作坊(六)----万恶的拖延症
- 一步步探究linux进程中的用户ID
- java动态代理原理及简单模拟
- Unable to execute dex: Multiple dex files define Landroi
- vim快捷键