主頁 > 移動端開發 > 渣渣二本的辛酸面試之路:從深圳外包到杭州螞蟻金服,4年小Android的爬坑歷程

渣渣二本的辛酸面試之路:從深圳外包到杭州螞蟻金服,4年小Android的爬坑歷程

2021-02-03 11:11:39 移動端開發

寫在開頭

筆者16年于長沙一個普通二本,畢業后去了滿地都是機會的深圳,第一份作業是一家外包公司,主要業務是電商和電子支付資訊安全方面的,一年后跳槽到華潤旗下一個子公司做金融,至今已作業4年,大家都知道,對于跟我一樣沒有名校背景,也沒有大廠出身的程式員來說,面試唯一的加分項就只有某一方面的技術深度了,所以我也建議各位小伙伴也跟我一樣,選擇一個自己感興趣的,或者比較自信的方向,不斷的鉆研深入,

眾所周知,2020年的冬天非常煎熬,疫情肆虐,大批的互聯網公司都在裁員甚至倒閉,年后的金三銀四跳槽季競爭愈發激烈,崗位需求急劇減少,求職者一面難求,能找到心儀offer的人就更少了,所以我并沒有在疫情的風波中著急去跳槽找作業,而是一邊觀望,一邊收集面試素材和面試真題,沉淀自己,提高自己的核心競爭力,

在剛過去的金九銀十跳槽季,國內疫情已基本 穩定,經濟復蘇后,面試壓力也就不那么大了,我開始投簡歷,我投遞簡歷的順序是按小公司—>大公司的套路來的,深圳的小公司非常多,中大型公司比較少,因此,在這一個多月的面試歷程中,我估算了一下,大概面了6家小公司,2家中型公司和1家大公司,一般我去面比較大的公司之前,我都會先面一兩家小公司預熱一下,

以下是面試中被問到的一些問題

基礎:

1.描述一下Activity 生命周期?
2.A Activity 打開 B Activity 時都有哪些生命周期回呼?
3.Activity的啟動模式分別說一下
4.如何保存Activity的狀態或者(Activiy 重啟怎么保存資料?)
5.橫豎屏切換時Activity的生命周期
6.onStart,onStop和onResume,onPause的區別?
7.橫豎屏切換時的生命周期?
8.Android中的Context, Activity,Appliction有什么區別?
9.Context是什么?,一個應用有多少個Context
10.Service是否在main thread中執行, service里面是否能執行耗時的操作?
11.Android應用程式啟動程序
12.如何保證Service不被殺死?
13.onActivityResult 在哪兩個生命周期之間回呼?
14.Fragment的生命周期?
15.Activity和Fragment的區別?
16.簡述下Acitivty任務堆疊和使用方法
17.請描述一下BroadcastReceiver
18.BroadCastReceiver的生命周期
19.什么是Service?Service的生命周期?
20.Service的啟動方式?如果啟動方式交織在一起的話,會出現什么情況?
21.怎么在Service中創建Dialog對話框
22.Service和Thread的區別?
23.ActivityManagerService了解嗎?有什么作用?
24.廣播的兩種注冊方式有什么區別?
25.廣播發送和接收的步驟是什么?原理了解嗎?
26.ContentProvider 是如何實作資料共享的?
27.activity的startActivity和context的startActivity區別
28.為什么要用ContentProvider?它和sql的實作上有什么差別?
29.ListView如何優化?(復用,滑動流暢等)
30.在什么情況下BroadcastReceiver接收不到廣播?

Android 中高級

1.TCP的三次握手和四次揮手,為什么不是兩次握手?為什么揮手多一次呢?
2.如何對Android應用進行性能分析
3.Devik行程,linux行程,執行緒的區別
4.android應用對記憶體是如何限制的?我們應該如何合理使用記憶體?
5.數字簽名的原理
6.Android 原始碼中常見的設計模式以及自己在開發中常用的設計模式
7.Android與 js 是如何互動的
8.網頁中輸入url,到渲染整個界面的整個程序,以及中間用了什么協議?
9.說一下handler機制?
10.子執行緒如何使用 Handler?
11.說一下你對Handler中ThreadLocal的理解?
12.主執行緒的 Looper 什么時候創建的?ActivityThread 的 main 什么時候呼叫?
13.Handler中有Loop死回圈,為什么沒有阻塞主執行緒,原理是什么
14.如何優化自定義View
15.如何解決View的事件沖突?舉個開發中遇到的例子?
16.網路請求快取處理,okhttp如何處理網路快取的?
17.WebSocket與socket的區別?
18.handler postDelay這個延遲是怎么實作的?
19.hashcode()和 equals()的作用、區別、聯系?
20.Handler、Looper、MessageQueue、Thread關系?
21.Hashmap如何解決散列碰撞(必問)?
22.Hashmap底層為什么是執行緒不安全的?
23.RecyclerView的ItemView層級過深怎么優化?
24.怎么設計Android執行緒間通信?
25.Bitmap JPG區別 影像處理:JPG、PNG及BMP的區別?
26.廣播(全域 本地區別)
27.onSaveInstanceState onRestoreInstanceState區別,呼叫時機
28.Serializable與Parcable的區別?
29.是否了解SurfaceView,它是什么?他的繼承方式是什么?他與View的區別(從原始碼角度,如加載,繪制等),
30.說下冷啟動與熱啟動是什么,區別,如何優化,使用場景等,

面試題集和答案在文末

下面我來結合我的面試經歷來談談不同公司級別的面試難度,

小公司(0-200人)

一般只要你收到這型別公司的面試邀請,只要你能把自己做過的專案架構專案重難點說清楚,還有一些Android基礎知識稍微扎實一點,然后你稍微準備一兩個深一點的技術點,什么GC機制、基本的熱修復原理說個10分鐘,offer妥妥的,個別公司可能會考一些簡單的演算法題和智力題,比如冒泡、查找等等,在深圳這型別的公司三年安卓的價位一般在12-15這個區間,個別有錢的可能上限可以到18,一般都是15左右,至于面試題太常規,這里我就不多說了,想要看面試題和詳細答案的可以直接看總結部分,

中型公司(200-1000人)

這類公司我面的其實也不是很多,深圳面試那家BL,做外匯金融的(ps:金融業務相關的公司都比較有錢,如果面試程序中面試官表現出對你有興趣,聊薪資的時候你就可以大膽要)我去面試的時候,公司應該是在擴招階段,面試的人很多,問的問題比較廣泛,Java、Android、演算法、框架都有涉及到,雖然問的都比較基礎,但是我回答的都會比他問的更深入一點,也許是對我比較有好感,聊了半個多小時后,他叫我稍等一下,然后去叫來了他們的Team Leader,然后問了一些事件分發和繪制流程的細節問題,還問了一些binder的原理性問題,我…基本上能答出來,然后leader就直接問我,期望薪資是多少(一般技術面試官直接問你這個問題了,也就代表這份offer已經穩了)我說:22K,leader笑著說了句:好,說下周會給我答復,

后來也確實收到了答復,但是答復說22k給不了,18k能不能來入職,然后…就沒有然后了,

大型公司(5000人以上)

騰訊

一面之后就沒有音訊了,所以沒有什么發言權…
面試問的跟其他小公司一樣從基礎問起,但面試官會一步一步往深的問,直到你答不出來為止,然后下一個點 ,框架、原理性問題和性能優化方面的作業經驗是比較注重的,也不覺得是自己答的太爛,只能說面試者中優秀的人太多,自己不夠亮眼吧

上海嗶哩嗶哩(B站)

B站一面

1.自我介紹
2.treemap、紅黑樹、完全平衡二叉樹
3.快速排序和插入排序
4.個大致有序的陣列如何排序,最快時間復雜度
5.如何自定義實作一個FlexLayout
6.RecyclerView的回收復用機制
7.如何實作RecyclerView的區域更新
8.說說對泛型的了解,Retrofit中的泛型是怎么決議的
9.說說對binder機制的了解
10.行程的狀態,執行緒的狀態,兩者有區別嗎
11.synchronized鎖住物件的理解
12.Fragment replace生命周期變化
13.TCP和UDP有什么區別? 講講招手揮手程序
14.用過C++開發嗎
15.Dalvik和Hotspot虛擬機了解嗎?有什么區別?

B站二面

1.說自己做過最滿意的專案
2.性能優化你做過哪些作業
3.螢屏適配做過哪些作業
4.遇到過哪些坑(困難點),是怎么解決的
5.如果要你來開發B站的一個頁面,哪一個頁面可以很快入手
6.用過哪些框架?MVVM?Jetpack有入手嗎?
7.用過哪些開源庫
6.熱修復、插件化都用過,遇到過哪些坑?可以講講原理嗎
7.為什么想來B站,看哪種視頻多一點,點贊多還是白嫖多
8.你覺得B站APP有哪些可以優化的地方

面試B站可以說純粹是因為興趣吧,大學時期就一直用B站的APP,學習娛樂都是非常不錯的地方,因為要去杭州面阿里,所以在上海朋友那里玩兩天,順便面阿里之前試試B站預熱一下,一面二面是緊接著面的,邀請我三面的時候,我已經離開上海去了杭州,就沒有后文了,

螞蟻金服

實話實說,螞蟻金服是我內推面試的,之前投過簡歷,但是沒有收到面試,
這次面試難度總的來說中等偏上,面試程序跟騰訊的差不多,也是從基礎往深處問,問到你答不出來為止,還問了一些安全性問題,因為我前幾年的作業也是做金融的,所以相對來說比較輕松些,也正因如此才來了螞蟻金服,其他注重的就是架構技術,設計思想,還有第三方庫的一些掌握使用這些,
技術面試過后,hr會跟你談薪資,眾所周知,阿里的福利待遇是很好的,月薪18k,也算不錯的,

期間也內推面試過百度、華為、位元組、美團等公司,但是百度和華為對學歷都有較高的要求,所以并沒有拿到面試機會,位元組、美團傾向于招5年以上的技術專家,所以也沒有成功,

面試復習筆記:

這份資料我從2020年春招開始,就會將各博客、論壇,網站上等優質的Android開發中高級面試題收集起來,然后全網尋找最優的解答方案,每一道面試題都是百分百的大廠面經真題+最優解答,包知識脈絡 + 諸多細節,節省大家在網上搜索資料的時間來學習,也可以分享給身邊好友一起學習,

由于篇幅原因,下面以截圖展示部分內容,如有需要以下完整學習筆記PDF,可以點贊+評論支持下打工人老弟,點擊這里即可免費自取!

正文總共分為6個部分:

Java 基礎(★★)
Java 高級(★★)
Android 基礎(★★★)
Android 高級(★★★)
Android 專案(★★★)
專案面試常見問題(★★★)

一、Java 基礎(★★)

面向物件思想
多型
例外處理
資料型別
Java 的 IO
集合
Java 多執行緒

Java 高級(★★)

Java 中的反射
Java 中的動態代理
Java 中的設計模式&回識訓制
Java 的類加載器

Android 基礎(★★★)

Android 基本常識
Activity
Service
BroadCastReceiver
ContentProvider&資料庫

Android 中的布局
ListView
JNI & NDK
Android 中的網路訪問
Intent
Fragment

Android 高級(★★★)

Android 性能優化
Android 螢屏適配
AIDL
自定義控制元件
Android 中的事件處理
Android 簽名
Android 中的影片
網路協議
其他

專案面試常見問題(★★★)

  • 開發周期
  • 專案中遇到的難題
  • 專案中最大的識訓
  • 專案是如何上線的
  • 專案是如何盈利的
  • 繪制專案架構圖
  • 專案開發流程
  • 你在專案中的角色
  • 你負責專案中的哪些模塊
  • 講講你負責模塊的具體實作
  • 專案中都用到了哪些第三發框架
  • 有沒有自己寫過框架
  • 業余時間你是如何提高自己(學習)的
  • 有沒有自己的技術 blog
  • 你的職業規劃
  • 為什么離職
  • 為什么選擇我們公司
  • 說說你們專案的亮點和不足
  • 你們的專案是如何保持風格一致的
  • 專案架構是如何搭建的
  • 螢屏適配是如何解決的
  • 都看過哪些原始碼
  • 專案版本是如何升級的
  • 用的什么版本控制工具
  • 你能獨立開發嗎
  • App 跟服務器是如何互動的
  • 需求檔案寫過嗎
  • 介面檔案寫過嗎
  • 云服務器都用過哪些
  • 第三方平臺都用過哪些

簡歷+社招解答+經典HR面試決議

以上是整理總結的Android中高級面試遇到的真題決議,希望對大家有幫助;同時很多人經常也會遇到很多關于簡歷制作,職業困惑、HR經典面試問題回答等有關面試的問題,同樣我也搜集整理了全套簡歷制作、金三銀四社招困惑、HR面試等問題決議,有疑問,可以提供專業的解答,

對于Android開發的朋友來說應該是最全面最完整的面試資料,為了更好地整理每個模塊,我參考了很多網上的優質博文和專案,力求不漏掉每一個知識點,很多朋友靠著這些內容進行復習,拿到了BATJ等大廠的offer,這個資料也已經幫助了很多的安卓開發者,希望也能幫助到你,

由于篇幅原因,如有需要以上完整學習筆記PDF,可以點贊+評論支持下打工人老弟,點擊這里免費自取!

感謝您閱讀這篇文章,如果可以收到您的點贊,那是將使我非常榮幸,希望我們可以成為朋友,一起分享交流Android技術,

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

標籤:其他

上一篇:作業出現瓶頸,學習效率下降?通學這份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