为什么Android DDMS文件资源管理器只显示数据,mnt和系统目录?如果我执行“adb shell ls -l”
,还有其他目录和文件答案 0 :(得分: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
然后你会进入一个低级shell,就像你的Android设备的终端。在这个级别没有这样的过滤。