Android 面試題總結

來源:互聯網
上載者:User

標籤:遞迴調用   根據   橫豎屏   標準   enc   透明度   get   否則   效率   

1.Android四大組件以及作用???

           Activity:Activity是Android程式與使用者實現互動的視窗,是Android中最重要的一中,它需要儲存各介面的狀態,做很多持久化的事情。                    Service:運行與後台服務於Activity,定義好接受的Intent提供同步和非同步介面。               Content Provider:               BroadCast Receiver:

2.Android中常用的五中布局???

       FrameLayout: 架構布局                 LinearLayout:線性布局                 AbsolueLayout:絕對布局                RelativeLayout:相對布局                TableLayout:表格版面配置 

3.Android 中動畫有哪幾類???它們的特點和區別是什嗎???

       兩類,一類是Tween動畫、另一類是Frame動畫。                Tween動畫,實現方式可以使視圖組件移動、放大、縮小以及產生透明度的變化。               Frame動畫,通過一定的順序來播放一組圖片,(如gif圖)。

4.Android中Listview最佳化方案???

            如果是自訂配接器,那麼在getView方法中考慮傳進來額參數contenView是否為null,如果不為null則直接使用,盡量減少view的建立。                     給contentView設定tag(setTag()),傳入viewHolaer對象,用於緩衝要顯示的資料,可以達到映像資料的非同步載入。                   如果Listview需要顯示的item比較多時,就要考慮資料的分頁載入,根據需求去對應載入資料。 

5.ArrayList與LinkedList的區別和適用情境???

    Arraylist:            優點:ArrayList是實現了基於動態數組的資料結構,因為地址連續,一旦資料存放區好了,查詢操作效率會比較高(在記憶體裡是連著放的)。            缺點:因為地址連續, ArrayList要移動資料,所以插入和刪除操作效率比較低。    LinkedList:            優點:LinkedList基於鏈表的資料結構,地址是任意的,所以在開闢記憶體空間的時候不需要等一個連續的地址,對於新增和刪除操作add和remove,LinedList比較佔優勢。LinkedList 適用於要頭尾操作或插入指定位置的情境。            缺點:因為LinkedList要移動指標,所以查詢操作效能比較低。    適用情境分析: 當需要對資料進行對此訪問的情況下選用ArrayList,當需要對資料進行多次增加刪除修改時採用LinkedList。

6.View的繪製流程???

    View的繪製流程:OnMeasure()——>OnLayout()——>OnDraw()    各步驟的主要工作:    OnMeasure():            測量視圖大小。從頂層父View到子View遞迴調用measure方法,measure方法又回調OnMeasure。 OnLayout():            確定View位置,進行頁面配置。從頂層父View向子View的遞迴調用view.layout方法的過程,即父View根據上一步measure子View所得到的布局大小和布局參數,將子View放在合適的位置上。    OnDraw():            繪製視圖:ViewRoot建立一個Canvas對象,然後調用OnDraw()。六個步驟:①、繪製視圖的背景;②、儲存畫布的圖層(Layer);③、繪製View的內容;④、繪製View子視圖,如果沒有就不用;⑤、還原圖層(Layer);⑥、繪製捲軸。

 7.activity的生命週期???

    Activity生命週期方法主要有onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()和onRestart()方法。    啟動一個A Activity,分別執行onCreate()、onStart()、onResume()方法。    從A Activity開啟B Activity分別執行A onPause()、B onCreate()、B onStart()、B onResume()、A onStop()方法。    關閉B Activity,分別執行B onPause()、A onRestart()、A onStart()、A onResume()、B onStop()、B onDestroy()方法。    橫豎屏切換A Activity,資訊清單檔中不設定android:configChanges屬性時,先銷毀onPause()、onStop()、onDestroy()再重新建立onCreate()、onStart()、onResume()方法,設定orientation|screenSize(一定要同時出現)屬性值時,不走生命週期方法,只會執行onConfigurationChanged()方法。    Activity之間的切換可以看出onPause()、onStop()這兩個方法比較特殊,切換的時候onPause()方法不要加入太多耗時操作否則會影響體驗。

 

 

8.android的資料存放區???

            使用SharedPreferences儲存資料;它是Android提供的用來儲存一些簡單配置資訊的一種機制,採用了XML格式將資料存放區到裝置中。只能在同一個包內使用,不能在不同的包之間使用。            檔案儲存體資料;檔案儲存體方式是一種較常用的方法,在Android中讀取/寫入檔案的方法,與Java中實現I/O的程式是完全一樣的,提供了openFileInput()和openFileOutput()方法來讀取裝置上的檔案。            SQLite資料庫儲存資料;SQLite是Android所帶的一個標準的資料庫,它支援SQL語句,它是一個輕量級的嵌入式資料庫。            使用ContentProvider儲存資料;主要用於應用程式之間進行資料交換,從而能夠讓其他的應用儲存或讀取此Content Provider的各種資料類型。            網路儲存資料;通過網路上提供給我們的儲存空間來上傳(儲存)和下載(擷取)我們儲存在網路空間中的資料資訊。

9.Activity啟動模式???

            standard:標準模式,也是系統預設的啟動模式。假如 activity A 啟動了 activity B , activity B 則會運行在 activity A 所在的任務棧中。而且每次啟動一個 Activity ,都會重新建立新的執行個體,不管這個執行個體在任務中是否已經存在。             singleTop:棧頂複用模式。假如 activity A 啟動了 activity B ,就會判斷 A 所在的任務棧棧頂是否是 B 的執行個體。如果是,則不建立新的 activity B 執行個體而是直接引用這個棧頂執行個體,同時 onNewIntent 方法會被回調,通過該方法的參數可以取得當前請求的資訊;如果不是,則建立新的 activity B 執行個體。            singleTask:棧內複用模式。在第一次啟動這個 Activity 時,系統便會建立一個新的任務,並且初始化 Activity 的執行個體,放在新任務的底部。不過需要滿足一定條件的。那就是需要設定 taskAffinity 屬性。            singleInstance:單一實例模式。這個是 singleTask 模式的加強版,它除了具有 singleTask 模式的所有特性外,它還有一點獨特的特性,那就是此模式的 Activity 只能單獨地位於一個任務棧,不與其他 Activity 共存於同一個任務棧。

10.廣播註冊???

            首先寫一個類要繼承BroadCastReceiver            第一種:在資訊清單檔中聲明,添加 第二種:使用代碼進行註冊如:    <receive android :name ="BroadCastReceiverDemo">        <intent-filter>            <action android:name="android.provider.Telephony.SMS_RECEIVED">        </intent-filter>    </receiver>            第二種:使用代碼進行註冊如:    IntentFilter filter = new    IntentFilter("android.provider.Telephony.SMS_RECEIVED");    BroadCastReceiverDemo receiver = new BroadCastReceiver();    registerReceiver(receiver, filter);            兩種註冊類型的區別是:    第一種是常駐型廣播,也就是說當應用程式關閉後,如果有資訊廣播來,程式也會被系統調用自動運行。    第二種不是常駐廣播,也就是說廣播跟隨程式的生命週期。 

 

Android 面試題總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.