Android 台灣中文網

標題: Android 優化大師客戶端(90%完整版) [打印本頁]

作者: 暗桌之光    時間: 2011-7-24 12:01
標題: Android 優化大師客戶端(90%完整版)
提供的代碼非編譯後的,是完整原始代碼。但有部分代碼因為特殊原因丟失了。

剩下的幾個未完成的給幾個提示,其實就是文件讀寫操作,handler,還有TimeTask結合去處理,然後繪圖,更新ui
/sys/class/net
/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
/proc/stat
/proc/self/net/dev
/proc/meminfo              這幾個文件一看名字你們就懂,不過這幾個文件在ddms中你看不到喲,不能導出來.

再貼幾個方法
  1. public long getAvailMemory() {
  2.                 ActivityManager am = (ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE);
  3.                 ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();
  4.                 am.getMemoryInfo(mi);
  5.                 return mi.availMem;
  6.         }
複製代碼
  1. public long[] getRomMemroy() {
  2.                 long[] romInfo = new long[2];
  3.                 //Total rom memory
  4.                 romInfo[0] = getTotalInternalMemorySize();

  5.                 //Available rom memory
  6.                 File path = Environment.getDataDirectory();
  7.                 StatFs stat = new StatFs(path.getPath());
  8.                 long blockSize = stat.getBlockSize();
  9.                 long availableBlocks = stat.getAvailableBlocks();
  10.                 romInfo[1] = blockSize * availableBlocks;
  11.                 getVersion();
  12.                 return romInfo;
  13.         }

  14.         public long getTotalInternalMemorySize() {
  15.                 File path = Environment.getDataDirectory();
  16.                 StatFs stat = new StatFs(path.getPath());
  17.                 long blockSize = stat.getBlockSize();
  18.                 long totalBlocks = stat.getBlockCount();
  19.                 return totalBlocks * blockSize;
  20.         }
複製代碼
  1. public long[] getSDCardMemory() {
  2.                 long[] sdCardInfo=new long[2];
  3.                 String state = Environment.getExternalStorageState();
  4.                 if (Environment.MEDIA_MOUNTED.equals(state)) {
  5.                         File sdcardDir = Environment.getExternalStorageDirectory();
  6.                         StatFs sf = new StatFs(sdcardDir.getPath());
  7.                         long bSize = sf.getBlockSize();
  8.                         long bCount = sf.getBlockCount();
  9.                         long availBlocks = sf.getAvailableBlocks();

  10.                         sdCardInfo[0] = bSize * bCount;//總大小
  11.                         sdCardInfo[1] = bSize * availBlocks;//可用大小
  12.                 }
  13.                 return sdCardInfo;
  14.         }
複製代碼
  1. public void getTotalMemory() {
  2.                 String str1 = "/proc/meminfo";
  3.                 String str2="";
  4.                 try {
  5.                         FileReader fr = new FileReader(str1);
  6.                         BufferedReader localBufferedReader = new BufferedReader(fr, 8192);
  7.                         while ((str2 = localBufferedReader.readLine()) != null) {
  8.                                 Log.i(TAG, "---" + str2);
  9.                         }
  10.                 } catch (IOException e) {
  11.                 }
  12.         }
複製代碼
效果圖。
a1.jpg
登錄/註冊後可看大圖