進大廠本來就很難了,不過做足了準備,你會發現很多問題都迎刃而解了,當然有時候運氣也占了一部分,除了運氣以外,當然與我自身的努力也是分不開的。運氣也是實力的一部分,畢竟天助自助者~
每次到年底做總結的時候,總覺得漲了年齡少了頭發,多了CV的速度,少了激情~那年底了,我到底收獲了多少呢?今天就來總結一下吧。順便總結的內容上傳到github了,喜歡的可以收藏或者DD我
(順手留下GitHub鏈接,需要獲取相關面試等內容的可以自己去找)
面試經歷
1.偶然看到知乎的內推帖,投了個簡歷,下午hr姐姐call我,安排面試選在3天后,然而又要筆試阿里,所以沒怎么復習。
- 8點起床,9點過比較緊張的去了創業園,感覺知乎氛圍很好,在那等了一小會,有前臺大叔給你倒水。
一面:
應該是個參加工作不久的研究僧師兄,出了一道算法題,主要考字符轉int,然后分析了時間復雜度和空間復雜度,之后聊了android listView的性能優化,還問我recycalView的特點,進程通信的方式,我主要說了aidl和共享文件,廣播,本來還想用java裝B,還在精通java,然而師兄并沒有問,說叫等一下
二面:
二面明顯難度提升,而且面試管應該是組長吧,比較喜歡聽吹架構,正好之前自己從web后臺,客戶端,硬件等方面做了一個智能家居項目,就吹了下硬件那邊的邏輯,包括藍牙,wifi的HTTP/IP協議,透傳等,紅外等傳感器,然后web后臺我說我用sevlet,因為本身客戶端主要需要接口,數據庫用mysql,也沒問rollback(嘿嘿),然后把客戶端展示給他看看,實在太丑沒有美工(這不是重點),由于我的項目中有一個很重要的point就是在硬件觸發時喚醒服務器后臺推送,首先硬件識別后,串口讀寫數據到單片機,單片機寫入wifi緩沖區,wifi通過HTTP透傳數據到我服務器(可以用TCP和IP),服務器獲取mac標識,推送至TAG(家庭ID)或者用戶(Alias)
說到推送,好好吹吹實現原理。
1:pull方式,http長連接或是socket,輪詢間隔設好即可,缺點及時性差
2:push方式,實時性好,方法1,google自帶推送平臺(網太差),方法二,xmpp協議(基于XML)。其實封裝的比較好了,有個開源包叫asmark,其中有XmppConnection這個推送庫,話說好多公司都是用它自己封裝庫,不過開源的demo只管推,沒有延時推送,消息暫存功能,方式3,用三方的
算法:是2個有序數組合并問題,用2個指針每次比較能夠O(n)解決問題,算法pass
LruCache:先裝裝B,說一下我寫的和google V4包有什么不同,主要是沒有trimToSize方法,沒有sizeof()計算內存耗費大小,我主要是重寫LinkedHashMap,講了下LinkHashMap源碼,其實我也是看別人寫的源碼解析,(嘿嘿,畢竟年輕,多向別人學習)
結語
- 現在隨著短視頻,抖音,快手的流行NDK模塊開發也顯得越發重要,需要這塊人才的企業也越來越多,隨之學習這塊的人也變多了,音視頻的開發,往往是比較難的,而這個比較難的技術就是NDK里面的技術。
- 音視頻/高清大圖片/人工智能/直播/抖音等等這年與用戶最緊密,與我們生活最相關的技術一直都在尋找最終的技術落地平臺,以前是windows系統,而現在則是移動系統了,移動系統中又是以Android占比絕大部分為前提,所以AndroidNDK技術已經是我們必備技能了。
- 要學習好NDK,其中的關于C/C++,jni,Linux基礎都是需要學習的,除此之外,音視頻的編解碼技術,流媒體協議,ffmpeg這些都是音視頻開發必備技能,而且
- OpenCV/OpenGl/這些又是圖像處理必備知識,下面這些我都是當年自己搜集的資料和做的一些圖,因為當年我就感覺視頻這塊會是一個大的趨勢。所以提前做了一些準備。現在拿出來分享給大家。
有需要的小伙伴可以私信我免費分享給你或者點擊下面鏈接自行領取
Android學習PDF+架構視頻+面試文檔+源碼筆記
片轉存中…(img-IGkCdPSD-1620895705725)]