利益相關,吃這碗飯的安卓開發來答一波,
首先標題這個“Android行業”很迷惑,安卓只是個崗位罷了,談不上行業,
安卓崗位的細分
安卓程式員有很多的小分支,雖然都叫安卓,但這些分支之間干的是不同的事情,分支和分支之間甚至很難互相轉換,你可以當成是不同的崗位,
那么有哪些分支呢?
安卓原生APP程式員:就是最簡單好上手的那種,爛大街的那種,四大組件了解一下,訊息機制了解一下,界面繪制了解一下,成了,可以進外包公司流水線生產APP了,
這類程式員是門檻最低的,做的事情大多是流水線業務邏輯,技術很難隨著時間自然提升,工資上不去,還會被跨平臺框架擠占生存空間,是安卓細分崗位里最卷的,原生安卓APP什么牛鬼蛇神都想做,無論大小公司都有這個崗位,屬于僧多粥也多,
安卓系統工程師:就是開發MIUI啊,EMUI啊,Flyme啊,這些廠商ROM的程式員,他們需要熟悉framework層,但實際作業內容也只是擰螺絲的,工資能比上面的APP程式員高個30%-50%左右,但是門檻相對較高,畢竟自己做系統的不說都是大廠,那體量也小不了,
安卓軟體架構師:架構這個東西聽起來好像很牛逼,我沒見過活的架構師,但是我設計過軟體架構,架構師給我的感覺就是負責造輪子的,給軟體搭建好整體的骨架,給下面擰螺絲的人提供好用的工具和封裝類,大大提高擰螺絲的效率,
架構師的門檻比上面的系統工程師門檻更高,工資兩個W起都是常態,而且這個崗位屬于不會經常變動的,一旦變動必是跳槽,工資蹭蹭蹭就上去了,
物聯網安卓工程師:和物聯網打交道的安卓,開發內容一般和什么串口啊,協議啊這些東西相關,代碼一般跑在工控機這種東西上,系統一般是AOSP,有時候還要去改系統原始碼,可以視為完全是一個嶄新的領域,和安卓本身的關系不是很大,主要是因為安卓的跨平臺特性讓人們選擇它來做物聯網,但實際上安卓做起物聯網來問題也蠻多的,
大多數安卓程式員不會選擇這條路,導致這個崗位招人很難,招到的人基本都是安卓APP程式員轉過來的,而且崗位工資比較隨意,一般看公司自己對這個崗位的理解,不像前面那仨有個基本盤對比,而且有的HR根本都不知道這么個崗位,畢竟很少聽說,
安卓要涼了嗎?
針對上面這幾個細分崗位我們來說說安卓會不會涼,
首先顯而易見的是系統工程師和架構師基本是鐵飯碗,只要安卓的生態沒死,只要廠商ROM還存在一天,這個崗位肯定就有飯吃,
物聯網安卓程式員也比較穩,因為開發物聯網專案,安卓就是最優解,有人會說“Linux也可以啊”,當然可以,但是Linux程式員門檻遠高于安卓程式員,而且會寫C的要的工資都不會低,再加上Linux的發行版細分簡直是災難級,綜合這些因素,大部分公司最后還是會選安卓,
最危險的其實是安卓原生APP程式員,也沒有到要涼了的地步,只是粥沒以前多了,僧卻還是多,有很多人沒有進入這個行業之前根本不知道還有H5,uniapp,flutter這些跨平臺APP,以為跑在安卓手機上的全是安卓APP,
現在原生安卓APP的生存空間被uni和H5擠占了很多,這些跨平臺框架可以實作一份代碼跑兩端甚至三端四端,能大幅減少人力成本,資本家的最愛,就算uni和H5性能不夠了或者SDK不支持這倆平臺做不到,沒關系還有flutter呢,直接塞原生代碼進去,還有谷歌背書,
所以說現在最涼的其實是門檻最低的安卓原生APP工程師,對其他崗位影響不大,
那iOS怎么沒涼?
很容易想到跨平臺不止影響安卓還會影響iOS,那么為什么iOS沒有出現要涼了的論調呢?
很簡單,因為幸存者偏差
iOS程式員的作業很純粹,就是寫APP,沒有其他雜七雜八的細分,而且iOS程式員本來就屬于僧少肉多的情況,競爭對手少,起步價還高,天然壓安卓一頭,
iOS開發必備MacOS,大部分iOS開發都是用白蘋果的,不得不承認iOS開發家底普遍比安卓大,就算iOS卷起來了,大規模失業找不到作業行業工資跳水,也不會到處怨聲載道,人家家底大啊,不就失個業多大的事嘛,換個崗位繼續干就是了,
(只是對大環境的概述,肯定不是所有人都符合這個描述,也有iOS開發是省吃儉用才有設備能做這個的,此處并不想一桿子打翻一船人,此處探討的是大環境,大環境,大環境,請不要對號入座,)
安卓呢?基層寫APP的安卓程式員,本來就沒幾個子兒的家底,工資拿得還少,被uni卷得飯都沒得吃了,這不得口誅筆伐討伐跨平臺,于是你就會聽見很多說“安卓要涼了,作業不好找,卷得太厲害,現在都不要安卓了,”這樣的論調,因為本來僧多粥多的市場環境,被跨平臺攪和以后,變成了僧多粥少,大量基層安卓程式員沒了作業也找不到新的作業,他們甚至不知道還有其他門檻更高的安卓崗位的存在,或者是覺得那些崗位離自己太遙遠,于是就覺得安卓要涼了,
技術方向的選擇
以下的Android技術方向以及其包含的知識點,都整理了一份筆記,有需要的可以找我拿:
獲取地址:Android技術交流
架構師筑基必備技能
目前Android APP開發主流語言就是Java語言,Java語言最大的特性就是提高了軟體的互動可能性,可以說安卓手機幾乎所有應用程式都是利用Java語言來進行撰寫的,
JAVA知識要點:
1、 Java序列化、泛型與反射
2、虛擬機底層原理
3、Android記憶體原理
4、 Java高級并發原理詳解
5、 編譯時技術掌握與實戰
6、JDK高級動態代理
7、高級資料結構與演算法
8、 Java IO操作
,,,,

Android R FrameWork原始碼與UI
在Android中,Framework泛指系統架構層,Framework的中文意思是“框架”,在軟體開發中通常指開發框架,在一個系統中處于內核層之上,為頂層應用提供介面,被設計用來幫助開發者快速開發頂層應用,而不必關心系統內核運行機制,通常Framework都會隱藏main函式等應用程式必須的組件,開發人員只需把精力放在功能代碼的實作上,說簡單點,Framework具體的作業也就是為android應用開發的開發人員提供了一系列的服務和API的介面,
UI其實并不是單純指用戶看到的效果,因為在Android開發中,每個控制元件背后都有一套深層次的體系在支撐,自然而然,會UI不單純指的是會自定義控制元件,我們還應該知道自定義控制元件背后的執行流程,包括從Activity的創建,XML的決議,到每個控制元件的測量、布局、繪制,當然在中間還夾雜著比如影片、事件分發機制、嵌套滑動機制等知識點,還有谷歌提供的一些UI框架也使我們要掌握的物件,比如Jetpack組件庫、Material Design等,
知識要點:
1、 FrameWork原始碼決議(SDK 30)
2、Android常用組件深入決議
3、JetPack全家桶
4、Android R新特性決議
,,,,,

大廠內部APP調優方案
性能優化是一個專案必須要經歷的程序,你的應用好與壞都是在用戶使用的程序中反映出來的,如果性能優化沒有做好,對于你的應用來說影響是非常大的,尤其是現在的Android市場競爭非常激烈,如果你的應用體驗沒有競品的好,那么用戶流失是必然的,
性能優化不是一件簡單的事情,每個應用的性能好與壞無法由一個人來決定,因為性能優化的維度有太多了,從我們專案的整體架構,到我們代碼的每一個細節,再到應用使用環境的測驗,只有步步為營,才能做好一個專案的優化,大部分開發者把性能優化指向與不閃退就行,但是實際上性能優化包含了很多方面,比如從簡單的啟動優化、 UI優化、 卡頓優化、 崩潰優化、 安全性優化,到深層次的弱網優化、 大圖加載優化、 儲存優化、 高效傳輸優化、 極限瘦身優化,再到實際開發程序中的OOM問題原理決議、 ANR問題決議、 Crash監控方案,要想把這些優化流程做好,我們不僅從專案架構、代碼規范等方面入手,還用學會利用第三方的檢測工具來檢測專案性能,最主要是,我們需要一套完整的性能優化方案,這正是我們所缺少的,所以我們必須要把缺少的補上, 打造一套真正的完整的性能優化體系,把性能優化流程化,常態化,
1、 APP基礎優化
2、APP深度優化
3、開發焦點問題優化
4、編程效率優化
5、專案實戰
抖音在APK包大小資源優化的實踐
優酷回應式布局技術全決議
網路優化
手機淘寶雙十一性能優化專案揭秘
高德APP全鏈路原始碼依賴分析
徹底干掉OOM的實戰經驗分享
微信Android終端記憶體優化實踐

對標騰訊T3.3架構師
Android框架體系架構(高級UI+FrameWork原始碼) 這塊知識是現今使用者最多的,我們稱之Android2013~2016年的技術,
Android開發者也往往因為網上Copy代碼習慣了而導致對這塊經常“使用”的代碼熟悉而又陌生:熟悉的是幾乎天天在和它們打交道, 天天在復制這些代碼 ;陌生的是雖然天天和這些代碼打交道,但是并沒有深入研究過這些代碼的原理,代碼深處的內涵,
本篇知識要點:
1、架構師設計思想篇
2、 手淘全套架構設計與實作
3、 開源框架
4、OKHttp網路框架
5、一線大廠核心框架剖析與實作

NDK模塊開發(音視頻系列)
NDK(Native Development Kit縮寫)一種基于原生程式介面的軟體開發工具包,可以讓您在 Android 應用中利用 C 和 C++ 代碼的工具,通過此工具開發的程式直接在本地運行,而不是虛擬機,
在Android中,NDK是一系列工具的集合,主要用于擴展Android SDK,NDK提供了一系列的工具可以幫助開發者快速的開發C或C++的動態庫,并能自動將so和Java應用一起打包成apk,
本篇知識要點:
1、NDK開發之C/C++入門
2、JNI模塊開發
3、Linux編程
4、底層圖片處理
5、音視頻開發
6、機器學習

Flutter學習進階
2021 年無疑是 Flutter 技術如火如荼發展的一年,
每一個移動開發者都在為 Flutter 帶來的“快速開發、富有表現力和靈活的 UI、原生性能”的特色和理念而癡狂,從超級 App 到獨立應用,從純 Flutter 到混合堆疊,開發者們在不同的場景下樂此不疲的探索和應用著 Flutter 技術,也在面臨著各種各樣不同的挑戰,
本篇知識要點:
1、Flutter跨平臺開發概述
2、Windows中Flutter開發環境搭建
3、撰寫你的第一個Flutter APP
4、Flutter Dart語言系統入門
…

微信小程式開發
微信小程式作為現在比較火的編程開發應用場景之一,深受市場的青睞,這讓不少開發者眼饞不已,但是對于初學者來說,就完全摸不著頭腦了,不知道微信小程式開發制作需要學習那些知識,有需要的朋友可以參考本篇,
本篇知識要點:
1、小程式概述及入門
2、小程式UI開發
3、API操作
4、購物商場專案實戰

獲取地址:【Android技術交流】
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/376978.html
標籤:其他
上一篇:奧賽一本通1028:字符菱形
下一篇:程式員必收藏的幾個網站
