主頁 > 移動端開發 > 八年 Android 開發要20k,大家覺得多還是少嗎?

八年 Android 開發要20k,大家覺得多還是少嗎?

2021-10-28 08:13:38 移動端開發

最近,幫朋友面試了一個八年作業經驗的 Android 開發工程師,面試完我感覺五味雜陳,不知道對方的面試感受如何,這里也不多加揣測了,話不多說,應聘者的大概履歷如下:

基本資訊

姓名:xxx

年齡:32

性別:男

作業年限:8 年

求職意向:Android高級開發工程師

期望薪資:20k

個人描述:本人有 8 年Android實際開發經驗,先后待過 5 家公司,負責過各方面 Android 端專案,涉及電商、iot、直播、社交等領域,有獨立解決問題的能力,遇到問題盡量是一個人去解決的,具有較強的學習能力,經常關注和了解新技術,擁有良好的團隊協作能力和執行能力,吃苦耐勞,能夠保證專案進度的平穩進行和快速迭代,

技術專長

- 熟練掌握 Java,熟悉 Java 虛擬機原理
- 掌握常見的設計模式和資料結構演算法
- 掌握Android基礎(四大組件、五大布局、多執行緒等)
- 熟悉Android主流框架(Glide、Retrofit、GreenDao、Logger、Gson等)
- 熟練掌握Android中的 MVP、MVVM 等架構
- 熟悉第三方登錄、支付、分享等功能開發
- ......

作業經歷

- xxx軟體公司(外包) | 一年 | Android 高級開發
  負責xxx iot核心模塊功能開發,負責xxx部分業務的協同開發,專案性能優化處理等
- xxx軟體公司(外包) | 兩年 | Android 開發組長
  負責多個電商產品的Android端研發,帶領Android團隊從專案搭建到核心功能開發再到專案最終上線,全程都有參與
- xxx軟體公司(外包) | 兩年 | Android 開發
  略...(類似,無亮點)
- xxx科技公司(創業) | 兩年 | Android 開發
  負責公司所有android端app的開發作業
- xxx軟體公司(外包) | 一年 | Android 開發
  負責公司Android應用開發作業

專案經驗

- xxx商城專案
  負責個人中心、訂單、退換貨和物流資訊等模塊的開發;
  訊息推送功能的實作;
  專案的性能優化和打包;
- 其他類似,此處略...

看到這里,你有什么想說的嗎?期望薪資20k,你覺得他要多了還是要少了呢?

從作業經歷來看,并不是說外包公司不好,只是覺得作為技術人員不能只滿足于業務代碼的堆疊,雖然對各種業務了然于胸,對職業發展來說也是種寶貴財富,但更重要的不應該是自身的技術能力嗎?這才是核心競爭力!我們經常會被問到的一個問題:你覺得你的專案有哪些亮點,可以選取一兩個來說一下嗎?如果每天純粹做業務開發,各種 CV 大法而不去思考技術的迭代創新或者可維護性,那么三年和八年的作業經驗有什么本質區別嗎?我看到最多的借口就是:平時公司任務多,太忙了,沒時間去學習,難道是真的沒時間嗎?還是說每天回去沉浸在游戲、短視頻等“紙醉金迷”中無法自拔呢?時間這東西,擠擠還是有的,哪怕是利用每天上下班路上的時間去看一篇技術文章,這對于我們個人來說,也是一種識訓,如果真的沒時間,那么你有想過跳出這個舒適圈嗎?

你可能會說:簡歷并不能代表一切,有可能他是剛剛準備,還沒有來得及完善,好的👌,雖然幾率很低,但的確也會發生這種情況,那么我們來看看面試的大概程序吧,

PS: 👨🏻?💻表示面試官;🙋?♂?表示應聘者,

👨🏻?💻:先來做個簡單的自我介紹吧!

🙋?♂?:簡歷中的內容敘述了一遍,此處略…

👨🏻?💻:為什么想來上海發展?

🙋?♂?:安逸太久,想改變自己,

👨🏻?💻:看你之前開發了這么多專案,有哪個讓你識訓最大?能不能詳細介紹一下你在專案里擔任的角色以及識訓?

🙋?♂?:讓我印象最深刻的應該是xxx商城專案,因為之前一般都是我獨立去完成整個app的專案開發,這專案里,我主要負責一些核心功能開發,如訂單和個人中心,通過這專案,讓我個人在團隊協作方面有了進一步成長,另外技術框架的封裝和使用方面也得到了進一步提升,

👨🏻?💻:說到訂單功能,你可以說說訂單超時的處理思路嗎?如果存在多個取消的訂單,你會怎么處理?

🙋?♂?:只要給每個超時的訂單設定一個定時器,時間到了之后就改變訂單狀態,并重繪串列就可以了,

👨🏻?💻:除了給串列中的每個訂單設定一個定時器,還有其他實作思路嗎?

🙋?♂?:暫時想不到了…

👨🏻?💻:那么你可以說說這個專案的技術堆疊組成是什么樣子的嗎?

🙋?♂?:大概是 MVP+Retrofit+Glide+Gson+RxJava+ButterKnife 這種,當然還有自定義View、事件分發機制、影片和異步任務使用等,

👨🏻?💻:你可以說一下 Android 中異步任務的實作方式有哪些嗎?

🙋?♂?:一般是通過 Handler+Thread的形式,也可以使用Runnable,另外還提供了AsyncTask來實作,其他的就記不得了,

👨🏻?💻:說到AsyncTask,你有了解過它的原始碼嗎?它的實作原理是怎樣的?

🙋?♂?:這個不太清楚,沒有看過它的原始碼,但我用過它,知道它里面常見的幾個方法,doInBackground用來處理耗時操作,處于異步執行緒,其他方法在UI執行緒執行,

👨🏻?💻:有聽過 HandlerThread 和 IntentService 嗎?

🙋?♂?:額…好像沒有聽過

👨🏻?💻:那好吧,你可以說一下事件分發機制嗎?

🙋?♂?:當點擊的時候,會先呼叫頂級 ViewGroup 的 dispatchTouchEvent,如果頂級的 ViewGroup 通過 onInterceptTouchEvent 攔截了此事件,則此事件序列由頂級 ViewGroup 處理,如果頂級 ViewGroup 設定setOnTouchListener,則會回呼介面中的 onTouch,此時頂級的 ViewGroup 中的 onTouchEvent 不再回呼,如果不設定 setOnTouchListener 則 onTouchEvent 會回呼,如果頂級 ViewGroup 設定 setOnClickListener,則會回呼介面中的 onClick 方法,如果頂級 ViewGroup 不攔截事件,事件就會向下傳遞給他的子 View,然后子View(ViewGroup)就會呼叫它的dispatchTouchEvent方法,

👨🏻?💻:(終于能接得上話了)嗯,那么你專案里有處理過滑動沖突的情況嗎?如何處理的?

🙋?♂?:有處理過 ListView 和 ScrollView 之間的滑動沖突問題,當時應該是通過重寫外層ScrollView的onInterceptTouchEvent方法來根據一些特定邏輯判斷是否需要攔截,

👨🏻?💻:有了解過哪些第三方框架的原始碼嗎?

🙋?♂?:額,這個沒有看過原始碼,只是簡單知道Retrofit對Okhttp進行了簡單封裝,Glide用了三級快取,

👨🏻?💻:你知道Activity的啟動流程是怎樣的嗎?

🙋?♂?:點擊桌面 App 圖示,Launcher 行程采用 Binder IPC(具體為ActivityManager.getService 獲取 AMS 實體) 向 system_server 的 AMS 發起 startActivity 請求,system_server 行程收到請求后,向 Zygote 行程發送創建行程的請求;Zygote 行程范訓出新的子行程,即 App 行程,App 行程通過 Binder IPC 向 system_server 行程的 AMS 發起 attachApplication 請求,system_server 行程的 AMS 在收到 attachApplication 請求后,做一系列操作后,通知 ApplicationThread bindApplication,然后發送 H.BIND_APPLICATION 訊息,主執行緒收到 H.BIND_APPLICATION 訊息,呼叫 handleBindApplication 處理后做一系列的初始化操作,初始化 Application 等,system_server 行程的 AMS 在 bindApplication 后,會呼叫 ActivityStackSupervisor.attachApplicationLocked,之后經過一系列操作,在 realStartActivityLocked 方法通過 Binder IPC 向 App 行程發送 scheduleLaunchActivity 請求;App行程的 binder 執行緒(ApplicationThread)在收到請求后,通過 handler 向主執行緒發送 LAUNCH_ACTIVITY 訊息,主執行緒收到 message 后經過 handleLaunchActivity,performLaunchActivity 方法,然后通過反射機制創建目標 Activity,

👨🏻?💻:嗯好,那么你可以說一下Binder機制嗎?

🙋?♂?:這個我了解的比較少,只是知道它是C/S結構,是跨行程通信的方式之一,

👨🏻?💻:好的,那我們來聊點別的…

🙋?♂?:…

👨🏻?💻:…

🙋?♂?:…


大概面試程序就是這樣,后面還問了他一些 Java 基礎和多執行緒,掌握情況不是很好,期間還問了他 synchronized 和 volatile 的區別有哪些,他只回答了三個字:不知道,八年開發,按理來說應該肯定遠遠不止這個水平,可結果也并不顯得差強人意,

另外,從面試者個人專案經驗來看,雖然接手過很多專案,而且業務種類也很多,但是并沒有吃透其中某一個業務,比如,同樣是做電商專案,你有將外面同類知名產品拿來與自己開發的專案進行比較嗎?這些產品經歷了長時間的市場和用戶驗證,一定有很多地方是值得學習和思考借鑒的,假如這個功能讓你去實作,你有什么思路呢?如何進一步去優化呢?其實我們周圍有很多東西值得我們思考和學習,但很多時候我們可能選擇了無視,

現在,你覺得給他開多少薪資合適呢?所幸,他當前也已經意識到自己安逸太久,需要突破一下自己了,雖然有些遲,但只要能夠努力和自律,相信成長空間也是非常大的,畢竟成事在人,謀事在天,

通過這件事聯想到自己最近的裸辭,雖然很多人勸過我不要這么果斷,先看看形勢,但所幸我做出的應該是正確的決定,如果想要在技術領域站穩腳跟,除了不斷汲取新知識,拓寬自己的知識面,更要緊的是挖掘自己的技術深度,這樣才不會很容易就被后來人所取代,人不能在一個地方安逸太久,否則,這份安逸會成為束縛自己的泥沼,想掙脫也并非容易了,趁我們還年輕,如果我們心中已作出決定,而苦于時機未成熟、無法實施的時候,倒不如斬斷自己的后路,破釜沉舟,背水一戰,未嘗不可,又或者,待十年之后,你鼓起勇氣想破釜沉舟,但是,前方還有多少彼岸任你停靠呢?

本文可能比較枯燥無味,但也點明了一些我們技術人員的現狀和挑戰 ,找作業不難,難的是找到真正符合我們職業發展規劃的那條路,有捷徑可以走嗎?有!最大的捷徑就是早日看清自己的現狀,跳出舒適圈,去追求自己真正想要的,并為之奮斗!

最后我整理一些Android 相關的核心知識學習檔案,想要學習參考的可以去點擊下方小卡片進行訪問查閱,


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

標籤:其他

上一篇:uni-app 自定義webview大小

下一篇:詳解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