- 浏览: 1313987 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (132)
- android Launcher (15)
- 收藏夹 (3)
- UI设计 (28)
- J2EE (2)
- android网络编程 (8)
- 项目经理是熬出来的 (8)
- Android图像处理 (5)
- 系统层开发 (12)
- 数据库 (2)
- 程序员是熬出来的 (2)
- Android技巧 (11)
- 地图相关 (2)
- Android底层 (9)
- Android疑难杂症 (4)
- 开发工具 (4)
- 知识梳理 (8)
- 源码阅读 (7)
- Media媒体库 (5)
- 调试技术 (3)
- Android蓝牙 (3)
- 动画特效 (5)
- jni (3)
- 串口通信 (1)
- Android优化 (3)
- 架构设计 (1)
- Android Test (1)
- 翻译系列 (0)
最新评论
-
我说123木头人雪雪:
...
Android截屏并对图片做高斯模糊处理 -
ysc123shift:
没有源码。
Android截屏并对图片做高斯模糊处理 -
我de专属doll:
你那个Jni库是自己编译的还是有现成的呢?
Android media媒体库分析之:分类别统计媒体文件大小 -
zhunanfengfeimeng:
想做项目经理?这些工具必须了解 -
ls0609:
一个带人脸识别的智能照相机demohttp://blog.cs ...
Android 调用相机,获取的图片太小
要转载请注明出处:http://gqdy365.iteye.com/blog/1066113,有很多转载了文章不写出处,还写的是什么小编最近做项目碰到什么问题怎么解决的的然后把文章贴下面,俨然一副他们自己的文章,不知羞耻!
一、内存(ram):
android的总内存大小信息存放在系统的/proc/meminfo文件里面,可以通过读取这个文件来获取这些信息:
运行信息如下:
第一行是总内存大小(即用户可以使用的ram的大小)!其他各项的介绍大家可以看这儿:
http://bg135.com/android-phones-to-get-the-total-memory-and-available-memory.html
获取当前剩余内存(ram)大小的方法:
二、Rom大小
注意类型,不然相乘之后会有溢出。可用内部存储的大小不能通过getRootDirectory();
取得,之前网上传的很多都是用getRootDirectory()取得的,我测试之后发现取得的数值不对。要根据getDataDirectory();
取得。
三、sdCard大小
注意类型,不然相乘之后会有溢出。
四、电池电量
然后在activity的oncreate()方法中注册
五、CPU信息
/proc/cpuinfo文件中第一行是CPU的型号,第二行是CPU的频率,可以通过读文件,读取这些数据!
六、系统的版本信息:
版本信息里面还包括型号等信息。
七、MAC地址和开机时间:
最后贴一个格式化数据的方法:
保留两位小数。
不需要的!
一、内存(ram):
android的总内存大小信息存放在系统的/proc/meminfo文件里面,可以通过读取这个文件来获取这些信息:
public void getTotalMemory() { String str1 = "/proc/meminfo"; String str2=""; try { FileReader fr = new FileReader(str1); BufferedReader localBufferedReader = new BufferedReader(fr, 8192); while ((str2 = localBufferedReader.readLine()) != null) { Log.i(TAG, "---" + str2); } } catch (IOException e) { } }
运行信息如下:
05-30 08:05:14.807: INFO/-SystemInfo-(1519): ---MemTotal: 204876 kB 05-30 08:05:14.807: INFO/-SystemInfo-(1519): ---MemFree: 4596 kB 05-30 08:05:14.807: INFO/-SystemInfo-(1519): ---Buffers: 16020 kB 05-30 08:05:14.807: INFO/-SystemInfo-(1519): ---Cached: 82508 kB 05-30 08:05:14.807: INFO/-SystemInfo-(1519): ---SwapCached: 64 kB 05-30 08:05:14.807: INFO/-SystemInfo-(1519): ---Active: 137104 kB 05-30 08:05:14.807: INFO/-SystemInfo-(1519): ---Inactive: 41056 kB 05-30 08:05:14.807: INFO/-SystemInfo-(1519): ---SwapTotal: 65528 kB 05-30 08:05:14.817: INFO/-SystemInfo-(1519): ---SwapFree: 65368 kB 05-30 08:05:14.817: INFO/-SystemInfo-(1519): ---Dirty: 88 kB 05-30 08:05:14.817: INFO/-SystemInfo-(1519): ---Writeback: 0 kB 05-30 08:05:14.817: INFO/-SystemInfo-(1519): ---AnonPages: 79672 kB 05-30 08:05:14.817: INFO/-SystemInfo-(1519): ---Mapped: 38296 kB 05-30 08:05:14.817: INFO/-SystemInfo-(1519): ---Slab: 5768 kB 05-30 08:05:14.817: INFO/-SystemInfo-(1519): ---SReclaimable: 1856 kB 05-30 08:05:14.827: INFO/-SystemInfo-(1519): ---SUnreclaim: 3912 kB 05-30 08:05:14.827: INFO/-SystemInfo-(1519): ---PageTables: 8184 kB 05-30 08:05:14.827: INFO/-SystemInfo-(1519): ---NFS_Unstable: 0 kB 05-30 08:05:14.827: INFO/-SystemInfo-(1519): ---Bounce: 0 kB 05-30 08:05:14.827: INFO/-SystemInfo-(1519): ---CommitLimit: 167964 kB 05-30 08:05:14.827: INFO/-SystemInfo-(1519): ---Committed_AS: 11771920 kB 05-30 08:05:14.827: INFO/-SystemInfo-(1519): ---VmallocTotal: 761856 kB 05-30 08:05:14.827: INFO/-SystemInfo-(1519): ---VmallocUsed: 83656 kB 05-30 08:05:14.827: INFO/-SystemInfo-(1519): ---VmallocChunk: 674820 kB
第一行是总内存大小(即用户可以使用的ram的大小)!其他各项的介绍大家可以看这儿:
http://bg135.com/android-phones-to-get-the-total-memory-and-available-memory.html
获取当前剩余内存(ram)大小的方法:
public long getAvailMemory() { ActivityManager am = (ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE); ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo(); am.getMemoryInfo(mi); return mi.availMem; }
二、Rom大小
public long[] getRomMemroy() { long[] romInfo = new long[2]; //Total rom memory romInfo[0] = getTotalInternalMemorySize(); //Available rom memory File path = Environment.getDataDirectory(); StatFs stat = new StatFs(path.getPath()); long blockSize = stat.getBlockSize(); long availableBlocks = stat.getAvailableBlocks(); romInfo[1] = blockSize * availableBlocks; getVersion(); return romInfo; } public long getTotalInternalMemorySize() { File path = Environment.getDataDirectory(); StatFs stat = new StatFs(path.getPath()); long blockSize = stat.getBlockSize(); long totalBlocks = stat.getBlockCount(); return totalBlocks * blockSize; }
注意类型,不然相乘之后会有溢出。可用内部存储的大小不能通过getRootDirectory();
取得,之前网上传的很多都是用getRootDirectory()取得的,我测试之后发现取得的数值不对。要根据getDataDirectory();
取得。
三、sdCard大小
public long[] getSDCardMemory() { long[] sdCardInfo=new long[2]; String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { File sdcardDir = Environment.getExternalStorageDirectory(); StatFs sf = new StatFs(sdcardDir.getPath()); long bSize = sf.getBlockSize(); long bCount = sf.getBlockCount(); long availBlocks = sf.getAvailableBlocks(); sdCardInfo[0] = bSize * bCount;//总大小 sdCardInfo[1] = bSize * availBlocks;//可用大小 } return sdCardInfo; }
注意类型,不然相乘之后会有溢出。
四、电池电量
private BroadcastReceiver batteryReceiver=new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { int level = intent.getIntExtra("level", 0); // level加%就是当前电量了 } };
然后在activity的oncreate()方法中注册
registerReceiver(batteryReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
五、CPU信息
public String[] getCpuInfo() { String str1 = "/proc/cpuinfo"; String str2=""; String[] cpuInfo={"",""}; String[] arrayOfString; try { FileReader fr = new FileReader(str1); BufferedReader localBufferedReader = new BufferedReader(fr, 8192); str2 = localBufferedReader.readLine(); arrayOfString = str2.split("\\s+"); for (int i = 2; i < arrayOfString.length; i++) { cpuInfo[0] = cpuInfo[0] + arrayOfString[i] + " "; } str2 = localBufferedReader.readLine(); arrayOfString = str2.split("\\s+"); cpuInfo[1] += arrayOfString[2]; localBufferedReader.close(); } catch (IOException e) { } return cpuInfo; }
/proc/cpuinfo文件中第一行是CPU的型号,第二行是CPU的频率,可以通过读文件,读取这些数据!
六、系统的版本信息:
public String[] getVersion(){ String[] version={"null","null","null","null"}; String str1 = "/proc/version"; String str2; String[] arrayOfString; try { FileReader localFileReader = new FileReader(str1); BufferedReader localBufferedReader = new BufferedReader( localFileReader, 8192); str2 = localBufferedReader.readLine(); arrayOfString = str2.split("\\s+"); version[0]=arrayOfString[2];//KernelVersion localBufferedReader.close(); } catch (IOException e) { } version[1] = Build.VERSION.RELEASE;// firmware version version[2]=Build.MODEL;//model version[3]=Build.DISPLAY;//system version return version; }
版本信息里面还包括型号等信息。
七、MAC地址和开机时间:
public String[] getOtherInfo(){ String[] other={"null","null"}; WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); if(wifiInfo.getMacAddress()!=null){ other[0]=wifiInfo.getMacAddress(); } else { other[0] = "Fail"; } other[1] = getTimes(); return other; } private String getTimes() { long ut = SystemClock.elapsedRealtime() / 1000; if (ut == 0) { ut = 1; } int m = (int) ((ut / 60) % 60); int h = (int) ((ut / 3600)); return h + " " + mContext.getString(R.string.info_times_hour) + m + " " + mContext.getString(R.string.info_times_minute); }
最后贴一个格式化数据的方法:
public String formatSize(long size) { String suffix = null; float fSize=0; if (size >= 1024) { suffix = "KB"; fSize=size / 1024; if (fSize >= 1024) { suffix = "MB"; fSize /= 1024; } if (fSize >= 1024) { suffix = "GB"; fSize /= 1024; } } else { fSize = size; } java.text.DecimalFormat df = new java.text.DecimalFormat("#0.00"); StringBuilder resultBuffer = new StringBuilder(df.format(fSize)); if (suffix != null) resultBuffer.append(suffix); return resultBuffer.toString(); }
保留两位小数。
评论
13 楼
ddnzero
2014-07-24
很有用 ~~~
12 楼
ft1223ccc
2014-03-13
一下就解决了我的问题,太感谢了
11 楼
ft1223ccc
2014-03-13
一下就解决了我的问题,太感谢了
10 楼
ft1223ccc
2014-03-13
一下就解决了我的问题,太感谢了
9 楼
chuchu521
2013-11-09
请问不用程序获取或者第三方软件查看 怎样直接通过手机就可以查看这些信息呢?
8 楼
爱得疯
2013-07-17
这个不对吧,cpuinfo第一行只是CPU指令集~~~ARMv7 Processor rev 10 (v7l) 看不出型号的~~
7 楼
xjhssg
2012-12-27
请问/proc/kmsg可以通过上述方法读取吗?
6 楼
aking86
2011-12-16
表示支持。很有用,建议可以再多整点。还有很多东西可以获取到
5 楼
gqdy365
2011-12-02
youngerbaby 写道
都去/proc下面的文件信息是否需要root权限?
不需要的!
4 楼
youngerbaby
2011-11-17
都去/proc下面的文件信息是否需要root权限?
3 楼
wilber46
2011-11-15
正在需要,借用了
2 楼
anzhu
2011-08-15
楼主写的真好
1 楼
woshicaiqiang
2011-07-12
原创的,竟然没人顶啊
发表评论
-
(转)为什么第三方应用能早于System的app启动
2015-06-18 10:52 2130Android应用的启动顺序网上有一大堆资料可以查阅了,这里就 ... -
Android led灯实现大致流程
2015-05-11 18:07 17393led灯的控制在http://gqdy365.iteye.co ... -
Android应用程序获取系统权限
2015-04-29 18:27 1020引用 如何使Android应用程序获取系统权限 ... -
Android SparseArray源码阅读
2015-04-08 09:39 2620/* * Copyright (C) 2006 The ... -
(转载)Android 四种加载方式详解(standard、singleTop、singleTask、singleInstance)
2015-03-16 17:24 1515在多Activity开发中,有可能是自己应用之间的Activ ... -
Android jni系统变量、函数、接口定义汇总
2015-03-09 11:29 8351在做Android jni开发时,jni为我们提供了哪些函数、 ... -
Android串口通信:串口读写实例
2015-03-05 09:40 108565在Android串口通信:基本知识梳理(http://gqdy ... -
Android media媒体库分析之:分类别统计媒体文件大小
2014-12-18 15:50 5420对系统媒体库不了解的线看这儿: Android media媒体 ... -
Android media媒体库分析之:调用系统媒体库完成指定媒体文件扫描
2014-12-10 15:35 3666之前文章中分析了Android media媒体库,详见:htt ... -
Android中使用Context?这几点要注意
2014-10-30 15:26 1372通过阅读源码,我们会发现: 1、它描述的是一个应用程序环境的信 ... -
Android知识梳理:消息机制之Handler
2014-10-28 17:17 5058Android知识梳理:消息机制之Looper http:// ... -
Android知识梳理:消息机制之Looper
2014-10-14 09:30 2325Android消息机制中,Looper ... -
Android关于短信加密
2014-08-28 16:07 2453关于Android短信加密功能,我初步了解的如下(只在Andr ... -
Android jni
2014-08-23 15:22 0http://code.google.com/p/androi ... -
Android常用shell指令收集
2016-02-15 17:24 1142一、base cmd 1、挂载文件系统:mount -o r ...
相关推荐
android系统信息(内存、cpu、sd卡、电量、版本)获取.txt android的总内存大小信息存放在系统的/proc/meminfo文件里面,可以通过读取这个文件来获取这些信息:
Android开发之系统信息【1】——获取Android手机中SD卡存储信息Android开发之系统信息【1】——获取Android手机中SD卡存储信息
来获取内置SD卡的路径,但是每款定制过的android 系统的外置SD卡的路径都不一样,那我们怎么才能去获取这个路径呢,我们可以想其它的办法,我这里提供了一个类可以获取外置SD卡或内置SD卡的 label(名称),path(路径)...
android 获取外置内存卡android获取sdcard内存路径android判断外置sd卡是否存在Android 获取内外置存储卡方法
Due to undocumented changes made by Google, on Android 7.0 CPU usage information for processes others than the own AnotherMonitor one will not be available (not even with root access). Rest of the app...
Android获取储存信息以及内存信息可以用adb命令查看。 adb查看系统内存信息以及储存信息: 命令:adb shell cat /proc/meminfo 代码: private static final String FILENAME_PROC_MEMINFO = /proc/meminfo; /*...
这个可以获取到Android 6.0版本之后的sd卡的路径和存储大小,可以判断是否存在外设存储。
Android 通过反射获取外置SD卡路径 Android 通过反射获取外置SD卡路径 Android 通过反射获取外置SD卡路径
Android设备获取存储卡路径的源程序,高于3.2版本时,用getVolumePaths通过反射获取,否则通过System.getenv("SECONDARY_STORAGE")获取,再通过查询剩余空间确定是否插有SD卡
当前只能用Environment.getExternalStorageDirectory()获取内置的SD卡路径,因为不同机型的系统SD卡的路径不相同,我拿三星s3试试,全是都只找到内置SD卡,后来通过获取系统进程名字找到内存卡路径。
java使用siger 获取服务器硬件信息(CPU 内存 网络 io等)
访问android 手机内存与存储卡 本示例程序 为访问本机内存与存储卡-------File 的创建与删除
安卓内存CPUSD卡内置存储使用率.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
android 手机获取SD卡信息代码
android 读取外置和内置存储卡路径和大小,亲测好使,项目中以运用
android 内部存储 sd卡app私有文件 等
Android下数据持久化存储在自带内存与存储卡,具体可以参见博客:http://www.cnblogs.com/plokmju/p/Android_Storage.html
webview可以获取SD卡图片并显示,且完美解决Android4.4以后webview无法访问SD卡图片的问题。
android通过代码读取手机sd卡中的音乐文件,放在adapter中,然后放到一个ListView中,做音乐列表
android gallery 图片轮播 展示SD卡下指定目录的图片 可删除