androidd 程序默认安装位置和数据存储位置(公用和私用)
2016-03-18 14:13
183 查看
默认安装位置:
android App 安装到外置SD卡中,缓解手机内置内存的压力:
如果是直接安装到外置SD卡上必须获得SD卡权限:
数据储存位置:
把数据都储存到SD卡中,缓解自身内存压力
首先判断SD卡是否可用,检测他的状态:
然后根据个人需要储存的数据把数据存储到一个私有或者公用的位置:
ok 完工!
android App 安装到外置SD卡中,缓解手机内置内存的压力:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.org.hl.john.androidstt" android:installLocation="internalOnly"> // 在manifest中加入android:installLocation="preferExternal" 安装到外置SD卡上; // 加入android:installLocation="internalOnly"安装到自身内存上 //或者直接用android:installLocation="auto" 根据系统自行选择
如果是直接安装到外置SD卡上必须获得SD卡权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
数据储存位置:
把数据都储存到SD卡中,缓解自身内存压力
首先判断SD卡是否可用,检测他的状态:
/** * 判断内存卡是否可写 * @return true 可以写入, false 不可写 */ private boolean isExternalStorageWritable(){ String state = Environment.getExternalStorageState(); if (state.equals(Environment.MEDIA_MOUNTED)){ return true; } return false; } /** * 判断内存卡是否可读 * @return true 可读 false 不可读 */ private boolean isExternalStorageReadable(){ String state = Environment.getExternalStorageState(); if (state.equals(Environment.MEDIA_MOUNTED)||state.equals(Environment.MEDIA_MOUNTED_READ_ONLY)){ return true; } return false; }
然后根据个人需要储存的数据把数据存储到一个私有或者公用的位置:
/** * 保存到内存中 * @param context 上下文 * @param string 传入要保存的内容 */ private void saveFile(Context context,String string){ File file = new File(context.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS) + "/tad.txt" ); //getExternalFilesDir()是存储到一个私有的地方,在应用程序卸载时一起删除(主要是看存储什么数据); // getExternalStoragePublicDirectory()存储到一个指定的位置,可供大家使用(照片,音乐等等),在应用卸载时不会删除,如果不用,可以自己去删了就行了。 //Environment.DIRECTORY_DOCUMENTS是你所存储的文件类型,会自行给你在应用包下建一个文件夹。 if (!file.exists()) { try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } String strContent = string + "\r\n"; try { RandomAccessFile raf = new RandomAccessFile(file, "rwd"); //RandomAccessFile 控制文件的读写速度快 写这类文件还不错。 raf.seek(file.length()); //seek(index) 移动存储位置,比如需要添加一个数据到这个字符串的第五位则用 seek(4) raf.write(strContent.getBytes()); raf.close(); //使用完关闭 } catch (Exception e) { Log.e("TestFile", "Error on write File:" + e); } }
ok 完工!
相关文章推荐
- [Gradle Retrolambda]Android Studio使用lambda表达式
- Android开发环境离线搭建
- Android学习路线图
- 安卓学习过程、怎样阅读 Android 系统源码
- Android Studio debug 时使用 release 签名
- Android与Html&JS交互
- Android自定义控件——PullZoomView
- Android项目,library中根据资源id获取资源
- I.MX6 android 禁止低电量自动关机
- rk3288 编写Android.mk 形式内置APK
- Android自定义控件——FloatLayout
- android系统简介
- Android 通知栏Notification的整合 全面学习
- Android Download 下载功能深入研究(四) : 系统应用DownloadProvider的改进
- Android四大组件之---activity生命周期详解
- Android 快速开发框架:推荐10个框架:afinal、ThinkAndroid、andBase、KJFrameForAndroid、SmartAndroid、dhroid..
- android ListView嵌入EditText焦点和值错误问题
- android 一些基础用法
- Android项目:手机安全卫士(14)—— 短信备份
- android给EditText加金额的属性,带元,角和分,如¥12.34