因爲連接出錯,這裏附上原文連接:Touch Mejava
前段時間面試,本身以及小夥伴們簡要的彙總的一些面試問題,能夠對照的參考一下吧~android
建議就是在面一家公司以前瞭解好這個公司的app是以什麼爲驅動的,例如電商的話確定要了解hybrid 開發的一些知識點,圖像處理的公司要好好複習下bitmap canvas相關的知識點,祝好運!面試
UI:算法
1.View的繪製sql
Android視圖繪製流程徹底解析,帶你一步步深刻了解View(二)數據庫
2) Android自定義View的實現方法編程
3)canvasjson
Andriod中繪(畫)圖----Canvas的使用詳解canvas
Activity:緩存
1.onPause和onStop的區別 // 這裏有錯誤須要修改,修改在下方
onPause:能夠看到這個activity (好比dialog) onStop:看不見這個activity
2.Activit用的啓動方式
standard: 標準模式,一調用startActivity()方法就會產生一個新的實例。
singleTop: 若是已經有一個實例位於Activity棧的頂部時,就不產生新的實例,而只是調用Activity中的newInstance()方法。若是不位於棧頂,會產生一個新的實例。
singleTask: 會在一個新的task中產生這個實例,之後每次調用都會使用這個,不會去產生新的實例了。
singleInstance: 這個跟singleTask基本上是同樣,只有一個區別:在這個模式下的Activity實例所處的task中,只能有這個activity實例,不能有其餘的實例。
3.ActivityManagerService
第6章 深刻理解ActivityManagerService
4.activity的啓動過程:
5.Activity之間的協做當一個activity A啓動了另一個activity B,它們的生命週期是有交叉的;
首先A的onPause()被調用;
e以後B的onCrate(), onStart()及onResume() 方法會被調用(此時B擁有用戶焦點);
最後,若是A在屏幕上不可見,onStop()方法被調用;
所以,咱們在兩個activities中傳遞數據,或者共享資源時(如數據庫鏈接),須要在前一個activity的onPause()方法而不是onStop()方法中進行;
Service
1)service解析
2)兩種啓動方式
Fragment
1)生命週期:
數據存儲:
1)contentprovider
2)sqlite
內存泄露:
1,不要讓生命週期長於Activity的對象持有到Activity的引用
2,儘可能使用Application的Context而不是Activity的Context
3,儘可能不要在Activity中使用非靜態內部類,由於非靜態內部類會隱式持有外部類實例的引用(具體能夠查看細話Java:」失效」的private修飾符瞭解)。若是使用靜態內部類,將外部實例引用做爲弱引用持有。
4,垃圾回收不能解決內存泄露,瞭解Android中垃圾回收機制
網絡
1)volley
Android Volley徹底解析(四),帶你從源碼的角度理解Volley
2)如何控制TCP鏈接時的擁塞
3)三次握手
4)Android客戶端和服務端如何使用Token和Session
Android客戶端和服務端如何使用Token和Session
5) 移動端獲取網絡數據優化的幾個點
0. 鏈接複用 :
節省鏈接創建時間,如開啓 keep-alive。
對於 Android 來講默認狀況下 HttpURLConnection 和 HttpClient 都開啓了 keep-alive。只是 2.2 以前 HttpURLConnection 存在影響鏈接池的 Bug,具體可見:Android HttpURLConnection 及 HttpClient 選擇
請求合併:
即將多個請求合併爲一個進行請求,比較常見的就是網頁中的 CSS Image Sprites。若是某個頁面內請求過多,也能夠考慮作必定的請求合併。
2. 減小請求數據的大小:
對於post請求,body能夠作gzip壓縮的,header也能夠做數據壓縮(不過只支持http 2.0)。
3. 返回的數據的body也能夠做gzip壓縮,body數據體積能夠縮小到原來的30%左右。(也能夠考慮壓縮返回的json數據的key數據的體積,尤爲是針對返回數據格式變化不大的狀況,支付寶聊天返回的數據用到了)
4. 根據用戶的當前的網絡質量來判斷下載什麼質量的圖片(電商用的比較多)
圖像處理:
1.裁剪
2.Fresco:
android緩存
1.LRUCache
GC:
1.GC過程:
內存:
1)內存分配:
多線程
1)線程池:
事件分發機制
1)Touch
算法:
1.TopK堆解決
優化
1)Listview的優化
2)convertView是如何傳遞到adapter的getView方法的
Hybrid
1)java和JS的交互
Android中JavaScript和Native之間的Bridge
WebView開啓JavaScript腳本執行
WebView設置供JavaScript調用的交互接口。