安卓应用想新建目录存放文件,有以下几种选择:
1、/data
在/data根目录下建目录需要system权限。
app可在/data/data/apppackage下建目录默认权限是700,且普通权限的app是改不了此目录权限的,系统权限的app可不可以改没试过,uninstall的时候该目录会被删除。
/data/data/apppackage下面存有app的sharedpreference的xml文件和sqlite数据库。
install更新app不会删除原有的sharedpreference的xml文件和sqlite数据库。
uninstall会删除app的sharedpreference的xml文件和sqlite数据库。
/data下一般用于安装app和存放app的少量数据,这个空间不是很大一般几百兆。这个空间被填满可能会导致系统起不来,得重新烧写系统。所以不要在这个目录下放大文件。
获取/data路径的方法:
File file =Environment.getDataDirectory();//data分区
2、sdcard
app可在sdcard下建目录默认权限是777。
目前很多应用的通用做法都是在sdcard下建目录存放文件。
获取sdcard路径的方法:
File file =Environment.getExternalStorageDirectory();//sdcard
3、u盘
获取u盘路径,android原生系统并没有提供相应的java api。
不同的设备厂商可能自己封了接口。
网上也没找到什么好的通用做法,一般的想法是基于linux系统的基础出发的。
另外:
app是platform权限,用updata.zip升级之后,/data/data/apppackage下面的sharedpreference的xml文件和sqlite数据库都木有了。sdcard下的文件完好无缺。