主頁 > 移動端開發 > 茫茫大半年Android工程師求職路,最終得到了滿意的OFFER

茫茫大半年Android工程師求職路,最終得到了滿意的OFFER

2021-09-02 08:31:51 移動端開發

作者:lang

前言

本人從2018年畢業開始就一直從事Android 開發,回頭一看已有三年了,這三年里一直在一家中型互聯網公司作業,薪資水平在同行中還算可以,但自己的一直想進大廠體驗一下,多少也能給自己的履歷添加的色彩,于是在今年6月底就進行了離職,為自己準備了兩個月左右的時間進行備戰后面的面試,最終在8月中旬拿到了滿意的offer,下面就跟大家進行簡單的分享一下我的面試程序,

準備作業

主要是明確自己想要加入的公司,并開始做技術準備,目標公司是BAT,我需要到更大的平臺和更優秀的人做更好的專案,正常來說加入BAT以后可以讓自己的實力和眼界得到提升,并且有一線大廠的光環對以后都是蠻重要的,

有人說去哪里都一樣,去了大廠也是個螺絲釘,我想說我寧愿做航空母艦上的螺絲釘也不愿意做拖拉機上的螺絲釘,其實在求職的程序中一次又一次的失敗曾經讓我放棄BAT了,轉而投向其他我認為有前景的公司,不過最初我真的是非常想去BAT!做夢都想去,

關于技術準備,主要是包含下面幾項:

  • 專案經歷
  • Java基礎
  • 設計模式
  • 演算法
  • 網路相關知識
  • Android基礎
  • Android原始碼
  • Android性能優化
  • 開源庫原始碼

整個技術準備程序與面試程序是交替進行的,一邊面試一邊查缺補漏,如此往復,我當時是每天早上7點起床坐班車去公司,8點半吃完早餐就在工位上學習,一直學到9點半左右,然后10點開始辦公,18時吃完晚餐,19時到20時,如果作業忙的話就辦公,不忙的話就接著學習,后期公司任務變少了,有時候全天都在學習,

在這個程序中我真的是學的越多越覺得自己真是菜啊,一是覺得不知道的東西太多了,即廣度太窄,二是知道的東西掌握的又不深,即深度不夠,

面試進行時

準備了一段時間后我覺得自己準備的差不多了,就在拉勾上&boss上注冊賬號,公開了簡歷,前期我沒有主動投遞,有哪家讓我去面試,我才去,后期就主動開始投簡歷了,這里不得不吐槽一下拉鉤的star法則,以及萬年不匹配,我面試的公司較多,摘取幾個有代表性的公司拿出來分享下,

藍廠

一面就掛了,主要是以下幾個問題:

  • 事件分發流程
  • View的渲染機制
  • 影片的原理,底層如何給上層信號
  • 編譯打包的程序
  • Android有多個資源檔案夾,應用在不同解析度下是如何查找對應檔案夾下的資源的,描述整個程序
  • ANR的原理(回答主執行緒5秒阻塞是不行的,要讀原始碼)

面試官是做framework的,所以問的東西偏framework,最后他說“雖然你是做應用的,但是不能浮于表面,要深入研究”,我覺得他說的很有道理,

度娘

晚上八點半,在雨中打著傘接到電話,進行電話面試,一面就掛了,

  • Bitmap 使用時候注意什么?
  • Oom 是否可以try catch ?
  • 記憶體泄露如何產生?
  • 配接器模式,裝飾者模式,外觀模式的異同?
  • ANR 如何產生?
  • String buffer 與string builder 的區別?
  • 如何保證執行緒安全?
  • java四中參考
  • Jni 用過么?
  • 多行程場景遇見過么?
  • 關于handler,在任何地方new handler 都是什么執行緒下
  • sqlite升級,增加欄位的陳述句
  • bitmap recycler 相關
  • 強參考置為null,會不會被回收?
  • glide 使用什么快取?
  • Glide 記憶體快取如何控制大小?
  • 如何保證多執行緒讀寫檔案的安全?

面試官聲音略顯慵懶疲憊……我懷疑他是不是面了太多人已經麻木了

某海外直播公司

一面:

  • 執行緒和行程的區別?
  • 為什么要有執行緒,而不是僅僅用行程?
  • 演算法判斷單鏈表成環與否?
  • 如何實作執行緒同步?
  • hashmap資料結構?
  • arraylist 與 linkedlist 異同?
  • object類的equal 和hashcode 方法重寫,為什么?
  • hashmap如何put資料(從hashmap原始碼角度講解)?
  • 簡述IPC?
  • fragment之間傳遞資料的方式?
  • 簡述tcp四次揮手?
  • threadlocal原理
  • 記憶體泄漏的可能原因?
  • 用IDE如何分析記憶體泄漏?
  • OOM的可能原因?
  • 執行緒死鎖的4個條件?
  • 差值器&估值器

二面:

  • 簡述訊息機制相關
  • 行程間通信方式?
  • Binder相關?
  • 觸摸事件的分發?
  • 簡述Activity啟動全部程序?
  • okhttp原始碼?
  • RxJava簡介及其原始碼解讀?
  • 性能優化如何分析systrace?
  • 廣播的分類?
  • 點擊事件被攔截,但是相傳到下面的view,如何操作?
  • Glide原始碼?
  • ActicityThread相關?
  • volatile的原理
  • synchronize的原理
  • lock原理

三面:

  • 三道演算法題,要求在一個小時之內做完,
  • 翻轉一個單項鏈表 1->2->3->4->5->null =====> 5->4->3->2->1->null
  • string to integer
  • 合并多個單有序鏈表(假設都是遞增的)

四面

總監面,問了一些java 同步相關的,

HR面

談薪水,最后沒談攏,

由鵝廠與其他公司合資創立的公司

一場筆試加一場面試后掛了,面試官T4級別……,

筆試:

  • Activity生命周期簡述
  • 常見記憶體泄漏情景及避免記憶體泄漏的措施
  • Actvity啟動模式簡述
  • 簡繪觀察者設計模式UML圖
  • 演算法,求公共子序列(或者是子串,記不清了)
  • Java四種參考
  • 自定義view重寫哪幾個方法?
  • http 的session&cookie的區別
  • 簡述作業執行緒更新UI的方法

面試:

  • 應用最多占多少記憶體
  • 滑動卡頓如何解決(不同原因及對應處理方式)
  • 自定義view實戰
  • 多執行緒,多行程 相關
  • Java四種參考的使用

某ding

一面就掛,

  • XX專案你負責什么
  • Sqlite 怎么增加一個欄位
  • XX專案中是怎么創建資料庫的
  • Sqlite 怎么洗掉一個欄位
  • 有什么你覺得自己做得好的地方
  • 為什么用Retrofit(一個開源庫)
  • Retrofit與之前的網路庫有什么優勢
  • XX專案中你們自己定義的執行緒池來管理任務,不使用框架,那么,后來新的專案怎么設計的
  • 你認為Rxjava的執行緒池與你們自己實作任務管理框架有什么區別?
  • 記憶體泄漏的常見場景
  • 怎么發現&分析記憶體泄漏

某條

面了三輪技術加一輪HR,HR事業線不錯,笑得職業化,其他的沒記住,

其他

  • 處理有序陣列為什么比無序陣列更快 參考StackOverflow
  • 熱修復與插件化相關
  • Integer類是不是執行緒安全的,為什么
  • 不使用同步鎖如何實作執行緒安全
  • 面試頭條的時候在線編程:從上到下從左到右輸出二叉樹
  • 針對concurrent包下面的一些類的問題

Android面試再也不是“能答出來Activity生命周期就OK”的時代了,你們看前面的面試題,有些問題牽扯到底層原理,另外光是concurrent包下面的東西就能把你問懵逼了,

總結

我自己面試了一些公司,拿了一些offer,但是還是想去BAT,所以那些offer最終都拒了,好在最終拿了B的offer,算起來前前后后面了8次BAT,屢敗屢戰,內心還是很強大的,結合我的面試經歷與同事們的面試歷程,總結幾點:

  • 有些規模小的公司很注重你是不是全能的,恨不得你什么都會,又給不起錢,福利待遇很不好,各種避稅措施,

  • 馬爸爸的公司很注重專案經驗是否匹配,往死了問專案,專案簡單的話是很吃虧的,鵝廠希望你是聰明的機靈的,度娘希望你基礎好,熱愛技術;

  • 有些獵頭朋友是非常專業的,不僅給你安排面試流程,還給你提供很多有價值的資訊,另外獵頭一般推薦的都是高級職位;

  • 面試真的很看眼緣,很多時候你和面試官一見面,如果你覺得面試官和你氣場不合,那很可能就沒戲了(這話說起來似乎是給自己的失敗找借口,信則有不信則無,各自體會吧),碰見一個面試官,一見面就問我”XX大學是一本么”,答曰”是”,”是985么”,答曰”是”,”是211么”,答曰”是”,真心不想聊下去了,不過我也確實沒有通過面試……,

  • 我認為一面必須表現的很好,因為二面的面試官會參考一面的評價,一旦一面評價一般,第一印象就不好了;

  • 如果你出身很好,學校認可度高,那你會有優勢,請聯想“好學生犯錯與壞學生犯錯時老師的表現“,

  • 基礎很重要,大廠還是很青睞名校計算機專業出身的工程師的(我不是),根正苗紅啊,他們基礎一般都很好,所以半路出家的朋友們,注意補補基礎,基礎好,才能走得遠,

  • 要深入研究,不能浮于表面,多看看原始碼,被嘲笑為 API Player 是很難受的,

  • 要廣泛接觸,不要只看著自己的一畝三分地,多看看流行的庫,技術等,

  • 最好是有blog和gayhub,并寫一些有價值的內容,可以加分,別像我一樣blog又空又low,

寫在最后

在這三年內,我從一個讓leader皺眉的菜雞成長為一個可以hold住作業的菜雞,用了一年半,后面的時間我覺得一直是原地踏步,開始求職前我覺得自己很叼,但事實上并不是,我們更應該注重自身能力的提升,否則離開平臺我們什么都不是,今年移動端不景氣,求職不容易,但翔哥說了:“你只要牛逼,不存在就業危機”,所以還是要做一個U盤型人才……,

分享一些我在面試前期準備時,收集整理的Android 開發相關的學習檔案、面試題、Android 核心筆記等等檔案,好的東西就要拿出來進行分享,才能產生大最大的作用,希望能幫助到大家學習提升,如有需要參考的可以直接去我 CodeChina地址:https://codechina.csdn.net/u012165769/Android-T3 訪問查閱,

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/296911.html

標籤:其他

上一篇:Android 開發小總結

下一篇:kotlin 協程最佳實踐-android官網

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more