這個問題讓我想到了當年大四實習的時候,一晃已經(jīng)是很多年。當時我也問單位一個很資深的工程師,軟件開發(fā)的發(fā)展前景如何?這位頭發(fā)花白的資深工程師當年小孩已經(jīng)大學畢業(yè)。他當年對我說的原話:
做軟件這行,就是要不斷學習。我從匯編,C,Basic一直到現(xiàn)在C++,這么多年過來了,一直在學習。還是我老婆好,學中醫(yī)的,一共幾百味藥,早就背的滾瓜爛熟,越老經(jīng)驗越豐富。做軟件開發(fā)就是活到老,學到老。
這位資深工程師談起此事也挺開心的,心態(tài)挺好,在單位也非常受尊重,絕對的技術(shù)頂梁柱。
言歸正傳,回答題主的問題。先看一下Android原生開發(fā)會用到哪些技術(shù),未來前景如何。
編程語言
基于Java,沒什么可擔憂的。Java這艘大船,企業(yè)級的應(yīng)用很多都跑在上面。如果有危機感,可以對服務(wù)器端Java框架多了解一下。
Android應(yīng)用開發(fā)基礎(chǔ)
包括AVD及傳感模擬器調(diào)試、Android核心組件、Android常用組件、Android高級組件、文件及網(wǎng)絡(luò)訪問、SQLite數(shù)據(jù)庫編程、后臺服務(wù)編程。
網(wǎng)絡(luò)服務(wù)這些知識本就是編程人員必備,不論以后到什么平臺,什么語言,都是必須的。有了這個知識,以后轉(zhuǎn)起來會比較快。
說白了,經(jīng)驗豐富了,新東西學起來就會很快。昨天一個網(wǎng)友在頭條說自己50多了在學Python,而且用的挺好的,很可敬。
SQLite數(shù)據(jù)庫:數(shù)據(jù)庫這也是必須的,訪問,增刪改查差別不會到哪里去。
后臺服務(wù):可以到了解,往高階走的必備。
Android高級應(yīng)用開發(fā)
音頻\視頻\攝像頭、互聯(lián)網(wǎng)應(yīng)用、GPS和位置服務(wù)、Map、2D\3D繪制、傳感器開發(fā)、游戲開發(fā)、電話及SMS服務(wù)、網(wǎng)絡(luò)\Bluetooth\Wi-Fi等。
這里相對就分不同的方向了。未來的客戶端不管還是不是手機,智能設(shè)備如果想要人機交互,必須要有途徑。這個途徑可以通過音頻,視頻,攝像頭。這些技術(shù)未來完全用的上。
互聯(lián)網(wǎng)應(yīng)用更不用說了。
GPS和位置服務(wù),Map:你看現(xiàn)在客戶端的應(yīng)用都是必備,不管哪家小程序,這些API都是必須提供的,也就是把底層的包裝了一下。所以這些知識挺有用的。
2D\3D繪制:比較專業(yè)了,看發(fā)展方向了。
傳感器開發(fā):安卓系統(tǒng)也好,物聯(lián)網(wǎng)系統(tǒng)也罷,傳感器是重頭戲。
后面不一一介紹了,只想說安卓作為一個基于Linux,五臟俱全的系統(tǒng),理清楚了,是很牛的。
Google最近出了Flutter,用來DesignBeatufulApps。
不過不要擔心,底層與硬件交互的API,F(xiàn)lutter不能少。少了開發(fā)人員沒法用。這些API當你把上面的這些基本應(yīng)用和高級應(yīng)用了解了,其實不會差別太大。設(shè)計模式中有一個叫做Wrapper(包裝器),說白了Flutter也好,其他的用來做NativeApp的,都是在使用Wrapper這個設(shè)計模式,把底層跟硬件交流的功能給包裝起來,做成自己的API。
向前看,未來的熱點是什么,Android或者其他智能設(shè)備這種客戶端的系統(tǒng),未來還會有什么樣的發(fā)展,也許是應(yīng)該關(guān)注的。
Android相關(guān)開發(fā),目前已經(jīng)屬于技術(shù)成熟狀態(tài)。Java的后端開發(fā),框架很多,也處于成熟狀態(tài)。新興技術(shù)的AI,未來前途不可限量,目前還遠不如上述成熟,還有很大的空間。未來AI技術(shù)如何用于智能設(shè)備上(Heavy的,AI訓(xùn)練一定還會在服務(wù)端),智能設(shè)備基于Android也好,或者是Google下一代的Fuchsia也好,會有怎樣的新功能,應(yīng)該會是一個方向吧,可以關(guān)注起來。
職業(yè)生涯的發(fā)展路線不少,按每個人的特點和強項方向不一,不展開來講了。
希望上述回答能夠?qū)︻}主有所幫助,歡迎留言/私信交流。