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