Android 擷取記憶體資訊

來源:互聯網
上載者:User

 

<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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.