ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2011年12月14日 星期三

limit max process & immediately destroy activity

限制 max activity 的code 是在./services/java/com/android/server/am/ActivityManagerService.java
其中的trimApplication()

call trimApplication 的有:
  1. activityStopped
  2. unregisterReceiver
  3. finishReceiver
另外,還有./services/java/com/android/server/am/ActivityStack.java 的
  1. activityIdleInternal
是在handleMessage( ) 中呼叫。
呼叫的時機:
  1. IDLE_TIMEOUT_MSG
  2. IDLE_NOW_MSG
還有 ./services/java/com/android/server/am/ActivityManagerService.java 的
activityIdle


除了以上的code,在 trimApplication( ) 中可以看到,mProcessLimit 也可以用來限制 activity 的數量。

mProcessLimit 的存取 方法是:
  1. setProcessLimit
  2. getProcessLimit
這個 SET_PROCESS_LIMIT 好像也是 app 的 permission。

在 developement Setting 的 writeProcessLimitOptions( ) 使用到

這個就是 Immediately Destroy Activity 的上一個選項 max process limit (?)

但是實際測試, max process limit=1,和 immediately destroy activity 好像效果不一樣。
以 播放影片的 Gallery 為例:
程式進入,是 GalleryPicker, 選好 folder 後,再開啟 ImageGallery。

當 enable immediately destroy activity 時,可以正常動作。
但是 set max process limit=1 卻不行,要開啟 ImageGallery 時,就 fail 回到GalleryPicker。

沒有留言:

標籤

網誌存檔