Android基础第二天

 

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 --> int
					person.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>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值