当前位置:操作系统 > 安卓/Android >>

Android 获取内存信息

 

<p> </p><p> 

import java.io.BufferedReader; 

import java.io.FileReader;</p><p>import android.app.Activity; 

import android.app.ActivityManager; 

import android.os.Bundle; 

import android.os.Handler; 

import android.os.Message; 

import android.widget.TextView;</p><p>public class SystemInfo extends Activity { 

   

 private TextView textView,textView2; 

 ActivityManager am; 

 ActivityManager.MemoryInfo memoryInfo; 

    public void onCreate(Bundle savedInstanceState) { 

      super.onCreate(savedInstanceState); 

      setContentView(R.layout.sysinfo); 

      textView=(TextView) findViewById(R.id.sys_textView1); 

      textView2=(TextView) findViewById(R.id.sys_textView2); 

       am=(ActivityManager) getSystemService(ACTIVITY_SERVICE); 

       memoryInfo=new ActivityManager.MemoryInfo(); 

       am.getMemoryInfo(memoryInfo);  

       textView2.setText("本机最大内存:"+GetTotalMemory()+"M"); 

       UpdateMemory Update=new UpdateMemory(); 

       Update.start(); 

  } 

   class UpdateMemory extends Thread{ 

 public void run() { 

  while(true){ 

    Message message=new Message(); 

    //message.obj=GetAvailableMemory(memoryInfo.availMem); 

    message.what=1; 

       handler.sendMessage(message); 

        try { 

    Thread.sleep(1000); 

   } catch (InterruptedException e) { 

    // TODO Auto-generated catch block 

    e.printStackTrace(); 

   } 

  } 

   

 } 

     

   } 

    

    Handler handler=new Handler(){</p><p>  public void handleMessage(Message msg) { 

   // TODO Auto-generated method stub 

   if (msg.what==1) { 

     textView.setText("本机还有内存:"+GetAvailableMemory(memoryInfo.availMem)+"M"); 

   } 

    

   super.handleMessage(msg); 

  } 

      

    }; 

    

    private Double GetTotalMemory(){ 

      

     String str1 = "/proc/meminfo"; 

     String str2;  

     Double memory=0.0 ; 

     try { 

   FileReader r=new FileReader(str1); 

   BufferedReader bufferedRead=new BufferedReader(r, 8192); 

   str2=bufferedRead.readLine(); 

   System.err.println("str2--------->"+str2); 

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

   ///String str3=str2.trim(); 

   //System.out.println("----------------------->"+str3); 

    

           String str4=str2.substring(str2.length()-9, str2.length()-3); 

   //System.out.println(str4+"         "+str4.length()); 

   memory=Double.parseDouble(str4)/1000; 

    

  } catch (Exception e) { 

   // TODO: handle exception 

  } 

  return memory; 

    } 

    private double GetAvailableMemory(long num) 

    {  

     double M; 

     M=(num/1024)/1024; 

    

     return  M; 

    } 

}</p>   

 

\

 

摘自 伟哥~ YZ

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,