您好,登錄后才能下訂單哦!
這篇文章主要介紹了Android面試常問七道題是什么的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Android面試常問七道題是什么文章都會有所收獲,下面我們一起來看看吧。
1、Android的四大組件以及作用
Activity:Activity是Android程序與用戶交互的窗口,是Android構造塊中最基本的一種,它需要為保持各界面的狀態,做很多持久化的事情,妥善管理生命周期以及一些跳轉邏輯。
service:后臺服務于Activity,封裝有一個完整的功能邏輯實現,接受上層指令,完成相關的動作,定義好需要接受的Intent提供同步和異步的接口。
Content Provider:是Android提供的第三方應用數據的訪問方案,對外提供數據,屏蔽內部數據的存儲細節,向外提供統一的借口模型,大大簡化上層應用對數據的整合提供了更方便的途徑。
BroadCast Receiver:接受一種或者多種Intent作觸發事件,接受相關消息,做一些簡單處理,轉換成一條Notification,統一了Android的事件廣播模型。
2、描述下Activity的生命周期?
Activity的生命周期方法有:onCreate()、onStart()、onReStart()、onResume()、onPause()、onStop()、onDestory();
可見生命周期:從onStart()直到系統調用onStop()
前臺生命周期:從onResume()直到系統調用onPause()
屏幕旋轉時的Activity生命周期:
不設置Activity的android:configChanges時,切屏會重新調用各個生命周期,切橫屏時會執行一次,切豎屏時會執行兩次;
設置Activity的android:configChanges="orientation"時,切屏還是會重新調用各個生命周期,切橫、豎屏時只會執行一次;
設置Activity的android:configChanges="orientation|keyboardHidden"時,切屏不會重新調用各個生命周期,只會執行onConfigurationChanged方法。
3、ListView優化有哪幾種方式?
1)ListView中item的布局至關重要,必須盡可能的減少使用的控件,布局。
2)RelativeLayout是絕對的利器,通過它可以減少布局的層次。
3)同時要盡可能的復用控件,這樣可以減少ListView的內存使用,減少滑動時GC次數。
4)ListView的背景色與cacheColorHint設置相同顏色,可以提高滑動時的渲染性能。
5)getView方法中不能做復雜的邏輯計算,特別是數據庫操作,否則會嚴重影響滑動時的性能。
4、解釋下Handler的運行機制?
Message,理解為線程間交流的信息
Handler,是Message的主要處理者,負責Message的發送和執行處理
Message Queue,用來存放通過Handler發布的消息,按照先進先出執行
Looper ,是每條線程里的Message Queue的管家
Handler一般在主線程中創建,子線程通過處理器對象的sendMessage發消息到
MessageQueue(消息隊列)里,主線程中已經包含了一個Looper(輪循器),Looper是死循環的,會一直輪詢消息隊列,看是否有Message(消息) ,如果有,輪詢器會把消息對象傳給Handler(消息處理器),然后調用handlerMessage處理該消息,進而更新UI。
5、什么是ANR?如何避免ANR異常?
ANR:Application Not Responding。在Android中,活動管理器和窗口管理器這兩個系統服務負責監視應用程序的響應,當用戶操作的在5s內應用程序沒能做出反應,BroadcastReceiver在10秒內沒有執行完畢,就會出現應用程序無響應對話框,就是ANR。
避免方法:Activity應該在它的關鍵生命周期方法(如onCreate()和onResume())里盡可能少的去做創建操作。潛在的耗時操作,例如網絡或數據庫操作,或者高耗時的計算如改變位圖尺寸,應該在子線程里(或者異步方式)來完成。主線程應該為子線程提供一個Handler,以便完成時能夠提交給主線程。
6、Android中三種動畫,特點和區別是什么?
Android 中的動畫有幀動畫,補間動畫,屬性動畫。
幀動畫:一張張圖片不斷的切換,形成動畫效果,類似小時候的電影。很多應用的loading是采用這種方式。
補間動畫:是對某個View進行一系列的動畫的操作,包括淡入淡出(Alpha),縮放(Scale),平移(Translate),旋轉(Rotate)四種模式。
屬性動畫:屬性動畫不再僅僅是一種視覺效果了,而是一種不斷地對值進行操作的機制,并將值賦到指定對象的指定屬性上,可以是任意對象的任意屬性。
7、注冊廣播有幾種方式,有何優缺點?
第一種:在清單文件中聲明,添加
<receive android:name=".IncomingSMSReceiver " > <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED") <intent-filter> <receiver>
第二種使用代碼進行注冊:
IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED"); IncomingSMSReceiver receiver = new IncomgSMSReceiver(); registerReceiver(receiver.filter);
兩種注冊類型的區別是:
1)第一種不是常駐型廣播,也就是說廣播跟隨程序的生命周期。
2)第二種是常駐型,也就是說當應用程序關閉后,如果有信息廣播來,程序也會被系統調用自動運行。
關于“Android面試常問七道題是什么”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Android面試常問七道題是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。