移動開發——安卓開發面試必備的基礎知識(一)
發布時間:2022-03-04 17:02 瀏覽次數:次
一、關于Activity
關于Activity必須要了解的內容有:Activity的生命周期、android任務棧、Activity啟動模式、scheme跳轉協議。
1.1 什么是Activity
Activity是應用與用戶交互的接口,它提供了一個界面讓用戶進行點擊、滑動等操作
1.2 activity生命周期
通用的生命周期圖就不貼了,網上都能找到
共7種函數
Activity啟動-->onCreate()-->onStart()-->onResume() onResume()方法執行后可以進行交互
Activity不可見時(如點擊home)-->onPause()-->onStop()
再次回到Activity時,-->onRestart()-->onStart()-->onResume() onRestart()方法是在Activity由不可見變為可見時執行
退出Activity時onPause()-->onStop()-->onDestroy() onDestroy()方法中可做資源的回收與釋放
知識點:android進程優先級 前臺>可見>服務>后臺>空
1.3 activity啟動模式
共4種
標準:standard
棧頂:singletop
棧內:singletask
全局:singleinstance
1.4 scheme跳轉協議
通過注冊scheme可在App頁面內跳轉,從H5頁面跳轉到App,從一個App跳轉到另一個App
二、關于Fragment
關于Fragment必須要了解的內容有:Fragment的生命周期、Fragment之間的通信、Fragment管理器
Fragment相比Activity更節省內存,UI切換更舒適
動態添加Fragment
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
RightFragment rightFragment = new RightFragment();
transaction.add(R.id.id_fragment_right,rightFragment,"rightFragment");
transaction.commit();
FragmentPagerAdapter與FragmentStatePagerAdapter的區別
由于FragmentPagerAdapter在destroyItem時使用detach方法將Fragment的UI與Activity的UI脫離,而FragmentStatePagerAdapter在destroyItem時使用remove方法將Fragment內存回收,所以,FragmentStatePagerAdapter更適合fragment較多的情況
2.1 Fragment的生命周期
共有11種函數,在fragment的view創建之后,在onPause之前,activity的周期是先于它運行的,自onPause之后,fragment的周期的先于activity運行的。
2.2 Fragment通信(需要代碼實踐)
2.2.1 在Fragment中調用Activity的方法 getActivity
2.2.2 在Activity中調用Fragment的方法 接口回調
2.2.3 在Fragment中調用Fragment的方法 findFragmentById
Fragment常用方法:replace(),add(),remove()
三、關于Service
Service(服務)是一種可以在后臺執行長時間運行操作而沒有用戶界面的應用組件
Service是運行在主線程中的,所以不能進行耗時操作
Service生命周期,先上圖
啟動服務的生命周期:onCreate()、onStartCommand()、onDestory()
綁定服務的生命周期:onCreate()、onBind()、onUnbind()、onDestory()
但是要注意的是onBind()只被執行一次,可以綁定已經啟動的服務
3.1 Service啟動方式
startService()
步驟:定義一個類繼承Service,注冊Service,使用Context的startService(Intent)方法啟動。
bindService()
步驟:創建BindService服務端繼承自Service,在類中實現IBinder接口的實例對象并tigong公共方法給客戶端調用,從onBind()回調方法返回此Binder實例,在客戶端中,從onServiceConnected()回調方法接收Binder,并使用提供的方法調用綁定服務
四、關于BroadcastReceiver
BroadcastReceiver是一種廣泛運用的在應用程序之間傳輸信息的機制,android中廣播內容是一個Intent,可以攜帶要發送的數據
廣播種類:normal Broadcast;system Broadcast;local Broadcast
其它知識點:
Binder是一種通信機制,通常用于跨進程通信
AIDL是一個縮寫,全稱是Android Interface Definition Language,也就是Android接口定義語言,主要用于多進程并發的進程間通信
本文來源于網絡,若有侵權請聯系3449817223#qq.com,將在第一時間刪除。