零基礎 Android 開發可能嗎?

零基礎自學Android開發,大學挺閑的,以前自學過網頁設計,會簡單的html+css。如果想精通 Android開發 要系統的學習哪些?大概要多長時間。謝大家指點


看了下目前排名第一的答案—— @kubisoft 的答案

然後再看了下高票答案—— @Tikitoo 的答案

確實不能忍啊,兩個人的答案都是 2014 年,還在推薦使用 Eclipse 來學 Android

現在用 Eclipse 寫 Android,很 LOW 有木有,上 Github 搜 Android 輪子,Eclipse 能用的快銷聲匿跡了有木有。

重要的事情說三遍:

不要用 Eclipse 學 Android,不要用 Eclipse 學 Android,不要用 Eclipse 學 Android啦

請用 Android Studio 學 Android,請用 Android Studio 學 Android,請用 Android Studio 學 Android

如果零基礎學 Android,請按照以下步驟開始執行:

  1. 安裝 Android Studio,不會可參考:[Android Studio] Windows 7 下載與安裝
  2. 導入官方的 ApiDemos 並運行到模擬器或真機上,不會可參考:[Android]導入ApiDemos、[Android] 如何真機調試
  3. 再新建一個 Android 項目,對著 ApiDemos 手敲代碼寫項目,不懂的代碼就用筆記本/便簽什麼的記下來,手敲代碼並將新 Project 運行成功後,再對著自己的筆記將不理解的知識點一個個Google,同時把自己的理解寫成文章,推薦看看我們博客 ApiDemos 系列的文章:ApiDemos | 奇蹟空間(北京)科技有限公司
  4. 與此同時,還需要猛補自己的 Java 知識,推薦兩本書:[Head First Java] 深入淺出 Java、[Thinking In Java] Java 編程思想

然後就重複 3、4 步驟學習,建議有一個項目來實踐,如果你沒有項目實踐,可以加入我們的技術學習小組,我們會定期根據組員的學習情況安排進入不同的項目組開發。

而這些,完全免費的!只要你有毅力,忍得了批評(因為我對代碼、技術文章要求很嚴格,如果寫的太爛不用心,怒起來會罵人 :) ),堅持學習半年,基本上就可以自己開始做 App 啦~~

=================================================

忘記樓主還有一個精通 Android 需要多長時間

這個問題太可怕了,我從 2010 年開始做 Android 都沒有碰到敢自稱精通 Android 開發的人(當然,也有一些無知人這麼自稱的,我們就把這些人默默的無視吧。。。)

沒有碰到,沒有碰到,沒有碰到~~~~

Android 2008年才開始傳到國內,我也認識不少從 2008 開始做 Android 的,他們也只是稍微說說:嗯,我可以做 Android App。嗯,這個 UI 應該可以實現的 ……

所以,個人認為精通 Android 至少得 8 年起吧。。。。。。


--------------------------------------------------------------------

好多年前的回答,今天偶然再次看到高票答案,不能忍啊。

題主問的是android開發,為了android開發還得去學Java的伺服器開發,還得去學linux, 還得去學資料庫,還得去在PHP/Ruby on Rails/.Net裡面去選一種?

統統都不要的!資料庫不需要掌握的,那是伺服器端的事情啊。本地不要用資料庫,簡單的配置文件足矣。http連接會用到,但是只要會用而已,返回的json調用api解析一下。

真正android開發的內容不多的,就是一大堆xml layout的配置,界面元素通過R.id什麼的來引用,添加一些事件響應,就入門了;高階一點的弄點動畫特效,調用一些第三方庫,會用http,就是精通啦。

--------------------------------------------------------------------

以下是2012年的原回答。

弄個android手機,裝個eclipse等等的開發套件,我以前用的是aoandroid網站上提供的黃金版,就可以開始了。

然後就買本書,照著做吧。其實關鍵是有沒有自己的創意,自己想實現的app,有的話就很容易,沒有的話會很迷茫。

我的第一個android應用,從決定做android到上架,大概花了10天。不過我有java基礎,不好說。

學而不思則罔,思而不學則殆,要邊看書邊動手實踐,才能做得下去。如果能有目標就更好了。


我是如何自學Android,資料分享

最近知乎上有網友問我怎麼自學Android,其實說實在的,我學的也一塌糊塗,當然在學習過程也積累了一些知識,對於以前沒接觸過Android的朋友,或者剛入門Android 的朋友,這篇文章作為入門,那是再合適不過了,希望對剛入門Android的朋友有幫助,接下來,就不羅嗦啦。

本文主要有以下幾個步驟:

1. Java 基礎;

2. 搭建Android 開發環境;

3. 了解Android 運行原理以及一個工程項目結構;

4. 如何系統學習Android;

5. 推薦一些實用的資源

6. 總結

首先呢?當然要有Java 基礎;

我大學的專業就是Java,但由於沒學好,剛開始學Android 的時候,挺吃力的,後來又去補Java 基礎去了;

因為Android SDK 是基於Java 開發的,使用的語言是Java,如果有了Java 基礎,學Android 就會事半功倍;比如在Android 中要使用到的介面,抽象類,類型轉換,繼承,覆蓋,匿名內部類,多線程,這些都是Java 語言的,如果以前沒有基礎過,學Android 會很鬱悶的;

當然如果你有C++ 基礎,當然也可以基於NDK 開發,可以不使用Java;

對於沒有Java 基礎的朋友,我推薦一些資料:

Mars 的Java4Android:Java4Android.zip_免費高速下載

極客學院推出的Android 專題:Android安卓開發環境搭建

搭建環境

Android 開發IDE選擇,有Eclipse,IntelliJ IDEA,Android Studio(基於IntelliJ IDEA 社區版開發的),Eclipse 和 Android Studio 是免費的;

對於初學者我推薦使用Eclipse,因為Eclipse 成熟,遇到問題,搜索也容易找到答案;以後可以嘗試不同的IDE;

搭建環境的步驟:

  1. Eclipse安裝;
  2. Android SDK安裝(Android 開發工具包);
  3. ADT安裝(Eclipse 的插件,使Eclipse 能夠開發Android);
  4. 創建AVD(在電腦創建一個虛擬手機);

詳細步驟:Android開發之旅:環境搭建及HelloWorld

在這裡會有很多工具,可能剛入門的會比較模糊,可以參考:Android 開發,各種工具

如果最終虛擬的手機屏幕能夠顯示主界面,則表示成功;

了解Android 運行原理,一個工程的項目結構

  • 項目結構推薦慕課網的視頻教程:Android 項目結構介紹

  • Android項目目錄結構介紹

  • Android開發之旅:HelloWorld項目的目錄結構

系統學習Android

有了上面的學習,對Android 也有了初步的認識,接下來可以系統地學習Android 啦,網上資料也很多啦,書籍也很多,視頻也很多,我覺得首先要《官方API Guide》;然後手上準備一本書,可以當做字典,不會可以看看;如果看官方文檔,有難度,看書進度太慢,可以看視頻,跟著視頻學,做一下東西,有什麼不會的問題,可以Google 搜索;

如果說到細的知識點,比如四大組件,UI,多媒體處理,信號連接,數據存儲,我在這裡就不多介紹了;主要介紹了一些學習資料;

官方文檔

  • 官方指南:Introduction to Android | Android Developers

  • Android API:Android API| Android Developers

  • 官方中文文檔: 序言 | Google Android官方培訓課程中文版(v0.5)

書推薦

  • 《Head first Android Developer》;

  • 《Pro Android》;

視頻教程

  • Mars——Android 開發視頻教程

  • 黎活明——8天快速掌握Android視頻

  • 慕課網——Android 開發視頻

  • 極客學院——Android開發,安卓開發教程,android教程,安卓軟體開發教程,安卓開發視頻教程,安卓開發環境搭建

博客推薦

  • android開發大牛博客

  • hellogv的專欄 - 博客頻道

  • Android_Tutor的專欄 - 博客頻道

  • Storm" blog

  • 愷風(Wei)之Android專欄

  • 老羅的Android之旅 - 博客頻道

網站推薦

  • ImportNew - 專註Java Android 技術分享

  • Android - 博客 - 伯樂在線

  • Android開發中文站關注Android,關注開發者

總結

  1. 當然Github 上有很多開源的項目,多看看源碼,自己才能快速提升;《Android開源項目分類匯總》,這裡幾乎匯總了github 上所有的開源項目,可以自己找些慢慢學;

  2. 然而學習是乏味的事,堅持到最後是不易的;

  3. 要善於利用搜索引擎,遇到不會的問題,要使用Google 搜索;對了,作為一個開發者,要學會自備梯子;

  4. 還有學Android,要時刻關注Android 的最新動態,比如最新發布的Android 5.0 棒棒糖版,去了解他的新特性;

  5. 加一些QQ 群,有不會可以問問,相互交流;

本文作者:Tikitoo

本文出處:我是如何自學Android,資料分享

轉載請在開頭註明作者詳細信息本文出處。


好像也沒聽說哪位大神是生下來就會寫代碼的。非常贊成 @Xiao IyI-Y的答案。Android坑多,掉進去沒有摔死最後又爬出來的人,都成了大神。


想精通真的不是一年半載的事情,凡事都得有個循序漸進的過程,不是嗎,先把目標值降低一點點...

個人經歷,之前在銀行上班,覺得無趣,操起了計算機的老本行,看著android很火,自己也感興趣,就自學了幾個月,然後就開始找工作上班了。快一年了,現在依然做得很有幹勁!

1. 先學通Java吧,掌握Java是最基礎的要素,推薦看《馬士兵的j2se的教程》,verycd搜搜就找得到資源,最好是配合書本,初學推薦Java核心技術上下冊,GUI可以不看...

2. Android的書本貌似都不靠譜,推薦上技術網站,像http://eoeAndroid.com ,電玩巴士的android學習社區上面都有很豐富的資源,不過最好還是看http://developer.android.com,上大學英語應該不在話下的嘛!

3. 自己找項目做,找感興趣的功能點做會好一些,自己做一個demo出來,不要嫌爛,畢竟程序都是慢慢調出來的。

4. 讀一個成熟的項目,推薦oschina開源客戶端。

5. 剩下的就靠堅持和興趣了!


零基礎自學Android?答案是肯定的。

下面的答案有個私心就是安利下自己已經上線的應用以及求職中的自己吧。

---------------------------------------------

首先來說下我的背景以及這大半年來我的自學情況吧:

1.本科通信工程,非計算機科班,大一學過C語言基礎,後來因為專業課程需要,學了一點彙編以及Matlab。這部分經歷我認為對於我後來的編程學習只有基礎語法理解方面的幫助。

2.去年11月中開始系統學習編程語言,由於想做Android開發,所以入門語言選擇了Java。

3.11月中到12月中,邊看傳智播客的一套視頻邊敲裡面的練習。

4.12月中到1月中,20天左右時間看了《編程之美》,並用Java實現書里百分之五十左右的演算法題,剩下的題由於難度太大 或者比較複雜,當時沒有深入研究下去。

5.1月中到2月中,選擇了網易公開課裡面的《斯坦福大學公開課—編程方法學》這套視頻,同樣是邊看視頻,邊完成裡面的Assignment。在這裡感謝帥帥同學@王帥 推薦這套視頻。裡面的Assignment題都是經典題目,對於初學者來說非常適合。

6.2月底開始學習Android語言,花了1個月左右的時間,照著《第一行代碼》裡面的例子,敲代碼進行實現。

--------------------------------------------

由於在學習編程之前就有兩個小產品的構思,所以也沒有想自己基礎是否打紮實了,先試著去實現,看看能不能做出個可用的產品來。截止到目前為止,兩個小產品都已經開發完畢了,其中一個「蘋果序列號查詢」已經在小米、豌豆莢、Google Play、魅族Flyme等應用市場上線並且有了一版更新(4月14日上線,到目前為止下載量已經超過1000),它是下面這個樣子的:

關於開發「蘋果序列號查詢」具體實現邏輯介紹,請移步(最近好像需要翻牆):JeffinBao - Android開發,讀書,見人,行事

另一個是我的個人簡歷應用,仿照地圖搜索的樣式做的,它是下面這個樣子的:

關於開發「JeffinBaoCV」這個個人簡歷應用的介紹,也請移步:JeffinBao - Android開發,讀書,見人,行事

----------------------------------------------

寫了這麼多,不知道有沒有幫助到題主,下面是我的應用以及個人主頁的一些介紹:

1.小米、豌豆莢、魅族Flyme、Google Play、鎚子應用商店上搜索「蘋果序列號查詢」,有任何問題,歡迎反饋給我丫。

2.第二個應用做的是個人簡歷—JeffinBaoCV,沒有上線,感興趣的朋友可以通過下面鏈接下載(由於身邊手機不多,可能在小屏幕低版本系統的手機上會有適配問題,如果有,也歡迎反饋給我丫,多謝):百度雲 請輸入提取密碼.(提取碼:9x6d)

3.下面是跟我有關一些主頁的鏈接:

個人主頁:JeffinBao - Android開發,讀書,見人,行事

主要用於寫技術文章和一些自己認為寫得比較好的文章,剛開始用jekyll引擎不久,所以內容比較少。

GitHub主頁:JeffinBao (Jeffin.Bao) · GitHub

主要用於託管自己的代碼,尋找一些好的開源項目來學習使用。

如果你對我感興趣,請私信我或者通過下面郵箱聯繫我吧,謝謝!

郵箱:bjf13609846991@gmail.com


看了高票答案,說的很有道理,但是對於新手來說涉及到的東西太多了。

個人建議的學習路線圖:Java/設計模式 + Android + GitHub

首先想要學習Android開發(App開發,不涉及Framework以及其他圖像等底層),Java語言是基礎。Android SDK開發中涉及到的絕大多數代碼全部是Java寫的,所以Java是必須要掌握的基礎。與此同時,由於Java語言是從C++繼承來的靜態語言而非動態語言,所以說各種設計模式是必須要掌握的,否則寫出來的代碼根本沒法維護與復用。學習完這兩個方面以後,就可以學習Android開發的相關知識了,同時還要多關注GitHub上的好的開源項目,學習人家的代碼組織結構與設計方案,另外也能避免重複造輪子。

下面給出一些具體的每個階段的學習內容與建議書籍:

1. Java: 不要上來就看什麼Java編程思想、Java核心編程!幾本板磚一樣的書足以毀滅你的求知慾與上進心!

a. 強烈建議看 Head First Java,裡面內容比較精簡,同時習題也比較有趣,學習所花費的時間不長。如果認真投入時間,應該用不了1個月的時間就能學完,同時完成所有的習題與書中所涉及到的例子,注意這些例子與習題必須自己敲一遍!

b. Effective Java. 在有一定基礎後,這本書會講到Java中的各種坑與陷阱,很薄的一本書,但是內容非常豐富,需要在不斷學習的過程中不斷體會,不斷學習。

2. 設計模式:推薦 Head First設計模式,同樣也是Head First系列,同時以Java代碼為例,涉及到了Java程序中常用的各種設計模式,還是那句話,自己敲幾遍例子與習題!多思考,多體會為什麼會有這些設計模式。

3. Android:不需要買書,需要買個好用的VPN。關於Android學習,看Google的官方文檔與Training就已經足夠了,無奈GFW的限制,所以你只需要把買書的錢用來買個VPN,然後多看,多敲,多想。Android Training官方地址http://developer.android.com/training/index.html,英文不好的,GitHub上有個翻譯的項目 kesenhoo/android-training-course-in-chinese · GitHub

4. GitHub(以及其他開源項目託管庫):上面已經提到了,GitHub上有很多的Android開源項目,有些非常常用的功能,上面已經有人實現過了,比如PullToRefreshListView/SlidingMenu/屬性動畫/ImageLoader等等。可以直接用,也可以學習別人的解決思路。多看好的代碼,對於提升自身的水平,十分重要,相信我。熟讀唐詩三百首,不會作詩也會吟。

上述這些東西,學完可能半年都用不了,相信你這時候已經能完成一些簡單的小項目了,所以這時候你隨便做個啥,比如做個簡單的天氣預報App,模仿一個簡單的工具什麼的,剩下的就是在不斷的做項目中去提升自己了。

ps:學習與項目中肯定會遇到問題,除了Google,還可以去StackOverFlow,那個是程序員的知乎,有什麼問題,基本都能搜到,實在搜不到,還能提問。


1. 閱讀Effective Java及Learning Android - O"Reilly Media

2. 認真閱讀Android Developers,有很多sample

3. 註冊Google官方推出的Advanced課程How To Develop Android Apps

4. 做一個自己的app


想不到陸陸續續還有人為這個答案點贊啊。。弄得我都有點不好意思了。剛剛在另一個問題下寫了安卓入門的建議,作為回報,這裡也貼一下把。

簡單粗暴說結論:1,《java核心編程》; 2,《第一行代碼》;3,http://developer.android.com/training/index.html (也有中文版的 序言 | Android官方培訓課程中文版(v0.9.5) )。按照這個順序去學,學不會你找我。

說了結論我再慢慢說道說道。

每次一有新手入門類的問題,總是有一大堆人提供一大堆資料,而新手呢也是樂此不疲得收集資料——然後不學習。

我們這些編程老手都免不了看到資料就收集然後基本不看,現在還把這個扔給新人,難免讓他們「亂花漸欲迷人眼」那。

學習呢,最最靠譜也是最最簡單的就是按照一條道路踏實學下去,其他都是瞎扯淡。

然後我說說我為啥推薦這三塊。

1,我接觸安卓開發是12年了,當時只會一點點C語言。

入門時看的是mars的視頻教程,另外還有兩本安卓開發書。那時完全是盲人摸象啊,學了一陣子,總感覺哪裡不對,後來就心一橫,放下安卓書去自學Java,這時才恍然大悟,原來之前碰到的一些摸不著的問題,都是java範疇的東西。由此,才算開始真正得學習安卓開發。

所以先學java一定是正確的。關於學習java,當時我們學校也開了這門課程,老師推薦我們使用《java核心編程》——使用後我也覺得的確是目前最好的java入門教程,沒有之一。PS:如果有人推薦讓你用《thinking in java》,請毫不猶豫得把他拍到角落裡去。

2,前面說了,我看的書是比較早的版本,所以不推薦使用,因為書中的例子還是用安卓1.5版本的。。市面上大部分書也都是比較老的,建議新手不要去使用這類書籍,因為完全沒必要。安卓4.0以下的版本,就讓它們沉默在歷史的塵埃中吧,阿門。。。

這裡會推薦《第一行代碼》,也是比較冒險的,因為我本人並沒有看過。但我還是推薦使用它,一方面是該書的作者郭霖在國內安卓界很知名,博客寫的很不錯,另一方面,我接觸到的信息中,這本書是目前口碑最好的一本,從書的出版時間看,也是緊跟潮流的。

3,Android Google training 我就不多說了,官方推出的教程,你還有什麼好拒絕的呢?可以說,該教程幾乎每個例子都是最佳實踐,毫不誇張得說,你可以把它們背下來(當然是開玩笑了,你需要去理解並運用它們)。

4,我個人是推薦書籍/教程和視頻結合來看的,然而我當初看的mars的視頻有點老了。這個可以去網易雲課堂看看有沒有不錯的視頻吧。

======================== 以下是原答案 ==================================

誰不是從0開始的?

建議先買一本安卓入門的書(為啥我不推薦你先學JAVA?因為我知道你現在對安卓感興趣,叫你學JAVA你肯定也不聽的),先學學做簡單的應用。

然後你就會納悶,為啥有些東西總是不懂,於是你開始翻JAVA書,發現原來這些問題在JAVA中是常識,所以你就會去學JAVA了。

最後堅持不懈的學習。

----------------------------------------------------------------------------------------------------------------------

想不到這答案現在還有人評論啊,那我再加上一個建議吧:

最好的教程是Google android開發課程。如果覺得看英文吃力,這裡有中文版:

保存到文件 | Google Android官方培訓課程中文版(v0.3)


一定要用 Android Studio ,一定要買個 VPN ,一定要徹底遠離百度。


impossbile is nothing

good luck


可能


從沒見過生下來就會搞 Android 開發的天才。


Android是一個比較龐大的系統,從基礎開始學習,新人也一樣可以入門,直到精通。眾所周知Android是以Linux為內核的,從最底層的Linux到上層的應用開發,自學起來的確有一定的困難,需要摸索好長一段時間。建議大家去IT職業培訓學校學習,那裡有專門的老師和設計好的課程,可以幫助學員更快地接觸Android技術,更好地學習、掌握。建議你去培訓學校系統學習下http://www.ijiami.cn/


完全可能


可能啊,我就是啊,我所認識的任何開發都是零基礎學習的啊,誰生下來就會開發呢


先看看簡單的Java基本語法,這個是基礎。

然後去android官網上有入門指導,跟著一步一步來,做完之後就會對整個app結構有個大致的了解了。

再然後去網上看別人寫的例子,跟著慢慢做吧。

官方的API文檔很好用,可以在學習開發的過程中順便練一下英語。

其實我也入門不久,最初以為很難,但是越做越覺得有意思,

這種東西,想要做好必須得有興趣的支撐,加油吧!


跟你一樣從零開始學JAVA,兩個多月算是基本入門了。但現在還是徹底放棄了,一是自己太懶,決心不夠。二是尼瑪真是不簡單(可能我比較笨,哎~)。希望樓主堅持下去,有機會向您討教。如果萬一跟我一樣放棄了,就暫時用在線開發的工具吧,我在用叮噹http://dingdone.com,勉強滿足做自己APP的需求。


0基礎完全沒問題,寫寫代碼看看書就會了。遇到什麼學什麼,很快你就有自己的學習套路了


我也想學了,一個文科生。

話說,我是被逼無奈啊,要說能有個懂Android開發的幫我,我還是省下時間去做市場、營銷吧。


推薦閱讀:

為什麼安卓手機會越用越卡,有讓它變快的方法嗎?
怎麼看大家都喜歡稱軟體工程師這類人為碼農?
Android設備如何在整個系統上實現灰度模式?
開發一個App需要什麼?
Android 開發者 stormzhang 的開發水平有多高?

TAG:編程 | Android開發 | 編程學習 | 編程入門 |