【廣告】
作為一個Android應(yīng)用開發(fā)人員,要學(xué)習(xí)哪些知識呢?
1.Android基礎(chǔ)知識
有了以上的鋪墊,再來看Android,是不是覺得輕松了很多呢?至于基礎(chǔ)知識的學(xué)習(xí)順序,好的方法就是按照Android SDK幫助文檔當(dāng)中的Dev Guide里面的順序。
2.Java基礎(chǔ)
很多朋友一上手就開始學(xué)習(xí)Android,似乎太著急了一些。Android手機(jī)應(yīng)用軟件程序開發(fā)是以Java語言為基礎(chǔ)的,所以沒有扎實(shí)的Java基礎(chǔ)知識,只是機(jī)械的照抄別人的代碼,是沒有任何意義的。那么Java學(xué)到什么程度才算是過關(guān)呢?
3.我個人認(rèn)為至少要掌握以下兩個方面的內(nèi)容:
a)Java基礎(chǔ)語法:這部分內(nèi)容沒有討價還價的余地,必須爛熟于胸。至于具體的學(xué)習(xí)方法,可以看書或者是看視頻,但是關(guān)鍵是要多加練習(xí),無論是書上的練習(xí)還是視頻里面的練習(xí),都需要仔仔細(xì)細(xì)的完成;
b)設(shè)計模式:由于在Android系統(tǒng)的框架層當(dāng)中,使用了大量的設(shè)計模式,如果沒有這個方面的知識,對于Android的理解就會大打折扣。從我國目前的實(shí)際情況來看,大部分的中小企業(yè)尚未為移動互聯(lián)網(wǎng)做好準(zhǔn)備。設(shè)計模式的種類非常之多,一個一個的全部掌握,是不現(xiàn)實(shí)的,必須首先掌握面向?qū)ο蟮幕A(chǔ)設(shè)計原則,有了這些基礎(chǔ)原則的支持,就可以舉一反三。
4.Linux基礎(chǔ)知識
大家都知道,Android系統(tǒng)的基礎(chǔ)是Linux操作系統(tǒng)。在開發(fā)過程當(dāng)中,我們也需要使用到一些Linux命令。所以說一些Linux的基礎(chǔ)知識是必須的(話說現(xiàn)在的程序員,不懂Linux都不好意思跟人家打招呼)。
5. 服務(wù)器端開發(fā)知識
由于很多Android應(yīng)用程序都需要服務(wù)器端的支持,所以掌握一些服務(wù)器端開發(fā)知識還是非常有必要的。至于選擇哪一種服務(wù)器端知識進(jìn)行學(xué)習(xí),就比較麻煩了,因為技術(shù)的種類實(shí)在是太多了:
a)Java EE:就是上面郵件當(dāng)中所提到的SSH—Struts Spring Hibernate。此外,輕量級、有針對性、HTML和基于ad-hoc的微型app正在上升。這種技術(shù)的優(yōu)點(diǎn)的功能完整、強(qiáng)大,已經(jīng)使用了很多年,而且既然大家已經(jīng)非常熟悉Java了,那么學(xué)習(xí)SSH看起來也順理成章。但是使用這種技術(shù)開發(fā)服務(wù)器端程序,非常麻煩。即使是一些簡單的功能,也可能需要大量的代碼和配置文件來實(shí)現(xiàn);
b)PHP:簡單易學(xué),開發(fā)快速。但是我們需要多學(xué)一種語言,是否得不償失,就要大家自己判斷了;
c).NET:這項技術(shù)的特點(diǎn)和Java EE差不多,但是要想掌握.NET,則需要掌握c#,也是個麻煩的事情;
d)ruby on rails:這是我個人喜歡的服務(wù)器端技術(shù),簡潔,優(yōu)雅,寥寥幾行代碼,就可以實(shí)現(xiàn)很復(fù)雜的功能,但是這需要Ruby語言知識作為基礎(chǔ);至于選擇哪一種技術(shù),就看大家自己的判斷了。
6.網(wǎng)絡(luò)協(xié)議 至少需要學(xué)習(xí)兩種基礎(chǔ)的協(xié)議,HTTP協(xié)議與Socket協(xié)議;
7.數(shù)據(jù)庫基礎(chǔ)知識 這個比較簡單,就是一個增刪改查的數(shù)據(jù)庫操作,可以看一下這本書:《SQL編程練習(xí)與解答》 要成為一個專業(yè)的Android手機(jī)應(yīng)用軟件開發(fā)者,以上的這些知識都必不可少。網(wǎng)絡(luò)協(xié)議至少需要學(xué)習(xí)兩種基礎(chǔ)的協(xié)議,HTTP協(xié)議與Socket協(xié)議。而且Android在不斷的更新?lián)Q代,要跟著Android的腳步就要不斷的學(xué)習(xí)新知識,只要耐心的學(xué)習(xí),一定能夠在Android開發(fā)界獲得巨大成就的。
首先就是開發(fā)理念不同,由于功能和受眾人群不同,使企業(yè)級APP和個人APP之間有著很大的不同,就像鐵塊和棉花一樣。目前,一個成熟的互聯(lián)網(wǎng)產(chǎn)品基本囊括了:移動終端和網(wǎng)頁兩種主要形態(tài)。個人APP主要是為以個人為單位的用戶群體開發(fā)的移動應(yīng)用程序,目的性、功利性很強(qiáng),另一個是維護(hù)自己粉絲的一種途徑,也更好地樹立自己的形象。
企業(yè)級APP在開發(fā)理念是隨著中小企業(yè)、巨頭企業(yè)的迅速成長,更多是為了擴(kuò)大自己的品牌影響力、進(jìn)而讓更多的用戶了解自己而開發(fā)的,但是又有不少企業(yè)更多的是想通過以移動互聯(lián)網(wǎng)為代表的新媒體等途徑拓展市場范圍。眾所周知,APP開發(fā)往往需要數(shù)十天時間才能完成,而此過程中需要雙方多次溝通,服務(wù)就顯得十分重要。此外,企業(yè)級APP重要的一面也是為了讓企業(yè)管理、辦公系統(tǒng)移動化,加快企業(yè)運(yùn)轉(zhuǎn)速度、提高企業(yè)辦公效率,讓員工都能在移動平臺上更好的融入企業(yè)協(xié)作之中。
如果想做一款市場覆蓋面廣的APP,至少需要iOS和Android兩個平臺APP的版本。這些團(tuán)隊人員的工資加各種福利開支、招聘費(fèi)用加上來已經(jīng)超過五萬元了,而且也無法保證招過來開發(fā)人員就是合格的,這需要一定的時間去磨合和挑選。iOS開發(fā)工程師需要使用Object-C/C/C 等復(fù)雜的編程語言,且iOS系統(tǒng)相對封閉,學(xué)習(xí)iOS開發(fā)的成本較高,許多企業(yè)難以招到好的iOS工程師。同時伴隨Android系統(tǒng)的應(yīng)用場景越來越廣泛,市場需求旺盛,Android工程師也并不比iOS好招。再有就是服務(wù)器的開發(fā),業(yè)務(wù)邏輯實(shí)現(xiàn)和接口封裝以及數(shù)據(jù)庫開發(fā)分別需要至少1名工程師,后期維護(hù)還需要運(yùn)維人員的投入,這些人才對于企業(yè)招聘也是一大考驗。
另外,時間成本也比較高,開發(fā)的時間大概需要2-3個月,復(fù)雜一些的需要3-4個月。這幾年我們看到了一些令人驚嘆的可穿戴設(shè)備,像AppleWatchSeries1,GoogleDaydreamView,Pebble2,XiaomiMiBand2,F(xiàn)itbitFlex2等。在Android碎片化如此嚴(yán)重的今天,屏幕分辨率多達(dá)上百種,系統(tǒng)版本橫跨數(shù)十個,屏幕及系統(tǒng)版本的適配給開發(fā)者帶來了極大的困擾,占用了非常多的開發(fā)時間;同時iPhone6和iPhone6 plus以及iOS8.0的出現(xiàn)使得iOS開發(fā)也出現(xiàn)了屏幕以及系統(tǒng)版本適配的問題,整個開發(fā)周期可能會更久。
再有就是APP版本的更新在AppStore也會經(jīng)歷漫長的審核周期。第三方統(tǒng)計報告顯示,有17%的APP版本更新的頻率是每周,48%的APP版本更新的頻率是每月,所以版本的快速迭代是一個成功APP要重視的重要因素之一。
數(shù)據(jù)
成功雖然有也偶然的因素,但大部分都是數(shù)據(jù)說話,一定要做好數(shù)據(jù)的收集統(tǒng)計工作,只有這樣,你才能更加的去完善好產(chǎn)品,才能在漆黑的前進(jìn)道路上不斷為自己點(diǎn)亮前方的燈,也才能越來越得心應(yīng)手。
戰(zhàn)略
創(chuàng)業(yè)忌諱盲目,一款沒有價值的app做來干什么?他可以是一個很好的產(chǎn)業(yè)鏈,盡管是分期實(shí)現(xiàn),但是一定要有相應(yīng)的戰(zhàn)略,每完成一個階段目標(biāo)就繼續(xù)前行。