Android开发学习笔记(十二) 获取系统可用内存
16lz
2021-01-23
要获取手机的可用内存,首先要获取系统服务信息,
xml文件,activity_main.xml
最终结果:
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 3Formats 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
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>
最终结果:
更多相关文章
- Android 系统菜单与自定义菜单
- android拍照造成内存泄露问题
- Android中图片占用内存的计算
- android性能之一:内存泄露、内存溢出的区别及原理分析
- 【源码分享下载】每日更新之Android项目源码---手机天气预报系统
- android 4.0.4系统下实现apk的静默安装和启动
- Android系统基础(01)简介
- Android 音频系统:从 AudioTrack 到 AudioFlinger(全)