小公司程式設計師的程式設計水平與BAT大廠到底有多大差距?
BAT的牛人多,普通人也多,雖然他們不是每個人都能達到令人仰望的技術水平,但畢竟平臺高,所以眼光會變得寬闊;程式碼要求更為嚴格,所以普通的程式設計師也會被逼變得更優秀;身邊的牛人多,普通的程式設計師也會受到影響,提升的更快。

正好,小編今天看到一篇文章,是講去阿里的面試經歷,也分享給大家,看看自己離著【進】阿里還有多大的差距。
Activity
- 說下Activity生命週期 ?
- Activity A 啟動另一個Activity B 會呼叫哪些方法?如果B是透明主題的又或則是個DialogActivity呢 ?
- 說下onSaveInstanceState()方法的作用 ? 何時會被呼叫?
- 說下 Activity的四種啟動模式、應用場景 ?
- 瞭解哪些Activity常用的標記位Flags?
- 說下 Activity跟window,view之間的關係?
- 橫豎屏切換的Activity生命週期變化?
- 如何啟動其他應用的Activity?
- Activity的啟動過程?
Fragment
- 談一談Fragment的生命週期 ?與Activity生命週期的不同 ?
- 談談Activity和Fragment的區別?
- Fragment中add與replace的區別(Fragment重疊)
- getFragmentManager、getSupportFragmentManager 、getChildFragmentManager之間的區別?
- FragmentPagerAdapter與FragmentStatePagerAdapter的區別與使用場景
Service
- 談一談Service的生命週期?
- Service的兩種啟動方式?區別在哪?
- 如何保證Service不被殺死 ?
- 能否在Service開啟耗時操作 ? 怎麼做 ?
- 用過哪些系統Service ?
- 瞭解ActivityManagerService嗎?發揮什麼作用
Broadcast Receiver
- 廣播有幾種形式 ? 都有什麼特點 ?
- 廣播的兩種註冊方式 ?
- 廣播發送和接收的原理了解嗎 ?(Binder機制、AMS)
ContentProvider
- ContentProvider瞭解多少?
- ContentProvider的許可權管理?
資料儲存
- 描述一下Android資料持久儲存方式?
- SharedPreferences的應用場景?注意事項?
- 瞭解SQLite中的事務操作嗎?是如何做的
- 使用SQLite做批量操作有什麼好的方法嗎?
- 如何刪除SQLite中表的個別欄位?
- 使用SQLite時會有哪些優化操作?
IPC(重點)
- Android中程序和執行緒的關係? 區別?
- 如何開啟多程序 ? 應用是否可以開啟N個程序 ?
- 為何需要IPC?多程序通訊可能會出現的問題?
- Android中IPC方式、各種方式優缺點,為什麼選擇Binder?
- Binder機制的作用和原理?
- Binder框架中ServiceManager的作用?
- Bunder傳遞物件為什麼需要序列化?Serialzable和Parcelable的區別?
- 講講AIDL?原理是什麼?如何優化多模組都使用AIDL的情況?
View
- 講下View的繪製流程?
- MotionEvent是什麼?包含幾種事件?什麼條件下會產生?
- 描述一下View事件傳遞分發機制?
- 如何解決View的事件衝突 ? 舉個開發中遇到的例子 ?
- scrollTo()和scollBy()的區別?
- Scroller是怎麼實現View的彈性滑動?
- invalidate()和postInvalidate()的區別 ?
- SurfaceView和View的區別?
- 自定義View如何考慮機型適配 ?
Handler
- 談談訊息機制Handler ? 作用 ?有哪些要素 ?流程是怎樣的 ?
- 一個執行緒能否建立多個Handler,Handler跟Looper之間的對應關係 ?
- 軟引用跟弱引用的區別
- 為什麼系統不建議在子執行緒訪問UI
- Looper死迴圈為什麼不會導致應用卡死
- 使用Handler的postDealy後訊息佇列會有什麼變化 ?
- 可以在子執行緒直接new一個Handler嗎 ?怎麼做 ?
- Message可以如何建立 ? 哪種效果更好 ? 為什麼 ?
執行緒(重點)
- 用過執行緒池嗎 ? 講講AsyncTask的原理
- 執行緒池的幾個引數的理解,四種執行緒池的使用場景
- 直接在Activity中建立一個thread跟在service中建立一個thread之間的區別
- IntentService有什麼用 ?
- 執行緒池核心執行緒數一般定義多少 ,為什麼 ?
- Thread、Looper、MessageQueue、Handler、Message每個類的功能以及這些類之間的關係
- 執行緒池的好處、原理、型別 ? 多執行緒是否一定會高效(優缺點)
- ThreadPoolExecutor的工作策略 ?
- 什麼是ANR ? 什麼情況會出現ANR ?如何避免 ? 在不看程式碼的情況下如何快速定位出現ANR問題所在 ?
- NR在四大元件的時間、場景
- 多執行緒中,讓你做一個單例,你會怎麼做
- 除了notify還有什麼方式可以喚醒執行緒
Bitmap
- Bitmap在decode的時候申請的記憶體如何複用、釋放時機
- Bitmap使用需要注意哪些問題 ?Bitmap.recycle()會立即回收麼 ? 什麼時候會回收 ? 如果沒有地方使用這個Bitmap,為什麼垃圾回收不會直接回收它 ?
- 一張Bitmap所佔記憶體以及記憶體佔用的計算
- Android中快取更新策略 ?
- LRU的原理 ?
效能優化(重點)
- 圖片的三級快取中,圖片載入到記憶體中,如果記憶體快爆了,會發生什麼?怎麼處理?
- 記憶體中如果載入一張500*500的png高清圖片.應該是佔用多少的記憶體?
- WebView的效能優化 ?
- Bitmap如何處理大圖,如一張30M的大圖,如何預防OOM
- 記憶體回收機制與GC演算法(各種演算法的優缺點以及應用場景);GC原理時機以及GC物件
- 記憶體洩露和記憶體溢位的區別 ?AS有什麼工具可以檢測記憶體洩露
- 效能優化,怎麼保證應用啟動不卡頓? 黑白屏怎麼處理?
- 效能優化如何分析systrace?
- 強引用置為null,會不會被回收?
- ListView跟RecyclerView的區別(動畫、重新整理、快取、資料繫結層、優化、各自的使用場景)
- ListView的adapter是什麼adapter,如何複用 ?
- Java多執行緒引發的效能問題,怎麼解決?
- 效能優化如何分析systrace?
JNI
- 對JNI是否瞭解
- 如何載入NDK庫 ?如何在JNI中註冊Native函式,有幾種註冊方法 ?
- java如何呼叫c、c++語言 ?
- JNI如何呼叫java程式碼 ?
- 你用JNI來實現過什麼功能 ? 怎麼實現的 ?(加密處理、影音方面、圖形影象處理)
設計模式
- 你所知道的設計模式有哪些?
- 談談MVC、MVP和MVVM,好在哪裡,不好在哪裡 ?
- 如何理解生產者消費者模型 ?
- 是否能從Android中舉幾個例子說說用到了什麼設計模式 ?
- 裝飾模式和代理模式有哪些區別 ?
- 實現單例模式有幾種方法 ?懶漢式中雙層鎖的目的是什麼 ?兩次判空的目的又是什麼 ?
- 用到的一些開源框架,介紹一個看過原始碼的,內部實現過程。
- 談談對RxJava的理解
- RxJava的作用,與平時使用的非同步操作來比的優缺點
- 說說EventBus作用,實現方式,代替EventBus的方式
- Fragment如果在Adapter中使用應該如何解耦?
Android進階延伸點
- 如何進行單元測試,如何保證App穩定
- Android中如何檢視一個物件的回收情況
- TabLayout如何設定指示器的寬度包裹內容 ?
- APK的大小如何壓縮 ? 多渠道包 ?
- 外掛化原理分析
- 組建化原理,元件化中路由、埋點的實現
- Hook以及插樁技術
- Android的簽名機制,APK包含哪些東西 ?
- v3簽名key和v2還有v1有什麼區別
- 熱修復流派、原理,如何進行dex替換的 ?
- Android4.0~9.0之間大的變化,如何處理 ?
- 說下Measurepec這個類
- WebView相關(記憶體洩露、JS互動)
- 請例舉Android中常用佈局型別,並簡述其用法以及排版效率
- 區別Animation和Animator的用法,概述其原理
- 如何實現一個推送,極光推送原理
- 是否使用過DataBinding ? ButterKnife是怎麼做到佈局繫結的 ?
- 使用過什麼圖片載入庫 ?Glide的原始碼設計哪裡很微妙 ?
- 做過螢幕適配嗎 ?你的處理方案有哪些 ?
- 做過主題切換嗎?你的處理方案有哪些?
- 做過許可權適配嗎 ?動態許可權適配方案、許可權組的概念
- 用過哪些網路載入庫 ?OkHttp、Retrofit實現原理 ?
- 對於應用更新這塊是如何做的 ? (灰度,強制更新、分割槽域更新)
- 瞭解GPS、GIS嗎 ?
- 會用Kotlin、Fultter嗎 ? 談談你的理解
看完了有什麼感想,自己和BAT的要求有差距麼?
這也是根據面試題目整理的一份面試資料還有學習的視訊,今天免費分享給你們。


領取方式
以上資源,進群無套路免費獲取,每天還會更新最新資料
加QQ群: 818520403 ,免費領取資料 點選免費領取