1.context.openFileOutput("config.txt",Context.MODE_PRIVATE);
创建的文件:data/data/<包名>/files/config.txt 存放手机rom内存里面的.
Context.MODE_APPEND 默认文件的访问修饰权限 是私有
2. RAM:Random Access Memery 随机访问内存,手机内存,访问速度非常快,掉电数据丢失,通常意思上的内存
ROM:Read Only Memery 只读内存,类似U盘的闪存,微硬盘,访问速度稍微低一点,掉电数据不丢失。
3.Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
SD卡安装好,可读可写
4.获取sd卡的存储大小
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
long totalbytes = blockSize*totalBlocks;
System.out.println(totalbytes);
5.初始化SharedPreferences,创建SharedPreferences文件config,设置权限,文件是一个xml文件,也就是一个map集合
config文件在 /data/data/<包名>/shared_prefs/config.xml
//没有config.xml文件则创建,有则获取sp对象
SharedPreferences sp = Context.getSharedPreferences("config", MODE_PRIVATE);
sp.getString("name","zhangsan"); 获取SharedPreferences里的name的值,如果name没有值,则设置name为默认值 zhangsan
Editor editor = sp.edit();
editor.putString("name", name);
editor.putString("num", num);
editor.putString("email", email);
editor.clear(); 清楚数据
editor.commit();
6.Context.openFileInput("config.txt");
读取文件:默认文件路径 data/data/<包名>/files/config.txt
7. Activity还提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用于获取/data/data/<package name>/cache目录,用户可以手工清除这些数据
getFilesDir()方法用于获取/data/data/<package name>/files目录
8.使用DOS命令创建一张SDCard卡
mksdcard 2048M D:\AndroidTool\sdcard.img
9.AssetManager am = Context.getAssets(); 获取assets目录的管理器。
InputStream is = am.open("config.xml"); 用am打开assets目录下的config.xml文件。
XmlPullParser parser = Xml.newPullParser(); 获取PullParser解析器
parser.setInput(in, "UTF-8"); 设置输入流的编码格式
for(int type=parser.getEventType();type != XmlPullParser.END_DOCUMENT;type=parser.next()){
if(type==XmlPullParser.START_TAG){
if(parser.getName().equals("person")){
p = new Person();
p.setId(Integer.valueOf(parser.getAttributeValue(0)));
persons.add(p);
}else if(parser.getName().equals("name")){
p.setName(parser.nextText());
}else if(parser.getName().equals("age")){
p.setAge(Integer.valueOf(parser.nextText()));
}
}
}
10.把数据写到xml文件上,
XmlSerializer s = Xml.newSerializer(); 获取序列化器
File file = new File(Environment.getExternalStorageDirectory(),"persons.xml");
OutputStream out = new FileOutpupStream(file);
s.startDocument("UTF-8", true); 开始写文档,并设置文档的编码格式,以及 readonly = true
s.startTag(null, "persons"); 开始写标签,第一个参数为 名称空间,第二个为开始标签
s.endTag(null,"persons"); 结束标签
s.endDocument(); 文档结束标签
11.SQLite特点
1.Android平台中嵌入了一个关系型数据库SQLite,和其他数据库不同的是SQLite存储数据时不区分类型
例如一个字段声明为Integer类型,我们也可以将一个字符串存入,一个字段声明为布尔型,我们也可以存入浮点数。
除非是主键被定义为Integer,这时只能存储64位整数
2.创建数据库的表时可以不指定数据类型,例如:
CREATE TABLE person(id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20))
CREATE TABLE person(id INTEGER PRIMARY KEY AUTOINCREMENT, name)
3.SQLite支持大部分标准SQL语句,增删改查语句都是通用的,分页查询语句和MySQL相同
SELECT * FROM person LIMIT 20 OFFSET 10
SELECT * FROM person LIMIT 10,20
12.SQLiteOpenHelper抽象类抽象类
提供了两个重要的方法,分别是:
onCreate(SQLiteDatabase db),用于初次使用软件时生成数据库表 ,
onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)后者用于升级软件时更新数据库表结构。
当调用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获取用于操作数据库的SQLiteData base实例的时候,如果数据库不存在,Android系统会自动生成一个数据库,接着调用onCreate()方法
也就是说,onCreate()方法只有在初次生成数据库时才会被调用,只执行一次。
13. SQLiteDatabase:
execSQL()方法可以执行insert、delete、update和CREATE TABLE之类有更改行为的SQL语句;
rawQuery()方法用于执行select语句。
14.getWritableDatabase()和getReadableDatabase()区别 :
1.getWritableDatabase() 在操作的时候,只能一个类来操作,同步操作
getReadableDatabase() 异步操作,可以有多个类同时操作
2.getWritableDatabase() 以读写方式打开数据库,一旦数据库的磁盘空间满了,数据库就只能读而不能写,倘若使用getWritableDatabase()打开数据库就会出错
getReadableDatabase() 方法先以读写方式打开数据库,如果数据库的磁盘空间满了,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。
创建的文件:data/data/<包名>/files/config.txt 存放手机rom内存里面的.
Context.MODE_APPEND 默认文件的访问修饰权限 是私有
2. RAM:Random Access Memery 随机访问内存,手机内存,访问速度非常快,掉电数据丢失,通常意思上的内存
ROM:Read Only Memery 只读内存,类似U盘的闪存,微硬盘,访问速度稍微低一点,掉电数据不丢失。
3.Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
SD卡安装好,可读可写
4.获取sd卡的存储大小
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
long totalbytes = blockSize*totalBlocks;
System.out.println(totalbytes);
5.初始化SharedPreferences,创建SharedPreferences文件config,设置权限,文件是一个xml文件,也就是一个map集合
config文件在 /data/data/<包名>/shared_prefs/config.xml
//没有config.xml文件则创建,有则获取sp对象
SharedPreferences sp = Context.getSharedPreferences("config", MODE_PRIVATE);
sp.getString("name","zhangsan"); 获取SharedPreferences里的name的值,如果name没有值,则设置name为默认值 zhangsan
Editor editor = sp.edit();
editor.putString("name", name);
editor.putString("num", num);
editor.putString("email", email);
editor.clear(); 清楚数据
editor.commit();
6.Context.openFileInput("config.txt");
读取文件:默认文件路径 data/data/<包名>/files/config.txt
7. Activity还提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用于获取/data/data/<package name>/cache目录,用户可以手工清除这些数据
getFilesDir()方法用于获取/data/data/<package name>/files目录
8.使用DOS命令创建一张SDCard卡
mksdcard 2048M D:\AndroidTool\sdcard.img
9.AssetManager am = Context.getAssets(); 获取assets目录的管理器。
InputStream is = am.open("config.xml"); 用am打开assets目录下的config.xml文件。
XmlPullParser parser = Xml.newPullParser(); 获取PullParser解析器
parser.setInput(in, "UTF-8"); 设置输入流的编码格式
for(int type=parser.getEventType();type != XmlPullParser.END_DOCUMENT;type=parser.next()){
if(type==XmlPullParser.START_TAG){
if(parser.getName().equals("person")){
p = new Person();
p.setId(Integer.valueOf(parser.getAttributeValue(0)));
persons.add(p);
}else if(parser.getName().equals("name")){
p.setName(parser.nextText());
}else if(parser.getName().equals("age")){
p.setAge(Integer.valueOf(parser.nextText()));
}
}
}
10.把数据写到xml文件上,
XmlSerializer s = Xml.newSerializer(); 获取序列化器
File file = new File(Environment.getExternalStorageDirectory(),"persons.xml");
OutputStream out = new FileOutpupStream(file);
s.startDocument("UTF-8", true); 开始写文档,并设置文档的编码格式,以及 readonly = true
s.startTag(null, "persons"); 开始写标签,第一个参数为 名称空间,第二个为开始标签
s.endTag(null,"persons"); 结束标签
s.endDocument(); 文档结束标签
11.SQLite特点
1.Android平台中嵌入了一个关系型数据库SQLite,和其他数据库不同的是SQLite存储数据时不区分类型
例如一个字段声明为Integer类型,我们也可以将一个字符串存入,一个字段声明为布尔型,我们也可以存入浮点数。
除非是主键被定义为Integer,这时只能存储64位整数
2.创建数据库的表时可以不指定数据类型,例如:
CREATE TABLE person(id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20))
CREATE TABLE person(id INTEGER PRIMARY KEY AUTOINCREMENT, name)
3.SQLite支持大部分标准SQL语句,增删改查语句都是通用的,分页查询语句和MySQL相同
SELECT * FROM person LIMIT 20 OFFSET 10
SELECT * FROM person LIMIT 10,20
12.SQLiteOpenHelper抽象类抽象类
提供了两个重要的方法,分别是:
onCreate(SQLiteDatabase db),用于初次使用软件时生成数据库表 ,
onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)后者用于升级软件时更新数据库表结构。
当调用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获取用于操作数据库的SQLiteData base实例的时候,如果数据库不存在,Android系统会自动生成一个数据库,接着调用onCreate()方法
也就是说,onCreate()方法只有在初次生成数据库时才会被调用,只执行一次。
13. SQLiteDatabase:
execSQL()方法可以执行insert、delete、update和CREATE TABLE之类有更改行为的SQL语句;
rawQuery()方法用于执行select语句。
14.getWritableDatabase()和getReadableDatabase()区别 :
1.getWritableDatabase() 在操作的时候,只能一个类来操作,同步操作
getReadableDatabase() 异步操作,可以有多个类同时操作
2.getWritableDatabase() 以读写方式打开数据库,一旦数据库的磁盘空间满了,数据库就只能读而不能写,倘若使用getWritableDatabase()打开数据库就会出错
getReadableDatabase() 方法先以读写方式打开数据库,如果数据库的磁盘空间满了,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。
发表评论
-
android基础08
2012-08-15 20:18 8391.Notification(状态栏通知) ... -
android基础07
2012-08-15 20:18 9141.SoundPool 指定声音池的最大音频流数目为10,声 ... -
android基础06
2012-08-15 20:18 6981.广播接收者 用于接 ... -
android基础05
2012-08-11 22:39 9751.显示意图三种创建方式: 构造函数,代码少 new I ... -
android基础04
2012-08-11 22:38 6481.利用HttpURLConnection对象,我们可以从网络 ... -
android基础03
2012-08-11 22:36 6201.第一次调用getWritableDatabase()或ge ... -
android基础01
2012-08-11 21:50 6011.Android体系结构 1.linux内核 2.Lib ... -
黑马程序员-java基础06天
2012-02-22 22:37 3---------------------- android培 ... -
黑马程序员-java基础05天
2012-02-20 23:40 24---------------------- android培 ... -
黑马程序员-java基础04天
2012-02-15 23:28 46---------------------- android培 ... -
黑马程序员-java基础03天
2012-02-12 14:09 9---------------------- android培 ... -
黑马程序员-java基础02天
2012-02-11 13:36 36---------------------- android ... -
黑马程序员-java基础01天
2012-02-06 20:44 11---------------------- android培 ...
相关推荐
Android基础--02
android基础代码教学02 学习android 最基本的代码
Android资源_01-Android开发环境搭建_实验01-Android开发环境搭建.pdf、实验02-Android应用开发HelloWorld.pdf; 02-Android Studio项目结构...04-Android基础功能程序设计_实验10-Android基础功能程序设计.pdf......
博文android基础知识05:四大组件之service 02:远程调用中关于远程调用service的实例程序
教程名称: 千锋Android游戏开发基础视频教程(10集)【】千锋Android游戏开发基础视频教程-大纲【】千锋Android游戏开发基础视频教程01~02【】千锋Android游戏开发基础视频教程03~04【】千锋Android游戏开发基础...
Android平板电脑编程基础教程
2、Android02--认识Activity 3、Android03--Context和Application 4、Android04--Android服务 5、Android05--Android服务通信 6、Android06--Android广播接收器 7、Android07--Android日志系统 8、Android08--...
网课ppt资源,可以当作自己学习的课件,适合刚接触Android程序开发的初学者,希望对你们有所帮助。
android-02-UI基本组件及事件处理.ppt------安卓UI基本组件intent
android开发,推荐给有java基础的
02大话企业级Android开发 03大话企业级Android开发开发流程及项目管理 04大话企业级Android开发_Android项目的目录结构、执行流程及其他基础分析 05大话企业级Android开发_MVC讲解及简单短信和拨号器实现 06大话企业...
02大话企业级Android开发第二部分 03大话企业级Android开发开发流程及项目管理 04大话企业级Android开发_Android项目的目录结构、执行流程及其他基础分析 05大话企业级Android开发_MVC讲解及简单短信和拨号器实现 06...
02.Android smali 与 java 代码介绍1 : d% y( z) X- o& ~, e0 _; c1 I 03.Android smali 与 java 代码介绍2 c+ K& I/ q( b 04.Android smali 与 java 代码介绍3 % ]7 Z+ f! I! [5 S. O. N 05.Android smali 与 java ...
新版Android开发教程&笔记02--基础入门 新版Android开发教程&笔记03--环境搭建与解析 新版Android开发教程&笔记04--Dalvik ADB 新版Android开发教程+笔记05--模拟器、应用1、2 新版Android开发教程+笔记06--应用3、4...
Android经典资料(Google and Android开发入门与实践、Google and android 揭秘、Google android SDK开发范例大全、深入浅出Android、...开发、Android基础教程等,还有几本英文书籍) 共8个压缩文件,请下全后解压
清华老师上课的android课件。ch_01android概述ch_02android开发基础ch_03资源的访问ch_04android用户界面ch_05Ativity和Intent。其他自己看。
04大话企业级Android开发_Android项目的目录结构、执行流程及其他基础分析 05大话企业级Android开发_MVC讲解及简单短信和拨号器实现 06大话企业级Android开发_日志输出、单元测试及调试 07大话企业级Android开发_UI...
第04部分 Android项目的目录结构、执行流程及其他基础分析 第05部分 MVC设计模式讲解及电话拨号器和短信发送器应用 第06部分 日志输出、单元测试及调试 第07部分 UI(上) 第08部分 UI(中) 第09部分 UI(下)...
02、Android应用开发-代码版本管理和实战(1天) 03、android案例与项目_手机安全卫士(12天) 04、自定义控件与视图(2天) 05、android项目实战_智慧北京(6天) 06、android项目实战_谷歌应用市场(6天) 07、...
Stage2_Lesson3Android应用开发基础及原理概要 Stage2_Lesson4Activity与Intent Stage2_Lesson5Service初步 Stage2_Lesson10应用程序签名及发布 Stage2_Lesson8ContentProvider Stage2_Lesson9BroadcastReceiver ...