都上 SD Card,加裝 Link2SD 了,才裝幾個程式,Android 手機就開始唉唉叫,左上角老是出現"儲存空間即將不足"的訊息,真的是太令人生氣。本來不想挖程式出來看的,唉~ Android 程式的文字多半是存在 xml 檔案,也就是 resource 檔,關鍵是在於對應所使用的變數名稱。在 mydroid 目錄下先用 source build/envsetup.sh ,再用 resgrep '儲存空間即將不足' 來找,出現這段文字的檔案有兩個,不過很明顯,變數名稱應該是 low_internal_storage_view_title。

看來關鍵就在這檔案裡了。從裏面可以看到在 sendNotification 裡,會把 low_internal_storage_view_title 當作訊息丟出去,於是上方的通知欄就有了'儲存空間即將不足的訊息'。那麼是在那邊去 sendNotification 的呢? 是同個檔案裡的 checkMemory()。 checkMemory() 裡的檢查邏輯很簡單,先 getMemThreshold(),再用 mFreeMem 去做判斷,如果比取到的 threshold 值要小,mLowMemFlag 還沒設為true,就先試著清理 cache,再不行,就 sendNotification。 getMemThreshold() 是怎麼取 threshold 的呢?是從 Content Resolver 裡找 "sys_storage_threshold_percentage" 來的,如果沒取到,則以 10 為預設值,然後乘上 mTotalMemory。 

arrow
arrow
    全站熱搜

    tckitkit 發表在 痞客邦 留言(0) 人氣()