04_查看Android内存使用情况
創建項目
Android清單文件
| <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" ??? package="com.itheima28.memorydemo" ??? android:versionCode="1" ??? android:versionName="1.0" > ? ??? <uses-sdk ??????? android:minSdkVersion="8" ??????? android:targetSdkVersion="19" /> ????????????? ??? <application ??????? android:allowBackup="true" ??????? android:icon="@drawable/ic_launcher" ??????? android:label="@string/app_name" ??????? android:theme="@style/AppTheme" > ??????? <activity ??????????? android:name="com.itheima28.memorydemo.MainActivity" ??????????? android:label="@string/app_name" > ??????????? <intent-filter> ??????????????? <action android:name="android.intent.action.MAIN" /> ? ??????????????? <category android:name="android.intent.category.LAUNCHER" /> ??????????? </intent-filter> ??????? </activity> ??? </application> ? </manifest> ? |
布局文件
| <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" ??? xmlns:tools="http://schemas.android.com/tools" ??? android:layout_width="match_parent" ??? android:layout_height="match_parent" ??? android:paddingBottom="@dimen/activity_vertical_margin" ??? android:paddingLeft="@dimen/activity_horizontal_margin" ??? android:paddingRight="@dimen/activity_horizontal_margin" ??? android:paddingTop="@dimen/activity_vertical_margin" ??? tools:context="com.itheima28.memorydemo.MainActivity$PlaceholderFragment" > ? ??? <TextView ? ??????android:id="@+id/tv_memory_info" ??????? android:layout_width="wrap_content" ??????? android:layout_height="wrap_content" ??????? android:layout_centerInParent="true"/> ? </RelativeLayout> |
查詢內存的代碼
| package com.itheima28.memorydemo; ? import java.io.File; ? import android.os.Bundle; import android.os.Environment; import android.os.StatFs; import android.support.v7.app.ActionBarActivity; import android.text.format.Formatter; import android.widget.TextView; ? public class MainActivity extends ActionBarActivity { ? ??? @Override ??? protected void onCreate(Bundle savedInstanceState) { ?????? super.onCreate(savedInstanceState); ?????? setContentView(R.layout.activity_main); ?????? ?????? TextView tvMemoryInfo = (TextView) findViewById(R.id.tv_memory_info); ?????? ?????? //獲得sd卡的內存狀態 ?????? File sdcardFileDir = Environment.getExternalStorageDirectory(); ?????? String sdcardMemory = getMemoryInfo(sdcardFileDir); ??? ?????? //獲得手機內部存儲控件的狀態 ?????? File dataFileDir = Environment.getDataDirectory(); ?????? String dataMemory = getMemoryInfo(dataFileDir); ? ?????? tvMemoryInfo.setText("SD卡: " + sdcardMemory + "\n手機內部: " + dataMemory); ??? } ??? ??? /** ??? ?* 根據路徑獲取內存狀態 ??? ?* @param path ??? ?* @return ??? ?*/ ??? @SuppressWarnings("deprecation") ??? private String getMemoryInfo(File path) { ?????? //獲得一個磁盤狀態對象 ?????? StatFs stat = new StatFs(path.getPath()); ?????? ?????? //獲得一個扇區的大小 ?????? long blockSize = stat.getBlockSize(); ??? ?????? //獲得扇區的總數 ??? ??? long totalBlocks = stat.getBlockCount(); ??? ??? ??? ??? //獲得可用的扇區數量 ??? ??? long availableBlocks = stat.getAvailableBlocks(); ??? ??? ??? //總空間 ??? ??? String totalMemory =? Formatter.formatFileSize(this, totalBlocks * blockSize); ??? ??? ??? ??? //可用空間 ??? ??? String availableMemory = Formatter.formatFileSize(this, availableBlocks * blockSize); ??? ??? ??? ??? return "總空間:" + totalMemory + "\n可用空間:" + availableMemory; ??? } } |
?
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的04_查看Android内存使用情况的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 03_Android项目中读写文本文件的
- 下一篇: 烫伤用什么药最好得快(烫伤用什么药最好)