如果有錯誤或者不對的,希望大佬指出
科大訊飛的面試
是如何解決圖片帶來的OOM?
1.確定圖片大小,可以先加載縮略圖;
2.壓縮圖片質量寒锚;
3.根據控件實際大小加載對應大小的圖片;
4.然后就是緩存,內存緩存甩十,磁盤緩存,Lru緩存闹炉。
如何知道一張圖片所占的內存懈糯?
1.分辨率 * 像素點; (width * height *像素點)
如果多線程中引用單例模式脊框,會引發(fā)什么后果颁督?如何解決?
后果(有大佬有好的文章,評論區(qū)貼一下):可能會出現多個單例(講一下單例的3個模式(懶漢,餓漢,內部類)),講一下3種模式的區(qū)別;
解決:加鎖,引申到多線程的鎖機制浇雹。
在子線程中new Handler 會怎么樣沉御?
很可能會延伸到Handler的源碼,首先在子線程new Handler需要進行 Looper.loop 和Looper.prepare,使Handler進行工作,這個子線程會被handler一直持有,不會結束昭灵。大家可以寫個例子
new Thread({
Looper.prepare()
new Handler(){
void hanlderMessage(){
}
}
handler.sendMessage()
Looper.loop()
//這句是不會執(zhí)行的結果就是這樣的,大家可以測試一下 需要調用handler.quitSalf()才會執(zhí)行
Log.i(TAG,"log....")
}).start()
安卓6.0的權限適配吠裆,8.0的權限適配伐谈?
6.0以后是運行時權限適配,8.0的權限分組
dp和px的關系?
等待有心人貼文章
屏幕分辨率的適配试疙?
等待有心人貼文章
Service有幾種啟動方式诵棵?他們的生命周期又如何?
- start 和binder,2種方式
- start啟動的生命周期不依賴某個組件,binder需要的生命周期依賴與一個組件
- 假設在A界面使用binder啟動service祝旷,此時如果A界面退出,service會銷毀
- 同樣情況,A界面啟動binder方式啟動service,在B界面也用binder啟動同一個service,這時service的生命周期不會重新執(zhí)行.B界面銷毀,serivce不會被銷毀.A界面銷毀,service會被銷毀
- 可以得出,binder啟動的service,是1個servive持有多個組件,等到持有的組件全部被銷毀,service就會被銷毀