要获取手机的可用内存,首先要获取系统服务信息,

ActivityManagermyActivityManager =(ActivityManager)getSystemService(Activity.ACTIVITY_SERVICE);

然后获得MemoryInfo类型对象

ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();

然后,使用getMemoryInfo(memoryInfo)方法获得系统可用内存,此方法将内存大小保存在memoryInfo对象上

myActivityManager.getMemoryInfo(memoryInfo) ;

然后,memoryInfo对象上的availmem值即为所求

long memSize = memoryInfo.availMem ;

字符类型转换 ,转换成MB格式。

String leftMemSize = Formatter.formatFileSize(getBaseContext(), memSize);


public staticStringformatFileSize(Contextcontext, long number)

Added in API level 3

Formats a content size to be in the form of bytes, kilobytes, megabytes, etc

Parameters
context Context to use to load the localized units
number size value to be formatted
Returns
  • formatted string with the number
第一个参数是上下文,第二个是需要转换格式的long类型的文件大小。最终返回类似 22KB、52Bytes,22MB的字符串。


java文件 MainActivity.java

package com.xujin.availablemem;import android.app.Activity;import android.app.ActivityManager;import android.os.Bundle;import android.text.format.Formatter;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity {private ActivityManager myActivityManager;private TextView leftMem;private Button refresh;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);leftMem = (TextView)findViewById(R.id.avaMem);refresh = (Button)findViewById(R.id.refresh);//获取系统服务信息myActivityManager =(ActivityManager)getSystemService(Activity.ACTIVITY_SERVICE);upDateMemInfo();refresh.setOnClickListener(new OnClickListener(){public void onClick(View source){upDateMemInfo();}});}//更新可用内存信息    public void upDateMemInfo(){        //获得MemoryInfo对象      ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();        //获得系统可用内存,保存在MemoryInfo对象上          myActivityManager.getMemoryInfo(memoryInfo) ;          long memSize = memoryInfo.availMem ;                    //字符类型转换         String leftMemSize = Formatter.formatFileSize(getBaseContext(), memSize);        leftMem.setText(leftMemSize);}}

xml文件,activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" ><LinearLayout     android:layout_width="match_parent"    android:layout_height="wrap_content"    android:orientation="horizontal" >    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_weight="1"        android:text="当前系统可用内存为:" />    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"       android:layout_weight="1"        android:id="@+id/avaMem"/>    </LinearLayout>        <Button        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="refresh"        android:id="@+id/refresh"/></LinearLayout>

最终结果:



更多相关文章

  1. Android:Kotlin详细入门学习指南-类和对象-基础语法(四)
  2. android内存泄露
  3. 史上最全的Android面试题集锦
  4. 在Android中使用Handler和Thread线程执行后台操作
  5. Android原生(Native)C开发之二 framebuffer篇
  6. Android中图片占用内存的计算
  7. (转帖)Android系列之浅谈Android(安卓)3D旋转
  8. android性能之一:内存泄露、内存溢出的区别及原理分析
  9. 【Android(安卓)开发】: Android(安卓)消息处理机制之二: Messag

随机推荐

  1. Android(安卓)GridView属性
  2. android开发_文本按钮 与 输入框
  3. Android安全加密:Https编程
  4. android 仿微信聊天界面,以及语音录制功能
  5. Android中visibility属性VISIBLE、INVISI
  6. Android(安卓)animation Interpolator属
  7. 控件属性(特别)
  8. Android(安卓)Studio开发实战练习--跑马
  9. Android(安卓)layout属性大全
  10. Android(安卓)存储优化系列专题