Android 和大家分享一下笔试很重要的东西文档格式.docx

上传人:b****5 文档编号:19483850 上传时间:2023-01-06 格式:DOCX 页数:14 大小:21.22KB
下载 相关 举报
Android 和大家分享一下笔试很重要的东西文档格式.docx_第1页
第1页 / 共14页
Android 和大家分享一下笔试很重要的东西文档格式.docx_第2页
第2页 / 共14页
Android 和大家分享一下笔试很重要的东西文档格式.docx_第3页
第3页 / 共14页
Android 和大家分享一下笔试很重要的东西文档格式.docx_第4页
第4页 / 共14页
Android 和大家分享一下笔试很重要的东西文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Android 和大家分享一下笔试很重要的东西文档格式.docx

《Android 和大家分享一下笔试很重要的东西文档格式.docx》由会员分享,可在线阅读,更多相关《Android 和大家分享一下笔试很重要的东西文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

Android 和大家分享一下笔试很重要的东西文档格式.docx

意图,描述应用想干什么。

最重要的部分是动作和动作对应的数据。

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1