學習Android一定要有Java基礎,最差也要類似Java的其他面對像對象語言的基礎。
很多同學從來沒有搞過軟件編程,聽說Android能賺錢,就瘋了一樣沖過來要學習。這明顯是不靠譜的,甚至有的朋友一個字母一個字母的按照我們的例子去敲代碼,然后非常努力的把代碼背下來,像背英文單詞一樣的背代碼,編程如果要是學成這個樣子,還真是讓人佩服不已?。〔还茉鯓?,學習Android你最少也要掌握Java語言的如下知識點才能夠開始學習:a)Java基本數(shù)據(jù)類型及其特點b)Java分支語句和循環(huán)語句的使用c)類和對象的創(chuàng)建和使用方法d)函數(shù)的使用e)抽象類和接口f)繼承和實現(xiàn)g)對象的多態(tài)性h)包和訪問權限i)異常的處理j)類集框架k)eclipse的基本用法。
android 是一個專門針對移動設備的軟件集,它包含一個操作系統(tǒng),中間件和一些重要的應用程序(可以理解為一個手機操作系統(tǒng))。內核采用的是linux內核2.6,android sdk提供了在android平臺上使用java語言進行開發(fā)Android應用程序開發(fā)的工具和API接口。
實際就是使用java語言和android api 為android手機開發(fā)應用軟件。
無論是java,C++有基礎就差不多。最好用過java,Eclipse。如果進行過一些類似的sdk開發(fā)就應該沒什么問題啦。
安卓開發(fā)要學什么?
1.熟悉java編程語言,android應用程序開發(fā)是以java語言為基礎的,所以沒有扎實的java基礎知識,如果只是簡單機械的照抄照搬別人的代碼,是沒有任何意義的。
2.具備一定的數(shù)據(jù)結構和算法基礎知識,如果明白這些可以很清楚的明白到底應該選擇哪個數(shù)據(jù)結構或者是算法,掌握這一方面的基礎知識,也可以很好地為后續(xù)的學習做鋪墊。
3.需要掌握一些Linux操作系統(tǒng),在開發(fā)過程中,我們會需要使用到一些Linux命令,所以說Linux的基礎知識也是必備的。
這些基礎的安卓開發(fā)要學的內容,作為安卓開發(fā)工程師必須掌握這些扎實的概念基礎和技術技能必須掌握。
安卓開發(fā)需要哪些基礎知識呢?
1.java基礎知識,在android系統(tǒng)的框架當中,會使用大量的設計模式,所以掌握這些基礎的設計原則,可以在學習過程中舉一反三,更好地利用所學內容。
2.Linux基礎知識,android系統(tǒng)的基礎是Linux操作系統(tǒng),所以在開發(fā)過程中,我們可以使用一些Linux命令。
3.數(shù)據(jù)庫基礎知識,這部分知識點相對來講比較簡單,簡單的說就是增刪改查數(shù)據(jù)庫的操作。
4.網絡協(xié)議,http協(xié)議和socket協(xié)議這兩種基礎的協(xié)議是需要掌握的。
5.android基礎知識
6.服務器端的開發(fā)知識,很多android應用程序都需要服務器端的支持,所以掌握一些服務器的開發(fā)知識是很有必要的…… JAVA EE、PHP、.NET和ruby on rails這么多的類型,至于要選擇哪一種服務器端知識進行學習,這樣就會比較麻煩,畢竟技術的種類確實是很多。
1、看你將來想從來哪方面的開發(fā)。
2、ANROID的開發(fā)分為:
1)、Android客戶端應用程序
如新浪微博、網銀客戶端、凡客、淘寶客戶端,快盤客戶端。Android在這里的應用還是界面層的東西為主。核心還在WEB。不過從應用層面上來講,幾乎大一點的網站,都需要有手機客戶端程序。
2)、Android通用類程序
如基于LBS(基于位置的服務)的應用 (這類一般會嵌入到客戶端應用程序中),流媒體播放應用。由于移動設備的方便便捷,這類應用有不錯的前景。
3)、Android游戲開發(fā)
需要掌握的游戲引擎LGame,游戲框架等。手機上的游戲會是一大塊內容,有前途。
4)、Android底層開發(fā)
需要掌握C、Linux等較底層的東西,發(fā)展方向應該是驅動、協(xié)議開發(fā),嵌入式開發(fā)
想從事客戶端應用程序的開發(fā),要會J2EE(SSH)。(看服務器端的構架了)
①Java基礎知識 ②Linux基礎知識 ③數(shù)據(jù)庫基礎知識 ④網絡協(xié)議 ⑤Android基礎知識 ⑥服務器端開發(fā)知識①Java基礎知識很多朋友一上手就開始學習Android,似乎太著急了一些。
Android應用程序開發(fā)是以Java語言為基礎的,所以沒有扎實的Java基礎知識,只是機械的照抄別人的代碼,是沒有任何意義的。萬丈高樓平地而起,Java就是筑起高樓的每一塊磚頭。
那么Java學到什么程度才算是過關呢?我個人認為至少要掌握以下兩個方面的內容:a)Java基礎語法:具體的知識點列表可以在這里下載:《Java知識點列表》V1.0。這部分內容沒有討價還價的余地,必須爛熟于胸。
至于具體的學習方法,可以看書或者是看視頻,但是關鍵是要多加練習,無論是書上的練習還是視頻里面的練習,都需要仔仔細細的完成;b)設計模式:由于在Android系統(tǒng)的框架層當中,使用了大量的設計模式,如果沒有這個方面的知識,對于Android的理解就會大打折扣。設計模式的種類非常之多,一個一個的全部掌握,是不現(xiàn)實的,必須首先掌握面向對象的基礎設計原則,有了這些基礎原則的支持,就可以舉一反三。
這部分內容可以在《Effective Java》和《Agile.Software.Development:Principles,Patterns.and.Practices》這兩本書中找到。②Linux基礎知識大家都知道,Android系統(tǒng)的基礎是Linux操作系統(tǒng)。
在開發(fā)過程當中,我們也需要使用到一些Linux命令。所以說一些Linux的基礎知識是必須的(話說現(xiàn)在的程序員,不懂Linux都不好意思跟人家打招呼),推薦大家看看《鳥哥的私房菜》這本書,寫的相當不錯;③數(shù)據(jù)庫基礎知識這個比較簡單,就是一個增刪改查的數(shù)據(jù)庫操作,可以看一下這本書:《SQL編程練習與解答》④網絡協(xié)議至少需要學習兩種基礎的協(xié)議,HTTP協(xié)議與Socket協(xié)議;⑤Android基礎知識有了以上的鋪墊,再來看Android,是不是覺得輕松了很多呢?至于基礎知識的學習順序,最好的方法就是按照Android SDK幫助文檔當中的Dev Guide里面的順序,我的《Android視頻教程》也基本上是按照這個順序錄制的;⑥服務器端開發(fā)知識由于很多Android應用程序都需要服務器端的支持,所以掌握一些服務器端開發(fā)知識還是非常有必要的。
至于選擇哪一種服務器端知識進行學習,就比較麻煩了,因為技術的種類實在是太多了:a)Java EE:就是上面郵件當中所提到的SSH—Struts+Spring+Hibernate。這種技術的優(yōu)點的功能完整、強大,已經使用了很多年,而且既然大家已經非常熟悉Java了,那么學習SSH看起來也順理成章。
但是使用這種技術開發(fā)服務器端程序,非常麻煩。即使是一些簡單的功能,也可能需要大量的代碼和配置文件來實現(xiàn);b)PHP:簡單易學,開發(fā)快速。
但是我們需要多學一種語言,是否得不償失,就要大家自己判斷了;c).NET:這項技術的特點和Java EE差不多,但是要想掌握.NET,則需要掌握c#,也是個麻煩的事情;d)ruby on rails:這是我個人最喜歡的服務器端技術,簡潔,優(yōu)雅,寥寥幾行代碼,就可以實現(xiàn)很復雜的功能,但是這需要Ruby語言知識作為基礎;至于選擇哪一種知識,就看大家自己的判斷了,畢竟每個人想法不一樣,愛好也不相同。2怎樣去獲得這些技能基礎。
(android大牛請繞開此段)看書,這確實是一個不錯的選擇。如果你想從零開始學習Java、Linux、數(shù)據(jù)庫、網絡協(xié)議、android基礎知識……沒錯這些你都需要看書,看很多書(這是一句廢話,跳過好了)。
但是!如果把獲取這些技能基礎量化為100%的話,那么看書這個途徑只能為你提供15%的進步??匆曨l,這也是許多自學android開發(fā)的新手必經之路,畢竟看書只有你一個人的思維在活躍,看視頻至少是兩個人的思維在碰撞,你能發(fā)現(xiàn)你與別人的不同,如果你有心,你就能進步更多。
基礎知識不用我擔心太多,至少想學android的,找基礎知識的資料還是沒有問題的。在此你也可以試著了解一些android的基礎視頻。
也可以加入一下android的QQ群,去初步了解一下。感受一下氛圍。
這個我個人覺得很有意義。敲代碼,不為了其它的什么,就為了你能夠熟練的掌握android開發(fā)工具,你是不是應該多話一點心思在上面呢?他的重要性不比“看書+看視頻”的總和小,也許我就這樣輕描淡寫地說過去了,但是你最好不要輕描淡寫地看過去,不然“返工重做”是很讓你不舒服的。
思考,沒錯,就是“想”。想你怎么把這三塊兒合在一塊兒,讓自己的學習效率更高;想你在學習中遇到哪些障礙,最后是怎么解決的,這很重要。
①Java基礎知識 ②Linux基礎知識 ③數(shù)據(jù)庫基礎知識 ④網絡協(xié)議 ⑤Android基礎知識 ⑥服務器端開發(fā)知識 ①Java基礎知識 很多朋友一上手就開始學習Android,似乎太著急了一些。
Android應用程序開發(fā)是以Java語言為基礎的,所以沒有扎實的Java基礎知識,只 是機械的照抄別人的代碼,是沒有任何意義的。萬丈高樓平地而起,Java就是筑起高樓的每一塊磚頭。
那么Java學到什么程度才算是過關呢?我個人認為至 少要掌握以下兩個方面的內容: a)Java基礎語法:具體的知識點列表可以在這里下載:《Java知識點列表》V1.0。這部分內容沒有討價還價的余地,必須爛熟于胸。
至于具體的學習方法,可以看書或者是看視頻,但是關鍵是要多加練習,無論是書上的練習還是視頻里面的練習,都需要仔仔細細的完成; b)設計模式:由于在Android系統(tǒng)的框架層當中,使用了大量的設計模式,如果沒有這個方面的知識,對于Android的理解就會大打折扣。設計模式 的種類非常之多,一個一個的全部掌握,是不現(xiàn)實的,必須首先掌握面向對象的基礎設計原則,有了這些基礎原則的支持,就可以舉一反三。
這部分內容可以在 《Effective Java》和《Agile.Software.Development:Principles,Patterns.and.Practices》這兩本書 中找到。 ②Linux基礎知識 大家都知道,Android系統(tǒng)的基礎是Linux操作系統(tǒng)。
在開發(fā)過程當中,我們也需要使用到一些Linux命令。所以說一些Linux的基礎知識是必 須的(話說現(xiàn)在的程序員,不懂Linux都不好意思跟人家打招呼),推薦大家看看《鳥哥的私房菜》這本書,寫的相當不錯; ③數(shù)據(jù)庫基礎知識 這個比較簡單,就是一個增刪改查的數(shù)據(jù)庫操作,可以看一下這本書:《SQL編程練習與解答》 ④網絡協(xié)議 至少需要學習兩種基礎的協(xié)議,HTTP協(xié)議與Socket協(xié)議; ⑤Android基礎知識 有了以上的鋪墊,再來看Android,是不是覺得輕松了很多呢?至于基礎知識的學習順序,最好的方法就是按照Android SDK幫助文檔當中的Dev Guide里面的順序,我的《Android視頻教程》也基本上是按照這個順序錄制的; ⑥服務器端開發(fā)知識 由于很多Android應用程序都需要服務器端的支持,所以掌握一些服務器端開發(fā)知識還是非常有必要的。
至于選擇哪一種服務器端知識進行學習,就比較麻煩了,因為技術的種類實在是太多了: a)Java EE:就是上面郵件當中所提到的SSH—Struts+Spring+Hibernate。這種技術的優(yōu)點的功能完整、強大,已經使用了很多年,而且既然 大家已經非常熟悉Java了,那么學習SSH看起來也順理成章。
但是使用這種技術開發(fā)服務器端程序,非常麻煩。即使是一些簡單的功能,也可能需要大量的代 碼和配置文件來實現(xiàn); b)PHP:簡單易學,開發(fā)快速。
但是我們需要多學一種語言,是否得不償失,就要大家自己判斷了; c).NET:這項技術的特點和Java EE差不多,但是要想掌握.NET,則需要掌握c#,也是個麻煩的事情; d)ruby on rails:這是我個人最喜歡的服務器端技術,簡潔,優(yōu)雅,寥寥幾行代碼,就可以實現(xiàn)很復雜的功能,但是這需要Ruby語言知識作為基礎; 至于選擇哪一種知識,就看大家自己的判斷了,畢竟每個人想法不一樣,愛好也不相同。 2怎樣去獲得這些技能基礎。
(android大牛請繞開此段) 看書,這確實是一個不錯的選擇。如果你想從零開始學習Java、Linux、數(shù)據(jù)庫、網絡協(xié)議、android基礎知識……沒錯這些你都需要看書,看很多 書(這是一句廢話,跳過好了)。
但是!如果把獲取這些技能基礎量化為100%的話,那么看書這個途徑只能為你提供15%的進步。 看視頻,這也是許多自學android開發(fā)的新手必經之路,畢竟看書只有你一個人的思維在活躍,看視頻至少是兩個人的思維在碰撞,你能發(fā)現(xiàn)你與別人的不 同,如果你有心,你就能進步更多。
基礎知識不用我擔心太多,至少想學android的,找基礎知識的資料還是沒有問題的。在此你也可以試著了解一些 android的基礎視頻。
也可以加入一下android的QQ群,去初步了解一下。感受一下氛圍。
這個我個人覺得很有意義。 敲代碼,不為了其它的什么,就為了你能夠熟練的掌握android開發(fā)工具,你是不是應該多話一點心思在上面呢?他的重要性不比“看書+看視頻”的總和小,也許我就這樣輕描淡寫地說過去了,但是你最好不要輕描淡寫地看過去,不然“返工重做”是很讓你不舒服的。
思考,沒錯,就是“想”。想你怎么把這三塊兒合在一塊兒,讓自己的學習效率更高;想你在學習中遇到哪些障礙,最后是怎么解決的,這很重要。
android 技術內幕系統(tǒng)卷 第1章 準備工作 /1 1.1 深入認識android /2 1.1.1 android的系統(tǒng)構架 /2 1.1.2 android的初始化流程 /5 1.1.3 各個層次之間的相互關系 /8 1.1.4 android系統(tǒng)開發(fā)(移植)和應用開發(fā) /11 1.2 獲取和編譯android的源碼 /13 1.2.1 環(huán)境配置 /13 1.2.2 獲取android源碼 /14 1.2.3 編譯android的源碼及其工具包 /16 1.2.4 運行android系統(tǒng) /21 1.3 開發(fā)環(huán)境搭建 /23 1.3.1 應用開發(fā)環(huán)境搭建 /23 1.3.2 源碼開發(fā)環(huán)境搭建 /26 1.4 android源碼結構 /32 1.5 小結 /33 第2章 android的內核機制和結構剖析 /34 2.1 linux與android的關系 /35 .2.1.1 為什么會選擇linux /35 2.1.2 android不是linux /35 2.2 android對linux內核的改動 /37 2.2.1 goldfish /37 2.2.2 yaffs2 /38 2.2.3 藍牙 /39 2.2.4 調度器(scheduler)/39 2.2.5 android新增的驅動 /40 2.2.6 電源管理 /41 2.2.7 雜項 /41 2.3 android對linux內核的增強 /42 2.3.1 alarm(硬件時鐘)/43 2.3.2 ashmem(匿名內存共享)/46 2.3.3 low memory killer(低內存管理)/52 2.3.4 logger(日志設備)/56 2.3.5 android pmem /65 2.3.6 switch /79 2.3.7 timed gpio /88 2.3.8 android ram console /94 2.4 小結 /99 第3章 android的ipc機制--binder /100 3.1 binder概述 /101 3.1.1 為什么選擇binder /101 3.1.2 初識binder /102 3.2 binder驅動的原理和實現(xiàn) /102 3.2.1 binder驅動的原理 /102 3.2.2 binder驅動的實現(xiàn) /103 3.3 binder的構架與實現(xiàn) /132 3.3.1 binder的系統(tǒng)構架 /132 3.3.2 binder的機制和原理 /133 3.4 小結 /150 第4章 電源管理 /151 4.1 電源管理概述 /152 4.2 電源管理結構 /152 4.3 android的電源管理機制 /153 4.4 android電源管理機制的實現(xiàn) /154 4.5 小結 /187 第5章 驅動的工作原理及實現(xiàn)機制 /188 5.1 顯示驅動(framebuffer)/189 5.1.1 framebuffer的工作原理 /189 5.1.2 framebuffer的構架 /190 5.1.3 framebuffer驅動的實現(xiàn)機制 /190 5.2 視頻驅動(v4l和v4l2)/201 5.2.1 v4l2介紹 /201 5.2.2 v4l2的原理和構架 /201 5.2.3 v4l2的實現(xiàn) /202 5.3 音頻驅動(oss和alsa)/208 5.3.1 oss與alsa介紹 /208 5.3.2 oss的構架與實現(xiàn) /209 5.3.3 alsa的構架與實現(xiàn) /213 5.4 mtd驅動 /214 5.4.1 mtd驅動的功能 /214 5.4.2 mtd驅動的構架 /215 5.4.3 mtd驅動的原理及實現(xiàn) /215 5.5 event輸入設備驅動 /223 5.5.1 input的系統(tǒng)構架 /223 5.5.2 event輸入驅動的構架 /224 5.5.3 event輸入驅動的原理 /224 5.5.4 event輸入驅動的實現(xiàn) /225 5.6 藍牙驅動(bluetooth)/235 5.6.1 bluetooth驅動的構架 /235 5.6.2 bluez的原理及實現(xiàn) /237 5.7 wlan驅動(wi-fi)/244 5.7.1 wlan構架 /244 5.7.2 wi-fi驅動的實現(xiàn)原理 /245 5.8 小結 /245 第6章 原生庫的原理及實現(xiàn) /246 6.1 系統(tǒng)c庫(bionic libc)/247 6.1.1 bionic libc功能概述 /247 6.1.2 bionic libc實現(xiàn)原理 /248 6.2 功能庫 /258 6.2.1 webkit構架與實現(xiàn) /258 6.2.2 多媒體框架與實現(xiàn) /275 6.2.3 android sqlite框架及原理 /285 6.3 擴展庫 /289 6.3.1 skia底層庫分析 /289 6.3.2 opengl底層庫分析 /299 6.3.3 android-openssl實現(xiàn)及運用 /306 6.3.4 freetype及font engine manager /317 6.3.5 freetype結構體系和渲染流程 /317 6.4 原生服務 /328 6.4.1 audioflinger實現(xiàn) /328 6.4.2 surfaceflinger實現(xiàn) /341 6.5 小結 /353 第7章 硬件抽象層的原理與實現(xiàn) /354 7.1 硬件抽象層的實現(xiàn)原理 /355 7.1.1 android hal構架 /355 7.1.2 android hal的實現(xiàn) /357 7.2 android overlay構架與實現(xiàn) /361 7.2.1 android overlay系統(tǒng)構架 /361 7.2.2 overlay hal框架與實現(xiàn) /362 7.2.3 overlay與surfacefinger /369 7.3 android camera 構架與實現(xiàn) /375 7.3.1 android camera系統(tǒng)構架 /375 7.3.2 camera hal框架與實現(xiàn) /377 7.3.3 camera本地實現(xiàn) /385 7.4 android audio hal實現(xiàn) /394 7.4.1 audio hal框架 /395 7.4.2 android默認的audio hal實現(xiàn) /398 7.4.3 dump功能的audio hal實現(xiàn) /400 7.4.4 基于a2dp的藍牙音頻設備hal實現(xiàn) /402 7.4.5 模擬器上的audio hal實現(xiàn) /403 7.5 android ril實現(xiàn) /404 7.5.1 android ril構架 /404 7.5.2 radiooptiongs實現(xiàn) /407 7.5.3 libril庫實現(xiàn) /409 7.5.4 reference-ril庫實現(xiàn) /415 7.5.5 rild守護進程實現(xiàn) /418 7.5.6 request流程分析 /423 7.5.7 response流程分析 /427 7.6 android sensor hal實現(xiàn) /434 7.6.1 android sensor構建 /434 7.6.2 sensor hal接口 /435 7.6.3 sensor hal實現(xiàn) /438 7.7 android wifi hal實現(xiàn) /441 7.7.1 android wifi系統(tǒng)構架 /441 7.7.2 wpa_supplicant框架 /442 7.7.3 wifi hal實現(xiàn) /444 7.8 android藍牙本地實現(xiàn) /447 7.8.1 android藍牙構架 /447 7.8.2 bluez結構體系 /448 7.8.3 bluez適配層 /452 7.9 android 定位實現(xiàn) /453 7.9.1 定位系統(tǒng)構架 /453 7.9.2 gps hal實現(xiàn) /454 7.10 android power hal實現(xiàn) /459 7.11 android vibrator hal實現(xiàn) /461 7.12 小結 /462 第8章 dalvik虛擬機的構架、原理與實現(xiàn) /463 8.1 dalvik虛擬機概述 /464 8.1.1 什么是dalvik虛擬機 /464 8.1.2 dalvik虛擬機的功能 /464 8.1.3 dalvik虛擬機與java虛擬機的區(qū)別 /465 8.2 dalvik構架與實現(xiàn) /466 8.2.1 dalvik系統(tǒng)構架 /466 8.2.2 dx和dexdump工具 /468 8.2.3 .dex文件格式解析 /470 8.2.4 dalvik內部機制 /487 8.2.5 dalvik進程管理 /492 8.2.6 dalvik內存管理 /501 8.2.7 dalvik加載器 /509 8.2.8 。
聲明:本網站尊重并保護知識產權,根據(jù)《信息網絡傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個月內通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學習鳥. 頁面生成時間:3.081秒