1._请写出5种以上的android中界面常用布局方式,跳槽季“充电宝”Android面试题(一)...
1.請(qǐng)介紹下Android中常用的5種布局
Android中常用的5種布局分別為:FrameLaout(框架布局)、LinearLayout(線性布局)、AbsoluteLayout(絕對(duì)布局)、RelativeLayout(相對(duì)布局)、TableLayout(表格布局)。
框架布局 :也叫幀布局,是將放入其中的元素都放置在左上角的區(qū)域中,而且無(wú)法為元素指定一個(gè)確切位置,后一個(gè)子元素將在之前一個(gè)子元素之上進(jìn)行覆蓋和填充。
線性布局 :應(yīng)用中最常用的布局方式,有分為水平布局和垂直布局;當(dāng)為水平布局的時(shí),只有一行,所有元素依次向右排列,當(dāng)為垂直布局時(shí),每一行只有一個(gè)元素,所有元素依次垂直往下。
絕對(duì)布局 :是采用X、Y坐標(biāo)來(lái)指定元素的位置,但是在屏幕旋轉(zhuǎn)的時(shí)候,往往會(huì)出現(xiàn)問(wèn)題,而且多個(gè)元素的時(shí)候計(jì)算也比較麻煩。
相對(duì)布局 :可以理解為以某一個(gè)元素為參照物來(lái)定位的布局方式,和CSS類似。主要屬性:相對(duì)某一個(gè)元素(android:layout_toLeftOf),相對(duì)父元素(android:layout_alignParentLeft)。
表格布局 :類似于Html中的表格,使用TableRow來(lái)布局;每一個(gè)TableRow代表一行,TableRow里的每一個(gè)視圖組件代表一個(gè)單元格。
每一種布局都有自己適合的方式,5種布局可以相互嵌套使用,做出美觀的界面。
2.請(qǐng)介紹下Android中的數(shù)據(jù)存儲(chǔ)方式
Android中數(shù)據(jù)存儲(chǔ)的方式總共有5種:文件存儲(chǔ)方式、使用SharedPreferences進(jìn)行數(shù)據(jù)存儲(chǔ)、SQLite數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)、ContentProvider存儲(chǔ)數(shù)據(jù)、網(wǎng)絡(luò)存儲(chǔ)。
文件數(shù)據(jù)存儲(chǔ) :在Android中讀取、寫入文件的方法,與Java中實(shí)現(xiàn)I/O的程序是完全一樣的,提供了openFileInput()、openFileOutput()來(lái)讀取與寫入設(shè)備中的文件。
使用SharedPreferences 進(jìn)行數(shù)據(jù)存儲(chǔ):Android用來(lái)存儲(chǔ)一些簡(jiǎn)單配置信息的一種機(jī)制,采用XML格式將數(shù)據(jù)存儲(chǔ)到設(shè)備中,通過(guò)getSharedPreferences()來(lái)獲得SharedPreferences接口,再通過(guò)編輯器進(jìn)行提交保存,通過(guò)getString()來(lái)讀取文件中的內(nèi)容;采用了Map數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)數(shù)據(jù),已鍵值的方式進(jìn)行存儲(chǔ)。
SQLite 數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù) :SQLite是Android自帶的一種標(biāo)準(zhǔn)數(shù)據(jù)庫(kù),支持大部分標(biāo)準(zhǔn)SQL語(yǔ)句,是一種嵌入式的關(guān)系型數(shù)據(jù)庫(kù)。通過(guò)SQLiteOpenHelper來(lái)獲得數(shù)據(jù)庫(kù)操作實(shí)例,從而進(jìn)行增刪改查以及分頁(yè)來(lái)讀取存儲(chǔ)查詢數(shù)據(jù)。
ContentProvider 存儲(chǔ)數(shù)據(jù) :主要是用于對(duì)外共享數(shù)據(jù),而且使其他應(yīng)用能夠訪問(wèn)ContentProvider中的數(shù)據(jù),利用繼承ContentProvider類來(lái)共享數(shù)據(jù),使用ContentResolver操作ContentProvider中的數(shù)據(jù)。使用ContentProvider共享數(shù)據(jù)的好處是統(tǒng)一了數(shù)據(jù)訪問(wèn)方式。
網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ) :通過(guò)網(wǎng)絡(luò)上給我們提供的存儲(chǔ)空間來(lái)上傳(存儲(chǔ))、下載(獲取)我們存儲(chǔ)在網(wǎng)絡(luò)空間中的數(shù)據(jù)信息。
3.Android中有哪幾種解析XML的類?官方推薦哪種?以及他們的原理和區(qū)別
在Android平臺(tái)上可以使用SAX(SimpleAPI for XML)、DOM(DocumentObject Model)、以及Android自帶的Pull解析器解析XML文件。
SAX 解析 XML文件采用的是事件驅(qū)動(dòng),也就是說(shuō),他讀取單向并不需要解析完整個(gè)文檔,在按內(nèi)容順序解析文檔的過(guò)程中,SAX會(huì)判斷當(dāng)前讀取到的字符是否符合XML語(yǔ)法中的某部分,如果符合就會(huì)觸發(fā)事件,其實(shí)就是一些回調(diào)方法,然后進(jìn)行判斷處理。優(yōu)點(diǎn):解析速度快,占用內(nèi)存少,適用于Android等移動(dòng)設(shè)備。缺點(diǎn):對(duì)于嵌套多個(gè)分支來(lái)說(shuō)處理不是很方便。
DOM 解析 XML文件時(shí),會(huì)將XML文件的所有內(nèi)容以文檔樹(shù)方式存放在內(nèi)存中,然后使用DOM API遍歷XML樹(shù),檢索所需的數(shù)據(jù),主要用于PC機(jī)。優(yōu)點(diǎn):使用DOM解析XML的代碼比較直觀,基于SAX的實(shí)現(xiàn)更加簡(jiǎn)單。缺點(diǎn):須將XML文件所有內(nèi)容存放在內(nèi)存中,所以消耗內(nèi)存大,不適用Android等移動(dòng)設(shè)備。
Pull 解析器 是Android內(nèi)置解析XML文件的解析器,運(yùn)行方式類似于SAX解析,只是產(chǎn)生的事件是一個(gè)數(shù)字,而非方法,因此可以使用一個(gè)switch對(duì)感興趣的事件進(jìn)行處理。Pull解析器對(duì)節(jié)點(diǎn)處理比較好,同樣也很省內(nèi)存,官方推擠使用Pull解析器解析XML文件,而且Android系統(tǒng)本身用到的XML文件內(nèi)部也是使用Pull解析器進(jìn)行解析的。
4.ListView的優(yōu)化方案
1> 、復(fù)用contentView :就是自定義適配器在getView方法中要考慮方法傳進(jìn)來(lái)的參數(shù)contentView是否為null,如果為null就創(chuàng)建contentView并返回,如果不為null則直接使用;在這個(gè)方法中盡可能少創(chuàng)建view。
2> 、異步加載圖片 :給contentView設(shè)置tag(setTag()),傳入一個(gè)viewHolder對(duì)象,下次可以直接調(diào)用getTag()顯示緩存中的數(shù)據(jù),可以達(dá)到圖像數(shù)據(jù)異步加載的效果。
3>. 快速滑動(dòng)列表時(shí)不顯示圖片?:
當(dāng)快速滑動(dòng)列表時(shí)(SCROLL_STATE_FLING), item中的圖片獲取需要消耗資源的view,可以不顯示出來(lái); 而處于其他兩種狀態(tài):空閑(SCROLL_STATE_IDLE)和低俗拖動(dòng)SCROLL_STATE_ TOUCH_SCROLL ),則將那些view顯示出來(lái)。
總結(jié)
以上是生活随笔為你收集整理的1._请写出5种以上的android中界面常用布局方式,跳槽季“充电宝”Android面试题(一)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: java创建读取文件_Java实现文件的
- 下一篇: 共用体/联合体
