Android基础第二天
来源:互联网 发布:什么是node.js 编辑:程序博客网 时间:2024/05/21 08:55
1. android下权限
网络访问
写SD卡
读SD卡
2. 保存数据到手机内存
1)文件存储到/data/data/com.example.qq/files下:
this.getFilesDir().getPath() 返回一个文件夹 -- /data/data/包名/files
2)将文件存到/data/data/com.example.qq/cache下
使用this.getCacheDir().getPath()
3. 保存数据到SDCard
用API获取SDCard的路径(不同手机SDCard文件夹位置不同)
Environment.getExternalStorageDirectory()
判断当前手机是否有SD卡
Environment.getExternalStorageState()
--Environment.MEDIA_MOUNTED --Environment.MEDIA_REMOVED
获得手机内存及SD卡的内存状态
4. 权限
openFileOutput("aa.txt",mode) --/data/data/包名/files/aa.txt
mode -- 文件权限
Context.MODE_PRIVATE
Context.MODE_WORLD_READABLE
Context.MODE_WORLD_WRITABLE
Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITABLE
FileExploer中 Permission下 _ _ _ _ _ _ _ _ _ _
第1位:代表文件的类型(d代表文件夹, -代表文件,l代表挂载某一个文件)
第2~4位:rw- 代表的是当前用户的权限 110 = 6
rwx x代表可执行
第5~7位:当前用户所在组的其他组员的权限
第8~10位:其他所有人的权限 ---没有任何权限 r--可读 -w-可写 rw-可读可写
可以通过linux shell改变权限
Android有一套自己的安全模型,当应用程序(.apk)在安装时系统就会分配给它一个userid
当该应用要去访问其他资源比如文件的时候,就需要userid匹配。
默认情况下,任何应用创建的文件,sharedpreferences,数据库都应该是私有的
位于/data/data/<package name>/files,其他程序是无法访问的
除非在创建的时候制定了Context.MODE_WORLD_READABLE等属性
5. SharedPreference存储路径
-- /data/data/<package name>/Shared_prefs
对于软件配置参数的保存
如果是window软件通常我们会采用ini文件进行保存,
如果是j2se应用,我们会采用properties属性文件或者xml进行保存。
如果是Android应用,提供了一个SharedPreferences类,特别适合用于保存软件配置参数。
6. XML解析的方法
1)DOM解析 DOM解析占内存,文件一下子读入内存,再一点一点解析
2)SAX解析 SAX解析是一点一点解析,但是不能停,要解析完成
3)PULL解析 PULL解析是一点一点解析,可以停止
7. XML的序列化和解析(PULL方法)
1)XML的序列化
XmlSerializer serializer = Xml.newSerializer();serializer.setOutput(fos,"utf-8");serializer.startDocument("utf-8", true); // 写开始serializer.startTag(null, "persons");for (Person person : personList) {serializer.startTag(null, "person");serializer.attribute(null, "id",Integer.toString(person.getId()));serializer.startTag(null, "name");serializer.text(person.getName());serializer.endTag(null, "name");serializer.startTag(null, "age");serializer.text(String.valueOf(person.getAge()));serializer.endTag(null, "age");serializer.endTag(null, "person");}serializer.endTag(null, "persons");serializer.endDocument(); // 写结束
2)XML的Pull解析方法
XmlPullParser parser = Xml.newPullParser();parser.setInput(fis, "utf-8");int eventType = parser.getEventType();List<Person> personList = null;Person person = null;while (eventType != XmlPullParser.END_DOCUMENT) {String tagName = parser.getName();switch (eventType) {case XmlPullParser.START_TAG:if ("persons".equals(tagName)) {personList = new ArrayList<>();} else if ("person".equals(tagName)) {person = new Person();String id = parser.getAttributeValue(null, "id");// String --> intperson.setId(Integer.parseInt(id));} else if ("name".equals(tagName)) {person.setName(parser.nextText());} else if ("age".equals(tagName)) {person.setAge(Integer.parseInt(parser.nextText()));}break;case XmlPullParser.END_TAG:if ("person".equals(tagName)) {personList.add(person);}break;default:break;}// 获得下一个事件类型eventType = parser.next();}return personList;
8. Android中想让一个元素滚动
只需要将<ScrollView>元素</ScrollView>
- Android基础第二天
- Android基础第二天
- Android基础第二天
- android基础_第二天
- Android基础第二篇
- 第二章:Android开发基础
- Android学习笔记---第二天---基础UI组件---Toast
- Android学习笔记---第二天---基础UI组件---TextView
- Android学习笔记---第二天---基础UI组件---EditText
- 第二天----Java基础
- 基础加强第二天
- Java基础---第二天
- Java基础-第二天
- java基础第二天
- Java 基础 第二天
- JAVA基础第二天
- java基础第二天
- java基础第二天
- 使用Redis的Java客户端Jedis
- 排序算法之插入排序的C++实现
- 性能测试-LR篇进阶
- 第六届蓝桥杯大赛个人赛省赛(软件类) Java 大学B组
- Mac及Xcode常用快捷键
- Android基础第二天
- oracle错误代码
- linux各种软件安装指南
- redis-cluster整合mybaits
- PPT旁边点名小助手 完美结合PPT
- 快速寻找jar包way
- 性能测试-Jmeter篇
- HDFS读书笔记-如何让NameNode高可用(三)
- Android 程序中设置强制横屏