首頁>科技>

所周知,簡歷上“了解=聽過名字;熟悉=知道是啥;熟練=用過;精通=做過東西”。最近在面試,我現在十分後悔在簡歷上寫了“精通”二字…

先給大家看看我簡歷上的技能清單:

良好的java基礎,熟悉掌握面向物件思想;熟悉掌握Android資料儲存(檔案、SQLite、SharedPreferences等);熟悉使用分享、推送、及第三方支付、網路、圖片載入等功能的 SDK;熟練處理Android中的OOM、ANR異常;精通自定義View與UI效能優化;

面試官剛看完我的簡歷,就露出了詭異的笑容。(我當時就覺得不太妙)

面試官:“先簡單介紹一下自己吧。”

我:“您好!我是工作時長兩年半的Android開發者,喜歡唱、跳、rap,寫bug!之前在一家初創醫療網際網路公司,老闆立完新專案後1個月就要求見到上線成品!這種壓迫下產品的體驗可想而知,我無法忍受自己做出來的產品像一坨X一樣?所以我選擇了閃人…”

面試官點點頭,問了我四大元件的生命週期、Activity啟動模式等等這些基礎。

他突然笑了:“我看到你在簡歷中自稱是’熱門技術的鑽研者’、’追求極致效能的偏執者’?”

我虎軀一震,接道:“我認為一款產品最重要、最直觀的就是UI與效能,所以這些年來對於自定義View與UI效能優化這塊研究了很多…”

面試官:“很棒!和我們公司的理念相合,既然你簡歷精通這一塊,那我們就來聊聊吧!”

我,微微頷首,示意儘管放馬過來。

面:“自定義 View 如何實現拉弓效果,貝塞爾曲線原理實現?”

我:“貝,貝什麼?”

面:“答不上來沒事兒,

描述一下MeasureSpec 的原理?

onMeasure是幹什麼的?

自定義View和自定義ViewGroup的區別?

onmeasure,onLayout,onDraw的排程流程是怎樣的?

自定義View的measure時機是什麼,為什麼引數值時而是0,時而正確?

為什麼要進行懶載入?

我:“???”

面:“你寫過自定義View嗎?你看過Viewpaper原始碼嗎?你懂不懂ViewPager快取機制?你會手寫懶載入機制優化UI效能嗎?”

我:“寫過。沒看過。不懂。不會。”

面試官,微微一笑:“少年,這你簡歷上怎麼敢寫精通啊?”

我:“……”

面:“你有什麼問題要問我嗎?

我:“我沒什麼問題了…”

面試官:“好,那你先回去等通知吧!”

如果你的app卡頓、UI不好看、互動不友好、體驗差,使用者會直接解除安裝。那該如何提高我們產品的UI和使用者體驗?

那就要求我們開發者,熟練掌握甚至“精通”自定義 ViewGroup 與 UI 效能優化。

自定義View,是Android程式設計師的分水嶺。自定義 View 可以讓我們產生更好的效果,app UI 美觀,互動介面友好,使用者青睞,使用者留存率高,這就是app成功的第一步了。

高階UI與自定義View有著不可分割的聯絡。自定義View其實並不難,為什麼呢?因為自定義View無非就是顯示+互動:顯示由 onMeasure ->onLayout->onDraw的整個流程就將顯示整個流程處理完了,而互動則是touch事件的處理;另外其他的一切你比如Canvas,Animation,Paint都是圍繞著draw來進行的,所以我們需要搞懂其中的根本原理。

接下來我們看一張圖片,來看看你真的精通自定義View與UI效能優化嗎?

這是在我報名的安卓課程上擷取的關於高階UI的思維路線圖,我看了一下,每個技術點都值得斟酌,目前我還在看視訊中。

別問,那個寫精通的人就是我,就是有人告訴我那樣寫簡歷才好看,面試官也不會刨根問底,都是問些基礎的東西。沒想到點子低,恰好被面試官給逮住了。

說來慚愧,之前都是轉載一些我覺得不錯的技術文章,但是Java真沒那麼好做,自己也是弄個一知半解,後來朋友介紹我轉Android,因為至少一些Java基礎還是有的。恰好Android這一塊我認識的朋友也多,能分享的東西就更多,前段時間也下定決心掏了幾千塊錢報了一個直播課程,只求多學點。

目前手頭不寬裕,跟我目前所在的課程班做了一個合作,就是我幫他們宣傳宣傳,賺賺外快,雖然賺得不是很多,但總比沒有的好。

不過目前來看,受益確實挺多的,學到的都是乾貨。

安卓視訊和麵試資料View 的滑動方式View 的事件分發機制View 的載入流程自定義 view 需要注意的幾點

其他面試題

視訊檔案

最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 奮戰10年!王興贏了外賣,卻輸盡了人心?