Android开发学习笔记(十二) 获取系统可用内存
16lz
2021-12-04
要获取手机的可用内存,首先要获取系统服务信息,
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:Kotlin详细入门学习指南-类和对象-基础语法(四)
- android内存泄露
- 史上最全的Android面试题集锦
- 在Android中使用Handler和Thread线程执行后台操作
- Android原生(Native)C开发之二 framebuffer篇
- Android中图片占用内存的计算
- (转帖)Android系列之浅谈Android(安卓)3D旋转
- android性能之一:内存泄露、内存溢出的区别及原理分析
- 【Android(安卓)开发】: Android(安卓)消息处理机制之二: Messag