一天一技術, 慢慢進步
很多都是被問明明會做, 但要我講出個什麼我卻講不出來
這次整理一些題目,以便以後隨時翻閱
---------
1. Android 4大元件
Activity, Service , Broadcast, ContentProvider
Broadcast: 廣播主要用來接收來自系統事件的物件,也稱為全域物件. 可用來接收來電狀態, 螢幕喚醒, 電量低落等等.
ContentProvider : 多個APP資訊共享. 指共享資料.
---------------
2. Android存資料的方式
Internal storage : Device private data
DB
External storage : SD card, public data
SharePreference :
Net: 儲存資料到網路主機上
------------------
3. Activity A call Activity B 生命週期
A.pause > B Create > B Start> B Resume > A Stoped
-----------------
4. Activity 啟動的4種型態
Stanedard : 固定加一個
SingTop : 如果目前該Activity已在前面, 就會直接拿當前Activity 並接 OnNewIntent , 如果不是則創建新的
範例: 當在Activity 點擊Notification 呼叫Activity時, 應該彈回原本Activity 即可
SingTask: 該Activity 只有一個, 不論是否在最前面, 都重新使用, 並將它上方的Activity移除.
SingleInstance: 不論從哪個APP都只有一個Single . Ex 瀏覽器
---------------
5. Service 的Start service, bind Service差別
Start service: 需要OnStop, 否則會一直在後端運行
Bind service: Bind 在Activity main thread上, Acitvity 離開就unBind
---------------
6. AIDL: 跨APP 共用Service.
---------------
7. 舉幾個你常用的Design pattern
解譯器(Interpreter Pattern): 定義一個文法, ex A123 B 456 等等 當遇到A則相加當遇到B則相乘, 容易擴充, 但文法複雜不適用
Factory(工廠): 建立一個abstract Hero { getHP()}; 其他class implement Hero, 並針對getHp寫定規則
Observe(觀察者模式): MVVM常用, 當A更改資料時, B被通知並刷新.
---------------
8. 跨APP溝通
AIDL: 快速,穩定, 主要的溝通渠道
Broadcast: 發訊息給所有有註冊的人, 慢 , 通常是指定功能而不是指定APP
Contenr Provider: 共享資料為主.