androidd 程序默认安装位置和数据存储位置(公用和私用)
默认安装位置:
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 完工!
androidd 程序默认安装位置和数据存储位置(公用和私用)的更多相关文章
- Android eclipse 运行项目设置程序默认安装到SD卡
Android eclipse 运行项目设置程序默认安装到SD卡 1.在Android手机启用USB调试功能 2.在Windows系统中打开命令提示符(开始菜单,选择运行,输入cmd回车即可),使用 ...
- ubuntu14.04 rabbitmq安装与使用 --修改RabbitMQ数据存储位置
参考:https://blog.csdn.net/tianjiewang/article/details/58383062 说明: ubuntu14.04 rabiitmq 默认 安装路径 /va ...
- 智能合约语言 Solidity 教程系列4 - 数据存储位置分析
写在前面 Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解, 如果你还不了解,建议你先看以太坊是什么 这部分的内容官方英文文档讲的不是很透,因此我在参考Soli ...
- 修改mysql数据存储位置
停止mysql服务. 在mysql安装目录下找到mysql配置文件my.ini. 在my.ini中找到mysql数据存储位置配置datadir选项,比如我电脑上的配置如下: # Path to the ...
- 【Java编程思想阅读笔记】Java数据存储位置
Java数据存储位置 P46页有感 一.前置知识 栈是由系统自动分配的,Java程序员对栈没有直接的操作权限, 堆是所有线程共享的内存区域,栈 是每个线程独享的. 堆是由程序员自己申请的,在使用new ...
- centos 7.1系统更改Mariadb数据存储位置步骤分享
一.首先确保你要更改Mariadb数据存储的位置的空间够大 现在已将Mariadb存储位置更改到/opt/目录下 1.然后将Mariadb服务stop:systemctl stop mariadb 2 ...
- 修改Docker默认镜像和容器的存储位置
一.Why Docker默认的镜像和容器存储位置在/var/lib/docker中,如果仅仅是做测试,我们可能没有必要修改,但是当大量使用的时候,我们可能就要默认存储的位置了. 二.How 2.1 修 ...
- Ubuntu 安装mysql & 自定义数据存储目录
一.安装 apt-get install mysql-server 执行过程如下: root@duke:~# apt-get install mysql-server 正在读取软件包列表... 完成 ...
- web sql database数据存储位置
Q1: 数据存储在哪儿? Web Storage / Web SQL Database / Indexed Database 的数据都存储在浏览器对应的用户配置文件目录(user profile di ...
随机推荐
- configure.ac:32: error: possibly undefined macro: AC_DEFINE
在ubuntu 下编译snappy时,在检查依赖关系时,处理autoconf的包时,在相关依赖包都已经安装的情况下,报如下错误,死活不过. configure.ac:32: error: possib ...
- 数据库的点数据根据行政区shp来进行行政区处理,python定时器实现
# -*- coding: utf-8 -*- import struct import decimal import itertools import arcpy import math impor ...
- [课程设计]Scrum 2.8 多鱼点餐系统开发进度(下单一览页面-菜式一览功能的最终实现)
Scrum 2.8 多鱼点餐系统开发进度 (下单一览页面-菜式一览功能的最终实现) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队 ...
- wf(三)
前言: 到现在我们可以看到,WF4包含一个.xmal 文件的设计器和一个调用活动的runtime.当你创建自己的工作流的时候,你是同时也创建了一个活动, 因为活动是一个继承System.Activit ...
- 输入参数是NSDate,输出结果是星期几的字符串
给你一个方法,输入参数是NSDate,输出结果是星期几的字符串.+ (NSString*)weekdayStringFromDate:(NSDate*)inputDate { NSArray *wee ...
- [Python]实现XMPP协议即时通讯发送消息功能
#-*- coding: utf-8 -*- __author__ = 'tsbc' import xmpp import time #注意帐号信息,必须加@域名格式 from_user = 'che ...
- treegrid and datagrid ctrl or shift selectRow
var tg = $('#tg');tg.treegrid({...}); // create treegridvar panel = tg.treegrid('getPanel');var body ...
- bootstrap-validator验证问题总结
bootstrap-validator是一个优秀的验证器,使用中遇到如下问题,总结如下: 1.<button type="submit" name="submit2 ...
- Spring 定时任务2
转载自http://www.cnblogs.com/nick-huang/p/4864737.html > 版本说明 <dependencies> <dependency> ...
- Educational Codeforces Round 6 E. New Year Tree dfs+线段树
题目链接:http://codeforces.com/contest/620/problem/E E. New Year Tree time limit per test 3 seconds memo ...