Hi~大家好,這里規劃一下大三上半年各位都有哪些方向可以深挖,希望各位要打破自己的舒適區。
各位如果想進互聯網巨頭企業,一定要打好基礎(數據結構最重要,操作系統,計算機網絡,java基礎,Android基礎),幾乎所有的大公司都會問這些知識,人家就看你的發展潛力,這些就是標準,我入職以來,也深深的感受到基礎的重要性,即使工作用不到,可是對于新的東西你能否快速的掌握,基礎起著決定性的作用,下面,我主要講一下Android方向需要注重哪些,其他方向,牛客網里都有,面經一大堆,各位就一個側重點在哪里了,一定要注意計算機是一門實踐學科,數據結構在學習的時候多上手寫,總之,第一,要有知識廣度,基礎要扎實,第二,要有知識深度,什么是深度,要對里面的機制精準記憶!
常用組件:(實踐+原理)
Menu theme statusbarbackground ActionBar ContentView...有一個整體的了解
Android視圖
自定義View實戰、自定義ViewGroup實戰
有能力就看View繪制源碼(再深入的話研讀SurfaceFlinger)
View、ViewGroup事件分發機制 動畫機制
RecyclerView ListView源碼,各自優缺點,如何優化
ViewPager NevgationView WindowManagerService對窗口管理機制 SurfaceView MaterialDesign
推薦開源項目:VLayout(蘋果核博主有介紹)BGARefreshLayout...MaterialViewPager
RxJava
最好讀源碼,知道RxJava1 RxJava2的異同點,以后寫代碼會用到很多
Android圖片
Glide(郭霖博客很詳細) Picasso Fresco源碼,對比分析
可以對ImageView實現視圖拓展,實現異步下載,緩存圖片的能力
Binder
Handler源碼 特別是Activity Service啟動流程分析 IPC通訊機制? 還可以學習AIDL(任主席博客)
四大組件
實踐,原理(推薦老羅的博客,非常深入),如創建流程,ActivityThread相關,onNewIntent()執行流程,廣播registerReceiver過程等,Activity? fragment? Seevice生命周期,Activity任務棧和LaunchMode
Dalvik虛擬機,Android內存回收機制,如何解決OOM LruCache DiskLruCache等緩存框架
Android網絡編程
要熟練Socket編程,對HTTP,TCP有一個整體的認識,熟悉OkHttp3源碼,如消息隊列如何處理
AsyncTask使用場景,底層實現,優缺點
推薦開源項目:Retrofit(與RxJava怎么配合的,推薦思言的RxJava博客)
Android多線程
線程同步,死鎖問題
實踐+源碼,HandlerThread,IntentService,深入學習線程池并且應用在項目里面,如newCachedThreadPool等可以加在藍牙2.0項目里
敏捷開發
Android源碼里的設計模式好好總結(如代理模式,反向代理,觀察者,責任鏈,適配器,中介者等等),熟悉各自架構設計,優缺點也要掌握
熱更新
推薦研讀Tinker(后端C++方向可以看一下Tars),學有余力可以學習阿里AndFix(上手很復雜) 滴滴VirtualAPK
App動態化拓展
阿里的Weex實戰,知道Android終端如何實現與JS交互的,Weex如何實現自己的Activity等。
英語
大家爭取過英語4級, 否則以后公司會天天讓你讀Google文檔,你會撞墻的
沒有任何一個技術會長生不老,但技術的靈魂不會改變,不具備延展性的知識終將被遺棄。