8种机械键盘轴体对比
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
android的存储本来没啥好说的。但在6.0上由于有了权限申请这个环节,以前随意在SD卡上建目录的方式,要注意才行了。
android api提供给应用存储的路径就有两个,6.0以上应该尽量使用它们。这两个目录是不需要申请权限的,甚至在xml中都不需要配置。只是为了兼容之前的版本,我们仍然需要写上
私有目录,沙盒。非root过的手机,是看不见里面内容的。public static String getAppFilesPath() {
return appContext.getFilesDir().getAbsolutePath();
}
public static String getAppCachePath() {
return appContext.getCacheDir().getAbsolutePath();
}
这个目录是肯定会存在的,通过Context直接获取。使用手机内部存储,不能放太大的东西。另外需要注意,这里的文件是只有自身应用能够读取的。比如一个pdf,想要调用wps打开,传这里的路径是不行的。一些分享sdk,也要求在分享图片时候,不能将图片放在私有目录下。
应用外部存储的目录public static boolean isAppExtOk() {
if (isCanUseSD()) {
return true;
}
return false;
}
public static String getAppExtFilesPath() {
String path = appContext.getExternalFilesDir(null).getAbsolutePath();
if (path != null) {
//确保该路径是存在的
//6.0以上是肯定会存在的。之前可能该路径未创建,需要手动创建
makeDirs(path);
}
return path;
}
public static String getAppExtCachePath() {
String path = appContext.getExternalCacheDir().getAbsolutePath();
if (path != null) {
makeDirs(path);
}
return path;
}
外部存储目录,其实现在的手机绝对是有的,不然还生产来干嘛。但是保险的话,仍然是增加了一句判断。这里的文件存储在SD卡上,都可以访问。
SD自定义的存储目录public static String getExtRootPath() {
if (ContextCompat.checkSelfPermission(appContext, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
if (rootPath == null) {
rootPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + rootFolder;
makeDirs(rootPath);
}
}
return rootPath;
}
这里的重点就是需要提前申请读写权限,然后才能使用。一般情况下,其实没有必要再去维护这样一个目录。直接使用AppExt的路径不是挺好的嘛,还不需要去申请权限。
相关的方法,封装成了一个简单的FileUtils。所有代码都可以在https://github.com/lonaever/MyApp找到。