零基礎,怎麼學習 Android 應用開發,需要學習哪些知識?

零基礎,怎麼學習APP的開發,需要學習哪些知識?


答主大四學生,僅個人看法~

1、學習途徑

平時獲取知識的途徑主要有:讀書、視頻教程、博客、Github、序言 | Android官方培訓課程中文版(v0.9.5)、微信公眾號。

2、入門 ------ 視頻教程

大一下初學Java,用的是馬士兵老師的視頻教程,講的很詳細,很適合初學者,所以馬老師應該算是我職業生涯的啟蒙老師。現在也會在極客學院、慕課網尋找到一些有價值的課程。

3、深入 ------ 多讀書

學久了,覺得視頻滿足不了求知慾,視頻只能教會用,不能教會懂,授人予魚不如授人予漁,如果要深究其原理,還是應該多讀書。可能你覺得讀書很花時間,剛開始,我也是這麼認為,後來醒悟過來,一定要看書。本科生的技術水平很難達到企業的用人標準,企業如果要你,不一定在本科階段就能做出幾個像樣的項目,他們看中的應該是求職者的學習能力和基礎深度。

4、查漏補缺 ------ 讀博客

在讀完一本書的之後,可以適當閱讀一些優質博客,加深對核心內容的理解,簡單地說就是查漏補缺。

推薦幾個吧:老羅的Android之旅 、郭霖的專欄 、胡凱 、掘金

5、零碎時間如何利用

可以關注一些優質的技術類微信公眾號,閑下來的時候,比如利用上廁所、吃飯、等車的時間讀一讀,日積月累,可以學到不少東西。

還是推薦幾個:安卓開發(anzhuoCoder)、安卓應用頻道(androidpd)、Andorid程序員(androidtrending)、程序員的那點事(Coder1024)、程序猿(imkuqin)、互聯網周刊(ciweekly)、牛客網(www_nowcoder_com)、演算法與數據結構、用友開發者、Nagain

6、素材

Unsplash | Free High Resolution Photos

Iconfont-阿里巴巴矢量圖標庫

Free Images - Pixabay

7、Andorid書單

《第一行代碼 Android》(郭霖)【摘要 書評 試讀】:CSDN博客執行郭霖作品,入門首選,幽默風趣的方式帶你走進Android的大門,我給我的學弟學妹都是推薦這本書。

《Android編程權威指南 計算機與互聯網 書籍》【摘要 書評 試讀】:學習Android看的第二本書,考慮作為進階學習的工具。

《Android應用性能優化》([法]Hervé Guihot)【摘要 書評 試讀】:想做出高性能的APP,這本書一定要看

《Android開發進階 從小工到專家》(何紅輝)【摘要 書評 試讀】:《Android應用性能優化》的升級版,推薦這兩本一起讀,可以互補。這本書是阿里巴巴的何紅輝前輩寫的,他參考序言 | Android官方培訓課程中文版(v0.9.5),同時增加了很多自己的見解,可以跟序言 | Android官方培訓課程中文版(v0.9.5)一起讀。

《Android系統源代碼情景分析(修訂版)(含CD光碟1張)》(羅昇陽)【摘要 書評 試讀】:老羅的書,很厚,要全部看完不容易,可以參考老羅的博客來讀。通過源碼來解析Andorid系統的四大組件和IPC的原理。

《Java編程思想(第4版)》([美]Bruce Eckel)【摘要 書評 試讀】:在讀通這本書前,別說自己Java很牛。這本Java聖經在這裡就不再贅述,是筆主大一的Java課程的教材,當時讀不懂,現在翻回來重新讀。如果沒讀這本書就想去BAT,洗洗睡,第二天早點起來看書。

《深入理解Java虛擬機:JVM高級特性與最佳實踐(第2版)》(周志明)【摘要 書評 試讀】:馬士兵老師說:理解了內存,就理解了一切。這本書講解的主要內容包括內存管理、經典的垃圾收集、類載入和反射、高效並發編程。一般的Java程序員,只要了解必要的Java API、Java語法就差不多了,但是優秀的Java程序員,還遠遠不夠。

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

最後廣告一下吧

Github: https://github.com/miomin

微博: 莫緒旻


首先貼上另一個問題:如何自學android編程?

雖然這個問題上沒說零基礎,但是耐心把答案看完,相信你不論處於什麼水平,都能找到前進的方向。

------------------------------------下面是自己的總結-----------------------------

1、學Java

目前,Java語言在Android開發中佔據絕對統治地位,所以開發Android的第一步就是學好Java,建議至少完整的看一本Java入門書籍,推薦:

  • Java語言程序設計 (豆瓣):我原來看的入門書籍,我老師推薦的,分為《基礎篇》和《進階篇》。
  • Java編程思想 (第4版) (豆瓣):從Java的基礎語法到最高級特性(深入的面向對象概念、多線程、自動項目構建、單元測試和調試等),更講述了java語言的前世今生,語言特性,設計理念等等,閱讀本書需要一定的java基礎,個人經驗,建議至少看完《Java語言程序設計-基礎篇》再看這本書。

2、學Android

  • 第一行代碼 (豆瓣):郭霖大大編寫的Android入門書籍,推薦這本書的原因有兩個,一是郭霖大大的語言通俗易懂,二是這本書很新,是基於Android4.0的入門書籍,根據友盟指數的統計,Android4.0以下的設備已不足10%,所以,你現在入門,拋棄那些仍舊停留在Android2.x的入門書籍吧。(ps:這本書我買了不到一個月就丟了,一本60多呢,二次購買也不打個折,真是憂傷)
  • AndroidDevTools:從開發工具到入門教程,從代碼規範到版本控制工具,一切與android相關的都在這個網站上,Android入門請參考該網站的 Android Dev Tutorials 模塊,這個網站的github地址是inferjay/AndroidDevTools · GitHub,如果你有什麼補充的可以push。
  • Android學習之路:stormzhang大大編寫的Android入門文章,對於有一定java基礎的人來說,Android入門有這一篇文章就足夠了。(該文章同樣被收錄在AndroidDevTools中)

  • 郭霖的專欄:郭霖大大CSDN專欄。
  • stormzhang.com 的頁面:stormzhang大大的個人博客。

3、遇到問題怎麼辦

  • Google:用google搜出來的結果比百度質量高。至於如何不翻·牆就使用google請自行知乎,但是作為一個Android開發者,你早晚要學會翻·牆。
  • 博客園 - 開發者的網上家園

  • 博客頻道 - CSDN.NET

  • Stack Overflow:國外的開發者問答社區,無需翻·牆。

  • GitHub · Build software better, together.:國外的代碼託管平台,這裡有很多Java/Android開源項目,無需翻·牆。

4、一點補充

  • 杜絕知其然而不知其所以然:遇到問題一定要搞清楚問題出現的原因,所以個人更推薦花點時間仔細閱讀一篇講解詳細的博文,而不是直接複製別人貼出來的代碼,直接套用別人發的解決方案。


阿里云云棲社區,彙集阿里技術精粹,點此關注

著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

前言:

最近幾日有不少小夥伴要求分享一些安卓開發學習課程或者資料,小編在此將阿里技術協會的:《Android 基礎課堂》系列學習資料分享給各位。同時各位小夥伴若有學習、資料需求可以私信小編,小編也會儘力為大夥整理分享。

以下為正文:

Android 基礎課堂

· 之所以叫Android基礎課堂嘛,是因為本部分主要的內容是關於Android開發的一些小知識也可以算是一個入門教程吧,我們志在讓讀者了解Android開發,清楚Android開發的過程~並能更好的看懂我們的周刊。

· 基礎課堂將會從最基礎的Android開發知識講起,讓讀者熟悉Android項目的結構,而後我們會通過一個應用的開發過程,結合的講解Android的知識,把Android的相關知識在這個應用里慢慢迭代~慢慢豐富應用,讓讀者在實踐中學習Android開發~

—————————————————————————————————————————

第一課:《Android發展史概述及開發環境搭建》

一、Android發展史概述

Android這一詞最先出現在法國作家 利爾·亞當 在1886年發表的科幻小說《未來夏娃》中,作者將外表像人類的機器起名為Android,這也就是Android小人名字的由來。

Android是一種基於Linux的自由及開放源代碼的操作系統,Android系統原來的公司名字就叫做Android。Andy Rubin創立了兩個手機操作系統公司:Danger和Android。Danger 5億美元賣給微軟,後更名成為了Kin,Android 4千萬美元賣給Google。谷歌公司在2005收購了這個僅成立22月的高科技企業Android。Android系統也開始由谷歌接手研發,Android系統的負責人、Android公司的CEO Andy Rubin 成為谷歌公司的工程部副總裁,繼續負責Android項目的研發工作。

......

二、開發環境搭建

自從Android Studio發布以來,搭建Android開發環境變得非常簡單,不再像原來在eclipse上搭建開發環境那麼繁瑣了,那麼我們就開始搭建開發環境吧

① Mac 下搭建開發環境

點擊閱讀詳情

—————————————————————————————————————————

第二課:《從創建一個Android工程開始》

一、Hello Android

o 在第一課中,我們已經搭建完Android開發環境了,那麼接下來我們就來用Android Studio(下文中將用AS簡寫來代表Android Studio)創建我們的第一個工程吧

o 打開我們安裝完的AS,將會看到如下界面

……

二、初識Activity

o 在上面創建工程的時候,可以選擇是否創建第一個Activity ,以及創建什麼樣式的Activity ,那麼本著用到什麼講解什麼的原則,我們現在就來講講Activity

o Activity 是四大組件之一,並且是我們最經常用到的組件,Activity 是用戶介面程序,原則上它會提供給用戶一個互動式的介面功能。Activity 本身是沒有界面的,Activity 類創建了一個窗口,通過setContentView(View)介面把.xml界面放到Activity 創建的窗口上。

點擊閱讀詳情

—————————————————————————————————————————

第三課:《五大布局》

一、LinearLayout (線性布局)

o 什麼叫做線性布局呢,其實理解起來也很簡單,就是它裡面的東西,都按照一定的順序一個接著一個排放,那麼一定的順序指什麼呢,在線性布局裡,提供了兩種布局排序方式,一種是水平的即horizontal,一種是垂直的即vertical,讓我們來看看這兩種布局方式吧

o 水平 horizontal:在水平布局的LinearLayout 里,內部控制項是從左到右一個個排序的,最前面的在左邊,最後面的在右邊,具體是什麼樣的呢,讓我們來實踐一下,先看下面的這個效果圖

……

二、RelativeLayout(相對布局)

o 相對布局是啥意思呢,就是內部各子元素按照之間的位置關係來完成布局。在此布局中的子元素里與位置相關的屬性將生效。例如android:layout_below, android:layout_above, android:layout_centerVertical等。注意在指定位置關係時,引用的ID必須在引用之前,先被定義,否則將出現異常,讓我們來看看實現效果:

點擊閱讀詳情

—————————————————————————————————————————

第四課:《從登錄界面開始》

一、登錄界面布局分析

o 首先我們先來創建一個新的Activity用於登錄,首先打開我們的工程,然後在我們的包處右鍵,如下:

……

二、布局中的EditText

o EditText是Android中提供的用於獲取用戶輸入的控制項,Android中每一個控制項所含有的方法都很多,不可能一次講全講完,我們還是本著用到什麼講什麼的方式來講解,所以,本次我們只講一些簡單的東西,即在布局中對EditText的一些設置,而關於如何獲得輸入、如何監聽輸入變化、如何設置可輸入內容等等這些東西,我們將在下周中講到登錄界面的邏輯的時候進行敘述,所以本周的關於EditText的內容將會比較簡單

後續課程持續更新中,歡迎關注阿里云云棲社區機構號:阿里云云棲社區,彙集阿里技術精粹,點此關注


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

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.有自己很強烈想要實現出來的想法

我在學習編程之前,上面兩個應用的初步構想就已經在我腦中了,所以這半年多特別是今年2月底開始學習Android以來,我都是按照怎麼去實現我腦中的想法去學習Android的。沒有對於想要實現的東西有著強烈的願望,我想我是很難堅持下來的。最終把自己的想法實現後,這種開心和一直進步的感覺,也是很鼓舞人心的。

2.「軟實力」的加強

Android應用呈現給用戶最多的是界面,所以界面是否美觀是用戶會不會選擇去用的一個重要因素。對於工程師來說,如何提高自己的審美,進而把自己對美的理解融入到應用當中是很重要的。這不是說工程師一定要具備專業設計師的能力,這不太現實。但是如何保持界面整潔,在字體、顏色、排版上如何規範與統一,都是工程師需要在平時去提高的。

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

寫了這麼多,不知道有沒有幫助到題主,下面我也想安利下自己的應用以及在求職中的自己:

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

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

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

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

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

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

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

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

郵箱:bjf13609846991@gmail.com


以前回答過類似的問題,先佔坑,再回答;

先看看這篇文章吧:我是如何自學Android,資料分享

----------------------------------我是分割線----------------------------------------

最近學習了,對Android 的認識又有了新的見解,吃晚飯回來回答;


先學點Java 然後看Android方面的書開始學習,盡量實際弄幾個可以用的應用出來,開發中遇到不會的語法再回去仔細研究Java。

書的話這本不錯:Android編程權威指南 (豆瓣)

然後圖靈社區的有些Android書後面會有學習路線圖,可以參考。


建議首先也要先熟悉java SE編程。能讓0基礎的開發愛好者快速地學會這首要的基礎編程,那將會大大地提升開發安卓app的效率,然後再熟練地使用java語言進行APP軟體編程,最後將要熟悉一些比較複雜的過程,如:熟悉語言語法,熟悉java線程、java IO、XML處理、網路編程等,還有學習android app框架和android app發布,這些都是從一個未知的安卓app開發的0基礎狀態到熟悉安卓app開發的一個過程,也算是android web app的另一個開發領域,一般開發一個出色的android app只有被推薦才可能有極高的知名度,但是一個大師級的android開發人才卻是有這個能力和境界瞬間為業界的人所驚嘆。

從0基礎開始去掌握安卓APP的一些開發技巧是件好事,但是要選擇正確的方法去學習,選擇一些正規的網站或者學校去學習安卓app軟體開發技能並且掌握其開發基礎,只要有正確的引導,才能將一個完整的安卓APP開發流程掌握,這樣才會對於安卓APP行業發展做出保障,不管是0基礎的開發者,還是有基礎的開發者,都要用正確的觀念來教育,這樣也就是說把安卓APP開發環境做一個大的清理,為保證今後美好的APP開發環境持續下去。

Android應用開發視頻教程

Android應用開發視頻教程視頻教程

Android應用開發視頻教程-第2季

Android應用開發視頻教程

Android開發視頻教程《Java語言基礎》

Android開發視頻教程《Java語言基礎》視頻教程



①Java基礎知識

②Linux基礎知識

③資料庫基礎知識

④網路協議

⑤Android基礎知識

⑥伺服器端開發知識


程序員學習成長之路:某語言 = &> 編碼風格 = &> 一兩個程序庫/框架(經歷幾個項目) = &> 重構 = &> 設計模式 = &> 系統架構」


開發android,我們需要哪些技能基礎。(android大牛請繞開此段)

①Java基礎知識 ②Linux基礎知識 ③資料庫基礎知識 ④網路協議

⑤Android基礎知識 ⑥伺服器端開發知識①Java基礎知識

很多朋友一上手就開始學習Android,似乎太著急了一些。Android應用程序開發是以Java語言為基礎的,所以沒有紮實的Java基礎知識,只是機械的照抄別人的代碼,是沒有任何意義的。萬丈高樓平地而起,Java就是築起高樓的每一塊磚頭。那麼Java學到什麼程度才算是過關呢?我個人認為至少要掌握以下兩個方面的內容:

a)Java基礎語法:具體的知識點列表可以在這裡下載:《Java知識點列表》V1.0。這部分內容沒有討價還價的餘地,必須爛熟於胸。至於具體的學習方法,可以看書或者是看視頻,但是關鍵是要多加練習,無論是書上的練習還是視頻裡面的練習,都需要仔仔細細的完成;

b)設計模式:由於在Android系統的框架層當中,使用了大量的設計模式,如果沒有這個方面的知識,對於Android的理解就會大打折扣。設計模式的種類非常之多,一個一個的全部掌握,是不現實的,必須首先掌握面向對象的基礎設計原則,有了這些基礎原則的支持,就可以舉一反三。這部分內容可以在《Effective Java》和《Agile.Software.Development:Principles,Patterns.and.Practices》這兩本書中找到。

②Linux基礎知識

大家都知道,Android系統的基礎是Linux操作系統。在開發過程當中,我們也需要使用到一些Linux命令。所以說一些Linux的基礎知識是必須的(話說現在的程序員,不懂Linux都不好意思跟人家打招呼),推薦大家看看《鳥哥的私房菜》這本書,寫的相當不錯;

③資料庫基礎知識

這個比較簡單,就是一個增刪改查的資料庫操作,可以看一下這本書:《SQL編程練習與解答》

④網路協議

至少需要學習兩種基礎的協議,HTTP協議與Socket協議;

⑤Android基礎知識

⑥伺服器端開發知識

由於很多Android應用程序都需要伺服器端的支持,所以掌握一些伺服器端開發知識還是非常有必要的。至於選擇哪一種伺服器端知識進行學習,就比較麻煩了,因為技術的種類實在是太多了:

a)Java EE:就是上面郵件當中所提到的SSH—Struts+Spring+Hibernate。這種技術的優點的功能完整、強大,已經使用了很多年,而且既然大家已經非常熟悉Java了,那麼學習SSH看起來也順理成章。但是使用這種技術開發伺服器端程序,非常麻煩。即使是一些簡單的功能,也可能需要大量的代碼和配置文件來實現;

b)PHP:簡單易學,開發快速。但是我們需要多學一種語言,是否得不償失,就要大家自己判斷了;

c).NET:這項技術的特點和Java EE差不多,但是要想掌握.NET,則需要掌握c#,也是個麻煩的事情;

d)ruby on rails:這是我個人最喜歡的伺服器端技術,簡潔,優雅,寥寥幾行代碼,就可以實現很複雜的功能,但是這需要Ruby語言知識作為基礎;

至於選擇哪一種知識,就看大家自己的判斷了,畢竟每個人想法不一樣,愛好也不相同。

2怎樣去獲得這些技能基礎

安卓開發學習書籍建議買 精通Android2 ,或者 Android2高級編程 這兩本書,講解的細緻,但是一定要結合sdk來看。國內的不要買。。。。(切身體會,千萬別買)看完之後就可以自己動手做做項目了。

對於java基礎,我現在的感覺是 如果要深入學習android平台,java基礎一定要好(裡邊包括各種java類庫的用法,本地代碼jni什麼的)。但如果平時隨便做做應用的話,會面向對象編程就完全可以了。把獲取這些技能基礎量化為100%的話,那麼看書這個途徑只能為你提供15%的進步。

看視頻,這也是許多自學android開發的新手必經之路,畢竟看書只有你一個人的思維在活躍,看視頻至少是兩個人的思維在碰撞,你能發現你與別人的不同,如果你有心,你就能進步更多。


首先要懂Java語言,Java編程語言語法應該是最簡單的一種,然後可以結合一些書看看

Android開發方面的教程,零基礎的話可以看看要先看一些很基礎的教程,可以看看這個Android開發教程。


android是開源的。

不一定要使用java,現在使用html5 是最方便的


零到哪一種程度?

如果演算法,數據結構,資料庫這些都不了解的話建議先去看一下這方面的入門資料。

如果有一定的知識基礎的話建議看一下MarsChen的入門視頻,有Java,有Android的並且它的Java是為Android服務的。http://www.marschen.com/portal.php


不知題主之前有沒有Java基礎,如果沒有的話,先學習Java基礎,然後再是Android基礎,ui,演算法,多線程處理等等一步步進行,可以戳http://www.51bdqn.com了解


官網直播網址http://www.dongyibiancheng.com/expand/4yg2w9 每天上午十點 ,下午三點,晚上八點,直播課程H5混合開發,框架MUI-H5+,微信小程序,Vue.js,PHP,JavaScript,ReactNative, 進入直播群:239503027


題主你好。你來晚了。我已經不收徒了!你的需求告訴給我 我幫你開發就OK 平價 高質量 高逼格


我也要學Java


大家基本上都認為使用java語言(java SE),但是其他方法也可以開發原生Android的app,xml+JavaScript的開發方式是愛碼哥移動開發平台所特有的,開發語言相對更簡單,並且還是原生的用戶體驗,最重要的是不僅生成安卓app,還能生成iOS app,只用編輯一套代碼。


我覺得你還是換個行業吧,這個行業短時間你是不會出頭。長時間會熬出各種病


@恆遠志


JAVA基礎,然後是Android UI控制項 ,布局,線程,弄本書一步步學習 應該很快


推薦閱讀:

目前最有效的 App 推廣渠道有哪些?
Windows為什麼沒有程序許可權限制的功能?將來是否可能出現?
Android 平台有哪些非常優秀的應用?
嵌入式還是安卓應用開發?
ColorOS、 OPPO、CM和OnePlus 之間是什麼關係?

TAG:編程 | 計算機 | Android開發 | Android | 零基礎 |