不會寫程式碼,如何從零學習Android開發??

由於近幾年來網際網路的飛速發展,安卓和iOS平臺的大量普及推廣,移動開發在當前是非常熱門的一個方向。有不少同學問如何學習安卓,要學些什麼,難不難學。現在根據我的學習體驗,做個大概的總結。

方法/步驟

安卓開發首先最好有Java基礎,沒學過可以先簡單的去學習一下。推薦兩本書《Head First Java》和《Java程式設計思想》(英文名《Thinking in Java》)。Head First系列的書,特點是簡單好懂,適合入門(最好有其他語言程式設計的基礎),但講解不是很深入,對於理解力夠強的人,看起來比較費時間。而後者是Java語言公認的權威經典書籍,如果想全面的學習Java,可以看後面這本書,但是難度偏大,尤其是對於沒有學習過面向物件程式語言的人來說。

安卓開發本身的技術知識,無非就是各種封裝好的API介面函式(API=Application Programming Interface 應用程式程式設計介面),你只要按照它的規則去呼叫就行了。安卓的介面有官方給出的完整說明文件,安裝了安卓開發包後,也有自帶docs資料夾,裡面就是說明文件。對於英文水平欠缺的人可能稍微有點難度,另外,由於谷歌訪問不了,網頁版的說明文件有些可能會打不開。如果你不想自己看官方英文文件,你可以直接買本安卓開發的書,或者在網上找安卓學習資料。這些資料也是別人根據官方文件和自己學習經驗總結出來的。有時候如果需要用到一些別人很少用到的東西,或者網上說的比較含糊,這時官方文件是最權威、準確的參考資料。

首先是平面設計、互動設計、使用者體驗。移動應用作為大眾型產品,使用者體驗相當重要。如果有過個同類產品,功能接近,使用者肯定更喜歡使用者體驗更好的產品。使用者介面需要用到設計方面的知識。當然在大部分公司,一般會有專門的互動設計相關職位,所以對於應用開發者來說,設計方面不需要掌握的太深入,做一點簡單瞭解當然是沒錯的。

然後上面已經說了很多軟體工程方面的問題,資料結構、設計模式、作業系統、計算機網路等等,不再重複。

安卓NDK環境和JNI開發。安卓基於Linux作業系統,主要由Java程式設計,但是有些時候需要用到C++,例如核心程式碼需要保密,而Java保密性有所欠缺;有些程式只有C++環境才能實現;要用到一些高效能的演算法等的支援,而Java執行效率偏低。這是我們可以使用Java的JNI,呼叫C++開發的程式庫完成功能。C++的開發基本上就和在Linux上程式設計差不多,區別在於安卓系統中有一定的許可權限制。而安卓NDK就是官方給出的、用於快速開發安卓JNI程式的開發環境。

安卓系統有個很大的特點是開源免費,因此我們很容易就能獲取安卓系統的原始碼進行學習,瞭解安卓系統的設計。瞭解安卓系統設計,後來我們就可以從事偏底層的安卓開發,系統訂製,乃至安卓驅動開發、作業系統開發方面的工作。

這裡順便一提,安卓應用開發相比iOS的一個難點來自安卓系統碎片化問題。安卓系統是開源免費的,這是一大優勢,也因此對很多國產和國外手機制造商帶來了很大的好處(如果沒有安卓,很多手機廠商恐怕都深陷危機之中了,或許移動網際網路也不會發展的這麼快。不知道現在是不是iOS要稱霸天下,或者WP大受歡迎,又或者塞班還會屹立不倒)。但是安卓的這種特點,導致同一款安卓應用至少要同時相容各種主流手機型號,各種配置,各種螢幕尺寸,各種系統環境。而這也是迄今為止安卓開發者心中永遠的痛(╯﹏╰)。

最後,給正在學或者打算學安卓的同學一些建議:

1. 如果你是非科班畢業想要轉行程式設計,一定要有信心與動力,我能,你一樣能;

2. 如果你接觸過一些資料結構、程式語言之類的,想要學習程式設計,你更應該有信心,你比那些非科班的人已經多了一些基礎,你要做的只是堅定信念,堅持走下去;

3. 如果你準備或已經在做App開發的人員,你要做的就是做好你當下在做的事,相信你的付出一定能有所收穫。

4. 如果你堅持不下來,那麼直接上網找一些線上app開發平臺,這裡推薦你應用之星平臺,無需編碼技術,人人都能進行Android開發。

相關問題答案