5
爲什麼Android DDMS文件瀏覽器只顯示數據,mnt和系統目錄?還有其他的目錄和文件,如果我執行「亞行外殼的ls -l」爲什麼Android DDMS文件瀏覽器只顯示3個目錄?
爲什麼Android DDMS文件瀏覽器只顯示數據,mnt和系統目錄?還有其他的目錄和文件,如果我執行「亞行外殼的ls -l」爲什麼Android DDMS文件瀏覽器只顯示3個目錄?
我做了一些挖掘和發現,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設備。在這個級別沒有這樣的過濾。
您準確查找哪些數據? – 2012-03-12 20:10:24
一個例子可以是緩存目錄。 – user1265015 2012-03-12 20:30:16