zoukankan      html  css  js  c++  java
  • android系统信息获取

    一、内存(ram):

    android的总内存大小信息存放在系统的/proc/meminfo文件里面,可以通过读取这个文件来获取这些信息:

    Java代码

    publicvoidgetTotalMemory(){

    Stringstr1="/proc/meminfo";

    Stringstr2="";

    try{

    FileReaderfr=newFileReader(str1);

    BufferedReaderlocalBufferedReader=newBufferedReader(fr,8192);

    while((str2=localBufferedReader.readLine())!=null){

    Log.i(TAG,"---"+str2);

    }

    }catch(IOExceptione){

    }

    }

    运行信息如下:

    Java代码

    05-3008:05:14.807:INFO/-SystemInfo-(1519):---MemTotal:204876kB

    05-3008:05:14.807:INFO/-SystemInfo-(1519):---MemFree:4596kB

    05-3008:05:14.807:INFO/-SystemInfo-(1519):---Buffers:16020kB

    05-3008:05:14.807:INFO/-SystemInfo-(1519):---Cached:82508kB

    05-3008:05:14.807:INFO/-SystemInfo-(1519):---SwapCached:64kB

    05-3008:05:14.807:INFO/-SystemInfo-(1519):---Active:137104kB

    05-3008:05:14.807:INFO/-SystemInfo-(1519):---Inactive:41056kB

    05-3008:05:14.807:INFO/-SystemInfo-(1519):---SwapTotal:65528kB

    05-3008:05:14.817:INFO/-SystemInfo-(1519):---SwapFree:65368kB

    05-3008:05:14.817:INFO/-SystemInfo-(1519):---Dirty:88kB

    05-3008:05:14.817:INFO/-SystemInfo-(1519):---Writeback:0kB

    05-3008:05:14.817:INFO/-SystemInfo-(1519):---AnonPages:79672kB

    05-3008:05:14.817:INFO/-SystemInfo-(1519):---Mapped:38296kB

    05-3008:05:14.817:INFO/-SystemInfo-(1519):---Slab:5768kB

    05-3008:05:14.817:INFO/-SystemInfo-(1519):---SReclaimable:1856kB

    05-3008:05:14.827:INFO/-SystemInfo-(1519):---SUnreclaim:3912kB

    05-3008:05:14.827:INFO/-SystemInfo-(1519):---PageTables:8184kB

    05-3008:05:14.827:INFO/-SystemInfo-(1519):---NFS_Unstable:0kB

    05-3008:05:14.827:INFO/-SystemInfo-(1519):---Bounce:0kB

    05-3008:05:14.827:INFO/-SystemInfo-(1519):---CommitLimit:167964kB

    05-3008:05:14.827:INFO/-SystemInfo-(1519):---Committed_AS:11771920kB

    05-3008:05:14.827:INFO/-SystemInfo-(1519):---VmallocTotal:761856kB

    05-3008:05:14.827:INFO/-SystemInfo-(1519):---VmallocUsed:83656kB

    05-3008:05:14.827:INFO/-SystemInfo-(1519):---VmallocChunk:674820kB

    第一行是总内存大小(即用户可以使用的ram的大小)!

    获取当前剩余内存(ram)大小的方法:

    Java代码

    publiclonggetAvailMemory(){

    ActivityManageram=(ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE);

    ActivityManager.MemoryInfomi=newActivityManager.MemoryInfo();

    am.getMemoryInfo(mi);

    returnmi.availMem;

    }

    二、Rom大小

    Java代码

    publiclong[]getRomMemroy(){

    long[]romInfo=newlong[2];

    Fileroot=Environment.getRootDirectory();

    StatFssf=newStatFs(root.getPath());

    longbSize=sf.getBlockSize();

    longbCount=sf.getBlockCount();

    longavailBlocks=sf.getAvailableBlocks();

    romInfo[0]=bSize*bCount;//总大小

    romInfo[1]=bSize*availBlocks;//可用大小

    returnromInfo;

    }

    注意类型,不然相乘之后会有溢出。

    三、sdCard大小

    Java代码

    publiclong[]getSDCardMemory(){

    long[]sdCardInfo=newlong[2];

    Stringstate=Environment.getExternalStorageState();

    if(Environment.MEDIA_MOUNTED.equals(state)){

    FilesdcardDir=Environment.getExternalStorageDirectory();

    StatFssf=newStatFs(sdcardDir.getPath());

    longbSize=sf.getBlockSize();

    longbCount=sf.getBlockCount();

    longavailBlocks=sf.getAvailableBlocks();

    sdCardInfo[0]=bSize*bCount;//总大小

    sdCardInfo[1]=bSize*availBlocks;//可用大小

    }

    returnsdCardInfo;

    }

    注意类型,不然相乘之后会有溢出。

    四、电池电量

    Java代码

    privateBroadcastReceiverbatteryReceiver=newBroadcastReceiver(){

    @Override

    publicvoidonReceive(Contextcontext,Intentintent){

    intlevel=intent.getIntExtra("level",0);

    //level加%就是当前电量了

    }

    };

    然后在activity的oncreate()方法中注册

    Java代码

    1.registerReceiver(batteryReceiver,newIntentFilter(Intent.ACTION_BATTERY_CHANGED));

    registerReceiver(batteryReceiver,newIntentFilter(Intent.ACTION_BATTERY_CHANGED));

    五、CPU信息

    Java代码

    publicString[]getCpuInfo(){

    Stringstr1="/proc/cpuinfo";

    Stringstr2="";

    String[]cpuInfo={"",""};

    String[]arrayOfString;

    try{

    FileReaderfr=newFileReader(str1);

    BufferedReaderlocalBufferedReader=newBufferedReader(fr,8192);

    str2=localBufferedReader.readLine();

    arrayOfString=str2.split("\\s+");

    for(inti=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(IOExceptione){

    }

    returncpuInfo;

    }

    /proc/cpuinfo文件中第一行是CPU的型号,第二行是CPU的频率,可以通过读文件,读取这些数据!

    最后贴一个格式化数据的方法:

    Java代码

    publicStringformatSize(longsize){

    Stringsuffix=null;

    floatfSize=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.DecimalFormatdf=newjava.text.DecimalFormat("#0.00");

    StringBuilderresultBuffer=newStringBuilder(df.format(fSize));

    if(suffix!=null)

    resultBuffer.append(suffix);

    returnresultBuffer.toString();

    }

    保留两位小数。

  • 相关阅读:
    TAM实施范例
    xmanager连接到RHEL6.
    TAM安装过程中遇到的问题
    db29.1FP2升级FP12
    WAS常见问题及解答
    在 Lotus Quickr for Domino 环境中使用 Tivoli Access Manager WebSEAL 作为反向代理服务器
    TAM包含的内容全面的指南自IBM
    Setting up the Web Admin Tool in LDAP 6.x to communicate via SSL
    oracle字符集。
    redhat中设置环境变量PATH的方法和只显示目录的Tree
  • 原文地址:https://www.cnblogs.com/AlexCheng/p/2120021.html
Copyright © 2011-2022 走看看