Android 和大家分享一下笔试很重要的东西文档格式.docx
- 文档编号:19483850
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:14
- 大小:21.22KB
Android 和大家分享一下笔试很重要的东西文档格式.docx
《Android 和大家分享一下笔试很重要的东西文档格式.docx》由会员分享,可在线阅读,更多相关《Android 和大家分享一下笔试很重要的东西文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
意图,描述应用想干什么。
最重要的部分是动作和动作对应的数据。
ContentProvider:
内容提供器,android应用程序能够将它们的数据保存到文件、SQLite数据库中,甚至是任何有效的设备中。
当你想将你的应用数据和其他应用共享时,内容提供器就可以发挥作用了。
Service:
服务,具有一段较长生命周期且没有用户界面的程序。
5.View,surfaceView,GLSurfaceView有什么区别。
view是最基础的,必须在UI主线程内更新画面,速度较慢。
SurfaceView是view的子类,类似使用双缓机制,在新的线程中更新画面所以刷新界面速度比view快
GLSurfaceView是SurfaceView的子类,opengl专用的
6.Adapter有什么作用?
常见的Adapter有哪些?
Adapter是连接后端数据和前端显示的适配器接口。
常见的Adapter有ArrayAdapter,BaseAdapter,
CursorAdapter,HeaderViewListAdapter,ListAdapter,ResourceCursorAdapter,SimpleAdapter,
SimpleCursorAdapter,SpinnerAdapter,WrapperListAdapter等
7.Manifest.xml文件中主要包括哪些信息?
manifest:
根节点,描述了package中所有的内容。
uses-permission:
请求你的package正常运作所需赋予的安全许可。
permission:
声明了安全许可来限制哪些程序能你package中的组件和功能。
instrumentation:
声明了用来测试此package或其他package指令组件的代码。
application:
包含package中application级别组件声明的根节点。
activity:
Activity是用来与用户交互的主要工具。
receiver:
IntentReceiver能使的application获得数据的改变或者发生的操作,即使它当前不在运行。
service:
Service是能在后台运行任意时间的组件。
provider:
ContentProvider是用来管理持久化数据并发布给其他应用程序使用的组件。
8.请写一段代码(SAX,DOM,或者pull)来解析XML文档。
下面是要解析的XML文件:
java代码:
1.<
?
xmlversion="
1.0"
encoding="
UTF-8"
>
2.
3.<
persons>
4.<
personid="
1"
5.<
name>
张三<
/name>
6.<
age>
22<
/age>
7.<
/person>
8.<
2"
9.<
李四<
10.<
23<
11.<
12.
13.<
/persons>
复制代码
定义一个名为Person的javaBean用于存放上面解析出来的xml内容
1.publicclassPerson{
3.privateIntegerid;
4.privateStringname;
5.privateShortage;
6.
7.publicIntegergetId(){
8.returnid;
9.}
10.
11.publicvoidsetId(Integerid){
12.this.id=id;
13.}
14.
15.publicStringgetName(){
16.returnname;
17.}
18.
19.publicvoidsetName(Stringname){
20.this.name=name;
21.}
22.
23.publicShortgetAge(){
24.returnage;
25.}
26.
27.publicvoidsetAge(Shortage){
28.this.age=age;
29.}
30.
31.}
(1)使用SAX读取XML文件;
它采用的是事件驱动,并不需要解析完整个文档,速度快并且占用内存少。
需要为SAX提供实现ContentHandler接口的类。
PersonDefaultHandler.java
1.importjava.util.ArrayList;
2.importjava.util.List;
3.importorg.xml.sax.Attributes;
4.importorg.xml.sax.SAXException;
5.importorg.xml.sax.helpers.DefaultHandler;
6.importcom.sinber.domain.Person;
7.
8.publicclassPersonDefaultHandlerextendsDefaultHandler{
9.privateList<
Person>
persons;
10.privatePersonperson;
//记录当前person
11.privateStringperTag;
//记录前一个标签的名称
13./***重写父类的开始文档方法。
用于初始化*/
15.@Override
16.publicvoidstartDocument()throwsSAXException{
17.persons=newArrayList<
();
18.}
19.
20.@Override
21.publicvoidstartElement(Stringuri,StringlocalName,StringqName,
22.Attributesattributes)throwsSAXException{
23.if("
person"
.equals(localName)){
24.Integerid=newInteger(attributes.getValue(0));
//取id
25.person=newPerson();
26.person.setId(id);
27.}
28.perTag=localName;
29.
30.}
31.
32./**参数:
33.*ch整个XML字符串
34.*start节点值在整个XML字符串中的索引位置
35.*length节点值的长度
36.*/
37.
38.@Override
39.publicvoidcharacters(char[]ch,intstart,intlength)
40.throwsSAXException{
41.if(perTag!
=null){
42.Stringdata=newString(ch,start,length);
43.if("
name"
.equals(perTag)){
44.person.setName(data);
45.}elseif("
age"
46.person.setAge(newShort(data));
47.}
48.}
49.}
50.
51.@Override
52.publicvoidendElement(Stringuri,StringlocalName,StringqName)
53.throwsSAXException{
54.if("
55.persons.add(person);
56.person=null;
57.}
58.perTag=null;
59.}
60.
61.publicList<
getPersons(){
62.returnpersons;
63.}
64.
65.}
SAXPerson.java
1.importjava.io.InputStream;
3.importjavax.xml.parsers.SAXParser;
4.importjavax.xml.parsers.SAXParserFactory;
5.importcom.sinber.domain.Person;
7.publicclassSAXPerson{
8.publicstaticList<
getPerson()throwsException{
9.//通过类装载器获取文件
10.InputStreaminStream=SAXPersonService.class.getClassLoader().getResourceAsStream("
person.xml"
);
11.
12.SAXParserFactoryfactory=SAXParserFactory.newInstance();
13.SAXParsersaxParser=factory.newSAXParser();
14.PersonDefaultHandlerhandler=newPersonDefaultHandler();
15.saxParser.parse(inStream,handler);
16.inStream.close();
17.returnhandler.getPersons();
20.}
(2)DOM解析XML文件时,会将XML文件的所有内容读取到内存中,然后允许您使用DOMAPI遍历XML树、检索所需的数据。
DOMPerson.java
2.importjava.util.ArrayList;
3.importjava.util.List;
4.importjavax.xml.parsers.DocumentBuilder;
5.importjavax.xml.parsers.DocumentBuilderFactory;
6.importorg.w3c.dom.Document;
7.importorg.w3c.dom.Element;
8.importorg.w3c.dom.Node;
9.importorg.w3c.dom.NodeList;
10.importcom.sinber.domain.Person;
12.publicclassDOMPerson{
13.publicstaticList<
14.List<
pers=newArrayList<
15.InputStreaminStream=SAXPersonService.class.getClassLoader().getResourceAsStream("
16.DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();
17.DocumentBuilderbuilder=factory.newDocumentBuilder();
18.Documentdom=builder.parse(inStream);
19.Elementroot=dom.getDocumentElement();
20.NodeListpersons=root.getElementsByTagName("
21.for(inti=0;
i<
persons.getLength();
i++){
22.ElementpersonNode=(Element)persons.item(i);
23.Personperson=newPerson();
24.person.setId(newInteger(personNode.getAttribute("
id"
)));
25.NodeListchildNodes=personNode.getChildNodes();
26.for(intj=0;
j<
childNodes.getLength();
j++){
27.NodechildNode=childNodes.item(j);
28.if(childNode.getNodeType()==Node.ELEMENT_NODE){
29.Elementelement=(Element)childNode;
30.if("
.equals(childNode.getNodeName())){
31.person.setName(newString(element.getFirstChild().getNodeValue()));
32.}elseif("
33.person.setAge(newShort(element.getFirstChild().getNodeValue()));
34.}
35.}
36.
37.}
38.pers.add(person);
39.}
40.inStream.close();
41.returnpers;
42.}
43.
44.}
(3)使用Pull解析器读取XML文件
PullPerson.java
1.importjava.io.File;
2.importjava.io.FileOutputStream;
3.importjava.io.InputStream;
4.importjava.util.ArrayList;
5.importjava.util.List;
6.importorg.xmlpull.v1.XmlPullParser;
7.importorg.xmlpull.v1.XmlSerializer;
8.importandroid.os.Environment;
9.importandroid.util.Xml;
12.publicclassPullPerson{
13.publicstaticvoidsave(List<
persons)throwsException{
14.XmlSerializerserializer=Xml.newSerializer();
15.Filefile=newFile(Environment.getExternalStorageDirectory(),"
16.FileOutputStreamoutStream=newFileOutputStream(file);
17.serializer.setOutput(outStream,"
18.serializer.startDocument("
true);
19.serializer.startTag("
"
"
persons"
20.for(Personperson:
persons){
21.serializer.startTag("
//person
22.serializer.attribute("
+person.getId());
23.serializer.startTag("
//name
24.serializer.text(person.getName());
25.serializer.endTag("
26.serializer.startTag("
//age
27.serializer.text(person.getAge().toString());
28.serializer.endTag("
//age
29.serializer.endTag("
32.serializer.endTag("
33.serializer.endDocument();
34.outStream.close();
38.publicstaticList<
getPersons()throwsException{
39.List<
persons=null;
40.Personperson=null;
41.XmlPullParserparser=Xml.newPullParser();
42.InputStreaminStream=PullPersonService.class.getClassLoader().getResourceAsStream("
43.parser.setInput(inStream,"
44.inteventType=parser.getEventType();
//触发第一个事件
45.while(eventType!
=XmlPullParser.END_DOCUMENT){
46.switch(eventType){
47.caseXmlPullParser.START_DOCUMENT:
48.persons=newArrayList<
49.break;
51.caseXmlPullParser.START_TAG:
//开始元素事件
52.if("
.equals(parser.getName())){
53.person=newPerson();
54.person.setId(newInteger(parser.getAttributeValue(0)));
55.}elseif(perso
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 和大家分享一下笔试很重要的东西 大家 分享 一下 笔试 很重要 东西
![提示](https://static.bdocx.com/images/bang_tan.gif)