Environment.getDataDirectory().getPath() : /data
Environment.getDownloadCacheDirectory().getPath() : /cache
Environment.getExternalStorageDirectory().getPath() : /mnt/sdcard
Environment.getRootDirectory().getPath() : /system
Context.getCacheDir().getPath() : /data/data/包名/cache
Context.getExternalCacheDir().getPath() : /mnt/sdcard/Android/data/包名/cache
Context.getFilesDir().getPath() : /data/data/包名/files
Context.getObbDir().getPath() : /mnt/sdcard/Android/obb/包名
Context.getPackageName() : 包名
Context.getPackageCodePath() : /data/app/应用名
Context.getPackageResourcePath() : /data/app/应用名
/data/data/cn.tony.app/files/这种路径,可能是在包名为“cn.tony.app”的应用下,通过在Context的子类(Activity,Service等等)中调用getFilesDir所得到的。
而/mnt/sdcard/,应该是在4.0以下的android系统上,通过Environment类的getExternalStorageDirectory方法获取的。
其实getExternalStorageDirectory这个方法,不如说是获取默认存储器的。在不同版本不同设置的android系统上,指向的位置也不太一样。比如在4.0以上的系统上,它一般指向“storage/sdcard0”(内置SD卡),但也有厂家或个人把它设置为“storage/sdcard1”(外置SD卡)。就像window,系统一般是装在C盘,但装在D盘上其实也可以。