亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android面試題問答整理

2019-10-21 21:32:01
字體:
來源:轉載
供稿:網友

概述

找工作挺難,為更好的應對面試,我將一些面試題收集整理起來,好讓自己隨時復習。

1.請談一下Android系統的架構。

答:Android系統采用了分層架構,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和linux核心層。

2.談談android大眾常用的五種布局。

答:在Android中,共有五種布局方式,分別是:FrameLayout(框架布局),LinearLayout (線性布局),AbsoluteLayout(絕對布局),RelativeLayout(相對布局),TableLayout(表格布局)。

  • (1)FrameLayout 框架布局,放入其中的所有元素都被放置在最左上的區域,而且無法為這些元素指定一個確切的位置,下一個子元素會重疊覆蓋上一個子元素,適合瀏覽單張圖片。
  • (2)LinearLayout 線性布局,是應用程序中最常用的布局方式,主要提供控件水平或者垂直排列的模型,每個子組件都是以垂直或水平的方式來定位.(默認是垂直)
  • (3)AbsoluteLayout 絕對定位布局,采用坐標軸的方式定位組件,左上角是(0,0)點,往右x軸遞增,往下Y軸遞增,組件定位屬性為android:layout_x 和 android:layout_y來確定坐標。
  • (4)RelativeLayout 相對布局,根據另外一個組件或是頂層父組件來確定下一個組件的位置。和CSS里面的類似。
  • (5)TableLayout 表格布局,類似Html里的Table.使用TableRow來布局,其中TableRow代表一行,TableRow的每一個視圖組件代表一個單元格。

3.談談android數據存儲方式。

答:Android提供了5種方式存儲數據:

  • (1)使用SharedPreferences存儲數據;它是Android提供的用來存儲一些簡單配置信息的一種機制,采用了XML格式將數據存儲到設備中。只能在同一個包內使用,不能在不同的包之間使用。
  • (2)文件存儲數據;文件存儲方式是一種較常用的方法,在Android中讀取/寫入文件的方法,與Java中實現I/O的程序是完全一樣的,提供了openFileInput()和openFileOutput()方法來讀取設備上的文件。
  • (3)SQLite數據庫存儲數據;SQLite是Android所帶的一個標準的數據庫,它支持SQL語句,它是一個輕量級的嵌入式數據庫。
  • (4)使用ContentProvider存儲數據;主要用于應用程序之間進行數據交換,從而能夠讓其他的應用保存或讀取此Content Provider的各種數據類型。
  • (5)網絡存儲數據;通過網絡上提供給我們的存儲空間來上傳(存儲)和下載(獲取)我們存儲在網絡空間中的數據信息。

4.Android中Activity, Intent, Content Provider, Service各有什么區別。

答:

  • Activity: 活動,是最基本的android應用程序組件。一個活動就是一個單獨的屏幕,每一個活動都被實現為一個獨立的類,并且從活動基類繼承而來。
  • Intent: 意圖,描述應用想干什么。最重要的部分是動作和動作對應的數據。
  • Content Provider:內容提供器,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文件:

張三 
22 李四 
23 定義一個名為Person的javaBean用于存放上面解析出來的xml內容

public class Person {private Integer id;private String name;private Short age;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Short getAge() {return age;}public void setAge(Short age) {this.age = age;}}(1)使用SAX讀取XML文件;它采用的是事件驅動,并不需要解析完整個文檔,速度快并且占用內存少。需要為SAX提供實現ContentHandler接口的類。PersonDefaultHandler.javaimport java.util.ArrayList;import java.util.List;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;import com.sinber.domain.Person;public class PersonDefaultHandler extends DefaultHandler {private List persons;private Person person ; //記錄當前personprivate String perTag; //記錄前一個標簽的名稱/*** 重寫父類的開始文檔方法。用于初始化*/@Overridepublic void startDocument() throws SAXException {persons = new ArrayList();}@Overridepublic void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException {if(“person”.equals(localName)){Integer id = new Integer(attributes.getValue(0)); //取idperson = new Person();person.setId(id);}perTag = localName;}/**參數:* ch 整個XML字符串* start 節點值在整個XML字符串中的索引位置* length 節點值的長度*/@Overridepublic void characters(char[] ch, int start, int length)throws SAXException {if(perTag!=null){String data = new String(ch,start,length);if(“name”.equals(perTag)){person.setName(data);}else if(“age”.equals(perTag)){person.setAge(new Short(data));}}}@Overridepublic void endElement(String uri, String localName, String qName)throws SAXException {if(“person”.equals(localName)){persons.add(person);person = null;}perTag = null;}public List getPersons() {return persons;}}SAXPerson.javaimport java.io.InputStream;import java.util.List;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import com.sinber.domain.Person;public class SAXPerson{public static List getPerson() throws Exception{//通過類裝載器獲取文件InputStream inStream = SAXPersonService.class.getClassLoader().getResourceAsStream(“person.xml”);SAXParserFactory factory = SAXParserFactory.newInstance();SAXParser saxParser = factory.newSAXParser();PersonDefaultHandler handler = new PersonDefaultHandler();saxParser.parse(inStream, handler);inStream.close();return handler.getPersons();}}(2)DOM解析XML文件時,會將XML文件的所有內容讀取到內存中,然后允許您使用DOM API遍歷XML樹、檢索所需的數據。DOMPerson.javaimport java.io.InputStream;import java.util.ArrayList;import java.util.List;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import com.sinber.domain.Person;public class DOMPerson {public static List getPerson() throws Exception{List pers = new ArrayList();InputStream inStream = SAXPersonService.class.getClassLoader().getResourceAsStream(“person.xml”);DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();Document dom = builder.parse(inStream);Element root = dom.getDocumentElement();NodeList persons = root.getElementsByTagName(“person”);for(int i=0;i<persons.getLength();i++){Element personNode =(Element)persons.item(i);Person person = new Person();person.setId(new Integer(personNode.getAttribute("id")));NodeList childNodes = personNode.getChildNodes();for(int j=0;j<childNodes.getLength();j++){Node childNode = childNodes.item(j);if(childNode.getNodeType()==Node.ELEMENT_NODE){Element element = (Element)childNode;if("name".equals(childNode.getNodeName())){person.setName(new String(element.getFirstChild().getNodeValue()));}else if("age".equals(childNode.getNodeName())){person.setAge(new Short(element.getFirstChild().getNodeValue()));}}}pers.add(person);}inStream.close();return pers;}}(3)使用Pull解析器讀取XML文件PullPerson.javaimport java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlSerializer;import android.os.Environment;import android.util.Xml;import com.sinber.domain.Person;public class PullPerson {public static void save(List persons) throws Exception{XmlSerializer serializer = Xml.newSerializer();File file = new File(Environment.getExternalStorageDirectory(),”person.xml”);FileOutputStream outStream = new FileOutputStream(file);serializer.setOutput(outStream,”UTF-8″);serializer.startDocument(“UTF-8″, true);serializer.startTag(“”, “persons”);for(Person person:persons){serializer.startTag(“”, “person”); //personserializer.attribute(“”, “id”, “”+person.getId());serializer.startTag(“”, “name”); //nameserializer.text(person.getName());serializer.endTag(“”, “name”); //nameserializer.startTag(“”, “age”); //ageserializer.text(person.getAge().toString());serializer.endTag(“”, “age”);//ageserializer.endTag(“”, “person”); //person}serializer.endTag(“”, “persons”);serializer.endDocument();outStream.close();}public static List getPersons() throws Exception{List persons = null;Person person = null;XmlPullParser parser= Xml.newPullParser();InputStream inStream = PullPersonService.class.getClassLoader().getResourceAsStream(“person.xml”);parser.setInput(inStream, “UTF-8″);int eventType = parser.getEventType(); //觸發第一個事件while(eventType!=XmlPullParser.END_DOCUMENT){switch(eventType){case XmlPullParser.START_DOCUMENT:persons = new ArrayList();break;case XmlPullParser.START_TAG: //開始元素事件if(“person”.equals(parser.getName())){person = new Person();person.setId(new Integer(parser.getAttributeValue(0)));}else if(person!=null){if(“name”.equals(parser.getName())){person.setName(parser.nextText());}else if(“age”.equals(parser.getName())){person.setAge(new Short(parser.nextText()));}}break;case XmlPullParser.END_TAG: //結束元素事件if(“person”.equals(parser.getName())){persons.add(person);person = null;}break;default:break;}eventType = parser.next();}return persons;}}以上三種方式任選其一即可。

9.根據自己的理解描述下Android數字簽名。

答:

  • (1)所有的應用程序都必須有數字證書,Android系統不會安裝一個沒有數字證書的應用程序
  • (2)Android程序包使用的數字證書可以是自簽名的,不需要一個權威的數字證書機構簽名認證
  • (3)如果要正式發布一個Android ,必須使用一個合適的私鑰生成的數字證書來給程序簽名,而不能使用adt插件或者ant工具生成的調試證書來發布。
  • (4)數字證書都是有有效期的,Android只是在應用程序安裝的時候才會檢查證書的有效期。如果程序已經安裝在系統中,即使證書過期也不會影響程序的正常功能。

10.已知單鏈表的頭結構head,寫一個函數把這個鏈表逆序。

答: 如下所示

Node.javapublic class Node {private Integer count;private Node nextNode;public Node(){}public Node(int count){this.count = new Integer(count);}public Integer getCount() {return count;}public void setCount(Integer count) {this.count = count;}public Node getNextNode() {return nextNode;}public void setNextNode(Node nextNode) {this.nextNode = nextNode;}}ReverseSingleLink.javapublic class ReverseSingleLink {public static Node revSingleLink(Node head){if(head == null){ //鏈表為空不能逆序return head;}if(head.getNextNode()==null){ //如果只有一個結點,當然逆過來也是同一個return head;}Node rhead = revSingleLink(head.getNextNode());head.getNextNode().setNextNode(head);head.setNextNode(null);return rhead;}public static void main(String[] args){Node head = new Node(0);Node temp1 = null,temp2 = null;for(int i=1;i<100;i++){temp1 = new Node(i);if(i==1){head.setNextNode(temp1);}else{temp2.setNextNode(temp1);}temp2 = temp1;}head = revSingleLink(head);while(head!=null){head = head.getNextNode();}}} 

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人+综合亚洲+天堂| 色狠狠av一区二区三区香蕉蜜桃| 国产日韩欧美成人| 超薄丝袜一区二区| 一本一本久久a久久精品牛牛影视| 97av在线播放| www国产亚洲精品久久网站| 超碰日本道色综合久久综合| 色婷婷久久一区二区| 日韩欧美一区二区三区久久| 91精品国产综合久久香蕉| 欧美久久精品一级黑人c片| 国内精久久久久久久久久人| 亚洲嫩模很污视频| 成人性生交xxxxx网站| 久久久国产精彩视频美女艺术照福利| 青青在线视频一区二区三区| 欧美限制级电影在线观看| 日韩电影大全免费观看2023年上| 在线日韩日本国产亚洲| 国产精品久久久久免费a∨大胸| 中文字幕在线看视频国产欧美在线看完整| 国产成人精品一区二区| 成人日韩av在线| 国产日韩欧美中文| 欧美激情18p| 精品二区三区线观看| 国产精品久久久久久久7电影| 久久精品视频在线观看| 中文字幕日韩欧美| 亚洲综合在线播放| 国产在线98福利播放视频| 日韩av免费在线观看| 日韩国产高清污视频在线观看| 精品国产一区二区三区久久| 高清一区二区三区日本久| 成人h视频在线| 久久夜精品va视频免费观看| 在线播放日韩欧美| 成人国产精品久久久久久亚洲| 国产成人鲁鲁免费视频a| 亚洲人成伊人成综合网久久久| 国产久一一精品| 亚洲欧美日韩精品| 日韩av免费在线看| 色综合久久中文字幕综合网小说| 欧美性高跟鞋xxxxhd| 亚洲少妇激情视频| 久久国产精品偷| 久久久免费在线观看| 亚洲性av在线| 亚洲成人激情在线观看| 国产成人一区二区三区| 欧美精品一区二区免费| 亚洲性视频网站| 欧美成人免费一级人片100| 精品色蜜蜜精品视频在线观看| 欧美成人一区二区三区电影| 97超碰蝌蚪网人人做人人爽| 精品国产成人在线| 国产精品自拍偷拍| 国产亚洲欧美一区| 欧美日韩第一页| 久久中文久久字幕| 久久久久久久久久久网站| 亚洲天堂av在线免费观看| 国产91在线播放精品91| 国产69精品久久久久9999| 亚洲自拍小视频| 亚洲欧美综合图区| 久久夜色精品国产| 日韩在线视频国产| 亚洲人成人99网站| 懂色av影视一区二区三区| 中文字幕自拍vr一区二区三区| 亚洲精品国产suv| 性色av一区二区三区红粉影视| 国产精品午夜国产小视频| 在线观看日韩专区| 日韩精品在线视频观看| 色与欲影视天天看综合网| 成人国产精品日本在线| 欧美精品videos| 97国产在线视频| 91精品国产免费久久久久久| 欧美国产日韩一区二区三区| 欧美激情成人在线视频| 国产精品亚洲片夜色在线| 中文字幕精品—区二区| 精品国产一区二区三区久久狼5月| 欧美在线视频免费观看| 欧美中文字幕在线视频| 亚洲国产精品va在看黑人| 久久久精品久久久| 日韩女优人人人人射在线视频| 伊是香蕉大人久久| 欧美丰满少妇xxxxx| 懂色aⅴ精品一区二区三区蜜月| 91精品国产亚洲| 日韩精品视频在线观看免费| 欧美激情一区二区三区成人| 国产精品久久久久久婷婷天堂| 国内精品久久久久影院 日本资源| 日韩精品在线播放| 国语自产偷拍精品视频偷| 欧美在线视频一区二区| 成人中文字幕+乱码+中文字幕| 91视频九色网站| 欧美理论电影网| 一区二区三区视频免费| 中文字幕日韩欧美精品在线观看| 成人福利网站在线观看11| 国产精品白丝av嫩草影院| 精品日本美女福利在线观看| 久久天天躁狠狠躁夜夜av| 久久亚洲精品中文字幕冲田杏梨| 欧美麻豆久久久久久中文| 91精品久久久久久久久久久久久| 久久97精品久久久久久久不卡| 久久精品国亚洲| 美女黄色丝袜一区| 日韩免费在线电影| 国产精品久久久久久久久久久久久| 97成人精品区在线播放| 俺去亚洲欧洲欧美日韩| 在线观看国产精品91| 久久久噜噜噜久噜久久| 国产精品海角社区在线观看| 日韩精品在线播放| 欧美午夜精品在线| 久久久久久久久久久亚洲| 久久av中文字幕| 欧美另类极品videosbest最新版本| 国产成人鲁鲁免费视频a| 91成人在线视频| 亚洲a在线观看| 91精品国产高清久久久久久| 97视频免费在线观看| 欧美日韩国产精品一区二区三区四区| 久久久久北条麻妃免费看| 国产精品亚洲第一区| 欧美激情精品久久久久| 国产成人涩涩涩视频在线观看| 日韩一区二区三区xxxx| 亚洲国产日韩欧美在线图片| 久久中文字幕一区| 午夜精品一区二区三区视频免费看| 51久久精品夜色国产麻豆| 亚洲精品中文字幕av| 欧美一区二粉嫩精品国产一线天| 色爱精品视频一区| 亚洲第一精品夜夜躁人人爽| 91av福利视频| 亚洲第一av网| 久久伊人91精品综合网站| 92国产精品视频| 成人天堂噜噜噜| 国产精品一区久久| 播播国产欧美激情| 欧美大尺度电影在线观看| 国产成人小视频在线观看| 亚洲激情久久久| 欧美日韩国产精品| 色综合色综合久久综合频道88|