2012-03-12 60 views

回答

2

我做了一些挖掘和發現,ADT的文件資源管理器視圖是由一個名爲

com.android.ddmlib.FileListingService 

裏面的它類的限制,將見批准的頂級目錄列表:

/** Top level data folder. */ 
public final static String DIRECTORY_DATA = "data"; //$NON-NLS-1$ 
/** Top level sdcard folder. */ 
public final static String DIRECTORY_SDCARD = "sdcard"; //$NON-NLS-1$ 
/** Top level mount folder. */ 
public final static String DIRECTORY_MNT = "mnt"; //$NON-NLS-1$ 
/** Top level system folder. */ 
public final static String DIRECTORY_SYSTEM = "system"; //$NON-NLS-1$ 
/** Top level temp folder. */ 
public final static String DIRECTORY_TEMP = "tmp"; //$NON-NLS-1$ 
/** Application folder. */ 
public final static String DIRECTORY_APP = "app"; //$NON-NLS-1$ 

private final static String[] sRootLevelApprovedItems = { 
    DIRECTORY_DATA, 
    DIRECTORY_SDCARD, 
    DIRECTORY_SYSTEM, 
    DIRECTORY_TEMP, 
    DIRECTORY_MNT, 
}; 

後來,該列表協商,如果它是在已批准的名單,你會看到它在文件管理器在Eclipse:

  // if the parent is root, we only accept selected items 
      if (mParentEntry.isRoot()) { 
       boolean found = false; 
       for (String approved : sRootLevelApprovedItems) { 
        if (approved.equals(name)) { 
         found = true; 
         break; 
        } 
       } 

       // if it's not in the approved list we skip this entry. 
       if (found == false) { 
        continue; 
       } 
      } 

因此,如果您想探索設備的全部內容,可以通過刪除整個代碼塊來更改代碼以批准所有頂級目錄。然後,您必須重新編譯並安裝您的自定義ADT插件。

此外,當你執行命令:

adb shell ls -l 

,那麼你進入一個低級別的外殼,就像是一個終端到你的Android設備。在這個級別沒有這樣的過濾。

相關問題