無需精通編程,任何人都可以為Android平臺(tái)輕松創(chuàng)建簡(jiǎn)單的應(yīng)用,《Android應(yīng)用開發(fā)入門》就告訴你如何做到。本書將全程引導(dǎo)你創(chuàng)建并運(yùn)行自己的第一個(gè)Android應(yīng)用程序,語言通俗易懂,示例豐富實(shí)用,能幫你撥開晦澀難懂的術(shù)語迷霧,澄清Android應(yīng)用開發(fā)方面的流言,并通過一步一步的詳細(xì)指導(dǎo)帶你入門。
《Android應(yīng)用開發(fā)入門》以通俗易懂的語言講述如何開發(fā)Android應(yīng)用程序,為你鋪平Android開發(fā)之路。書中提供了清晰的示例,讓學(xué)習(xí)過程更加輕松,幫你快速準(zhǔn)確地領(lǐng)會(huì)相關(guān)概念,掌握開發(fā)方法,從而迅速創(chuàng)建自己的應(yīng)用并讓它運(yùn)行起來。
你將學(xué)習(xí)到以下內(nèi)容。
· 如何武裝你自己和你的電腦,為Android應(yīng)用開發(fā)做好準(zhǔn)備。
· 如何使用Eclipse開發(fā)環(huán)境讓Android開發(fā)更加直接和高效。
· 如何通過清晰的步驟創(chuàng)建簡(jiǎn)單的應(yīng)用,并讓它馬上運(yùn)行起來。
· 如何裝飾應(yīng)用程序,讓它看起來更美觀。
· 如何更好地利用Android的觸摸屏。
· 如何使用各種捷徑和小技巧讓應(yīng)用開發(fā)變得更容易。
· 了解Java和XML的基礎(chǔ)知識(shí),幫你進(jìn)一步開發(fā)更高級(jí)的應(yīng)用。
如果你有Android應(yīng)用的好點(diǎn)子,卻從沒有接觸過編程,那么《Android應(yīng)用開發(fā)入門》非常適合你。你不需要任何計(jì)算機(jī)編程方面的經(jīng)驗(yàn)和技術(shù),只要渴望學(xué)習(xí),知道鼠標(biāo)該怎么拿,Android應(yīng)用開發(fā)的精彩世界就等著你去盡情探索。
零基礎(chǔ) 輕松學(xué)會(huì)Android應(yīng)用開發(fā) 巧入門 從容探索移動(dòng)開發(fā)新世界 大視野 助力Android新起跑線
在過去兩年中,Google的Android操作系統(tǒng)已經(jīng)從一個(gè)幾乎默默無聞的開源軟件,發(fā)展成如今占據(jù)移動(dòng)操作系統(tǒng)1/3市場(chǎng)份額的領(lǐng)導(dǎo)者,并且其份額還在快速攀升。Android已經(jīng)開始占領(lǐng)平板電腦操作系統(tǒng)市場(chǎng),并以GoogleTV向蘋果iTV操作系統(tǒng)的基礎(chǔ)發(fā)起挑戰(zhàn)。目前看來,Android并沒有停下其快速發(fā)展的腳步,對(duì)于本書的讀者來說,這顯然是一個(gè)好消息。
有很多人問我:“我有一個(gè)特別棒的智能手機(jī)應(yīng)用的點(diǎn)子!你能幫我編出來嗎?”我覺得與其自己坐在那里幫所有人編寫應(yīng)用程序,還不如寫一本書出來呢。這本書面向初學(xué)者,介紹如何用免費(fèi)下載、免費(fèi)商用的開源工具來編寫Android應(yīng)用程序,以及如何用這些新學(xué)習(xí)的知識(shí),讓應(yīng)用程序的點(diǎn)子為你帶來收益。
對(duì)象:編程初學(xué)者
正如書名所言,本書假設(shè)你從未使用任何編程語言編寫過任何程序。本書的讀者對(duì)象是從來沒有編寫過一行代碼,也不了解Oracle的Java這樣的面向?qū)ο缶幊蹋ê?jiǎn)稱OOP)語言,以及XML這樣的標(biāo)記語言的人。這兩種開源的編程語言,在編寫Android應(yīng)用程序的過程中都要大量使用。
市面上有很多介紹Java和Android的書,但這些書都假定讀者曾經(jīng)編寫過程序,而且了解關(guān)于OOP的知識(shí)。我想讓對(duì)編程,甚至是對(duì)如何安裝軟件開發(fā)工具包(Software Development Kit,SDK)和集成開發(fā)環(huán)境(Integrated Development Environment, IDE)一無所知的讀者,通過本書的學(xué)習(xí),能夠使用Java和XML來編寫Android應(yīng)用程序。
武器:Android,創(chuàng)新的移動(dòng)開發(fā)環(huán)境
Android是我從事Internet 2.0開發(fā)的得力武器,因?yàn)槲铱梢杂盟鼇頌樗兄髁鞯腎nternet 2.0設(shè)備編寫非常高級(jí)的應(yīng)用程序,這些設(shè)備包括目前能帶來最多收益的三大類平臺(tái):
智能手機(jī)
平板電腦
iTV(交互式電視)
我選擇Android的另一個(gè)原因是它是開源的,免專利費(fèi)用,且行事自由。在發(fā)布應(yīng)用程序之前,我不需要提交給某個(gè)公司去征得他們的同意,只要我的應(yīng)用程序不會(huì)對(duì)他人造成侵害就行。出于這個(gè)原因,以及開源軟件可免費(fèi)用于商業(yè)這一性質(zhì),為Android平臺(tái)開發(fā)應(yīng)用程序幾乎不會(huì)有任何外在風(fēng)險(xiǎn)。
本書內(nèi)容的組織方式
由于本書是面向初學(xué)者的,所以我們需要從零開始,先介紹到哪里去下載以及如何安裝各種Android、Java和Eclipse環(huán)境,如何配置這些環(huán)境,以及如何用它們來開發(fā)和測(cè)試應(yīng)用程序。這些工作可不簡(jiǎn)單,而且不能出錯(cuò),因?yàn)檫@些工具是本書中一切Android開發(fā)、調(diào)試和測(cè)試工作的基礎(chǔ)。
接下來我將帶你了解Android是如何誕生的,Google收購它的原因、過程和時(shí)間,以及它與其他一些軟件開發(fā)平臺(tái)相比有哪些獨(dú)特之處。然后,我將介紹XML、Java、OOP和Android的一些概念,還將涉及Android如何管理屏幕布局。在本書后半部分的章節(jié)中,我們會(huì)將這些概念付諸實(shí)踐,這些章節(jié)將按照應(yīng)用程序開發(fā)中最具邏輯的順序,來解釋Android中最重要的一些概念。
在本書的后半部分,我們將介紹如何設(shè)計(jì)用戶界面(User Interface,UI)。用戶界面是用戶與Android應(yīng)用程序進(jìn)行交互的前端界面。接下來我們將通過事件處理機(jī)制,介紹UI是如何與應(yīng)用程序交流的。為了讓你的應(yīng)用程序看上去更酷,我們會(huì)介紹圖像、動(dòng)畫和視頻的使用,然后還將介紹一些高階的話題,如數(shù)據(jù)庫和通信。
最后,我們將帶你了解一些Android的高級(jí)特性。你可能需要在讀完本書之后再學(xué)習(xí)這些內(nèi)容,因?yàn)樗鼈儗?duì)于一本Android基礎(chǔ)教程來說太過高深了,但是它們卻能實(shí)現(xiàn)當(dāng)今智能手機(jī)開發(fā)中一些非常酷的功能。
在講解所有話題和概念時(shí),我們會(huì)展示IDE的截圖以及一些可視化的例子,然后帶你一步一步地完成一些實(shí)例,加深你對(duì)這些概念的理解。有時(shí)候我們會(huì)回顧之前講過的一些話題,以便你理解得更加深入,并對(duì)所學(xué)的技能舉一反三。這種方式可以讓初學(xué)編程的讀者反復(fù)應(yīng)用開發(fā)技能,并在進(jìn)步中獲得成就感。
成功的秘訣
學(xué)習(xí)開發(fā)Android應(yīng)用程序的過程,就是你與本書中所介紹的工具和技術(shù)(Eclipse、XML、Java、Android等)進(jìn)行交互的過程。正如學(xué)習(xí)一項(xiàng)體育運(yùn)動(dòng)一樣,需要學(xué)習(xí)技能并且每天練習(xí)。要深入理解每一個(gè)概念,你需要親手嘗試書中的實(shí)例和練習(xí),如果需要的話,最好多重復(fù)幾次。
搞懂了一個(gè)概念,并不代表你懂得如何創(chuàng)造性地、有效地應(yīng)用這一概念。你需要勤加練習(xí),當(dāng)最終在應(yīng)用情景中理解了這個(gè)概念,并理解了與之相關(guān)的其他概念時(shí),你就會(huì)體會(huì)到一種茅塞頓開的喜悅。
在這本基礎(chǔ)教程中,你將學(xué)習(xí)一些Android的工作原理。通過書中的練習(xí),你會(huì)了解更多Android內(nèi)部的秘密。當(dāng)你編譯、運(yùn)行、調(diào)試程序時(shí),還將學(xué)到一些書中并沒有特別提到的新知識(shí)。花點(diǎn)時(shí)間測(cè)試你的代碼,搞清楚為什么它沒有達(dá)到你所設(shè)想的效果,或者嘗試增加些新的功能,總之,這個(gè)學(xué)習(xí)的過程是非常寶貴的。
當(dāng)然,調(diào)試的過程對(duì)于初學(xué)者來說可能非常痛苦,你可能會(huì)抓狂到想對(duì)著顯示器來一槍。你會(huì)懷疑自己到底為什么要這么做,以及自己是否有能力去解決所遇到的問題。在編程過程中受挫是很正常的,即便是最有經(jīng)驗(yàn)的開發(fā)者也會(huì)遇到問題。
正如運(yùn)動(dòng)員一樣,你練習(xí)得越刻苦,技術(shù)就會(huì)越好。作為一名Android開發(fā)者,你可以做很多了不起的事,整個(gè)世界都由你做主,而最令你欣慰的成就莫過于看到自己的應(yīng)用在Android應(yīng)用商店里上架。當(dāng)然,要實(shí)現(xiàn)這些需要付出一些代價(jià),那就是花時(shí)間不斷磨練你的代碼。
這里有一些成功的秘訣分享給你。
相信自己能行。你可能是世界上唯一一個(gè)說自己不行的人,所以千萬別對(duì)自己說不行。
認(rèn)真實(shí)踐本書中所有的實(shí)例和練習(xí),有必要的話可以做兩遍,直到弄懂為止。
寫代碼,寫更多的代碼,一直寫下去,不要停。你寫的代碼越多,學(xué)到的就越多。
要有耐心。也許你曾經(jīng)是個(gè)尖子生,可以過目不忘,但Java和XML是不可能看一遍就學(xué)會(huì)的。你必須花很多的時(shí)間來編寫代碼,才能弄清楚在這個(gè)操作系統(tǒng)內(nèi)部到底發(fā)生了什么。
無論做什么,都不要放棄!
所需的軟件、材料和設(shè)備
Java、Android和Eclipse有一個(gè)很大的優(yōu)點(diǎn),它們可以提供32位和64位版本,并且可以用于目前使用最廣泛的三種主流操作系統(tǒng):
Windows
Mac
Linux
Java、Android和Eclipse的另一個(gè)優(yōu)點(diǎn)就是,它們是免費(fèi)的。你可以從網(wǎng)站下載Android。在設(shè)備方面,只要有一臺(tái)主流配置的電腦就行。現(xiàn)在電腦非常便宜,而且你可以安裝一個(gè)免費(fèi)的操作系統(tǒng),如SUSE Linux,來作為你的開發(fā)用操作系統(tǒng)。SUSE Linux V11可以從網(wǎng)站下載。當(dāng)前的最新版本為11.4,它已經(jīng)足夠穩(wěn)定了。
1. 操作系統(tǒng)和IDE
盡管Android可以運(yùn)行在很多平臺(tái)上,但Android開發(fā)者使用最多的Eclipse集成開發(fā)環(huán)境(IDE)一般是運(yùn)行在Intel架構(gòu)的Windows或Linux電腦上的。Eclipse IDE是免費(fèi)的,可以從網(wǎng)站下載。要更好地運(yùn)行Eclipse,你的操作系統(tǒng)應(yīng)該是Windows XP以上,或者SUSE Linux 11.4以上。
2. 軟件開發(fā)工具包
需要從Eclipse網(wǎng)站下載Eclipse IDE,從Google網(wǎng)站下載Android SDK。
3. 雙屏顯示
我建議開發(fā)者在電腦上連接兩臺(tái)顯示器。擁有兩臺(tái)獨(dú)立的顯示器,可以讓你在查看代碼的同時(shí),在另一臺(tái)顯示器上查看輸出窗口和Android模擬器。如今的電腦硬件配置足以滿足這一需求,只要將第二臺(tái)顯示器插在任何一臺(tái)Intel架構(gòu)的電腦的第二個(gè)顯示端口上,并且電腦上正確安裝了顯示適配器,你就可以擁有兩臺(tái)獨(dú)立工作的顯示器了。注意,雙屏顯示不是必需的。如果你沒有雙屏顯示,只要調(diào)整一下打開的窗口,使它們適合自己的屏幕就可以了。
Wallace Jackson,Mind Taffy Design公司首席執(zhí)行官。Mind Taffy創(chuàng)立于1991年,是一家從事新媒體內(nèi)容設(shè)計(jì)和制作的公司。在過去20多年里,Wallace一直引領(lǐng)i3D和富媒體應(yīng)用設(shè)計(jì)領(lǐng)域的潮流,使用不超過512KB的數(shù)據(jù)容量來制作病毒式傳播的數(shù)字內(nèi)容。他曾為世界領(lǐng)先的國(guó)際品牌提供服務(wù),為業(yè)界領(lǐng)先的公司(其中包括財(cái)富500強(qiáng)公司)制作定制化的數(shù)字新媒體項(xiàng)目。Wallace擁有美國(guó)南加州大學(xué)營(yíng)銷戰(zhàn)略專業(yè)MSBA學(xué)位、南加州大學(xué)馬歇爾商學(xué)院管理信息系統(tǒng)設(shè)計(jì)與實(shí)施專業(yè)MBA學(xué)位,以及加州大學(xué)洛杉磯分校安德森管理學(xué)院商業(yè)經(jīng)濟(jì)學(xué)學(xué)士學(xué)位。
周自恒,生于天津,畢業(yè)于上海外國(guó)語大學(xué),現(xiàn)居上海。IT、編程愛好者,自稱偽Geek,初中時(shí)曾在NOI(國(guó)家信息學(xué)奧賽)天津賽區(qū)獲一等獎(jiǎng)。大學(xué)學(xué)習(xí)語言,畢業(yè)后曾任IT系統(tǒng)咨詢顧問,精通英語和日語,譯著有《30天自制操作系統(tǒng)》。
第1章 緒論
1.1 Android是什么
1.2 Android的優(yōu)勢(shì)
1.3 本書范圍
1.3.1 本書所涉及的內(nèi)容
1.3.2 本書未涉及的內(nèi)容
1.4 下載SDK工具
1.4.1 Java
1.4.2 Eclipse
1.4.3 Android SDK
1.5 小結(jié)
第2章 本書內(nèi)容梗概
2.1 Android集成開發(fā)環(huán)境
2.2 Java、XML以及Android的工作原理
2.3 Android應(yīng)用程序框架
2.4 屏幕布局設(shè)計(jì)
2.5 用戶界面設(shè)計(jì)
2.6 圖像與動(dòng)畫設(shè)計(jì)
2.7 交互性
2.8 內(nèi)容提供器
2.9 Intent和Intent過濾器
2.10 Android的未來
2.11 小結(jié)
第3章 配置Android開發(fā)環(huán)境
3.1 安裝Java、Eclipse和Android
3.1.1 Java SE和JRE:應(yīng)用程序開發(fā)的基礎(chǔ)
3.1.2 Eclipse IDE:開發(fā)環(huán)境
3.1.3 Android SDK:用于Eclipse的Android工具包
3.1.4 Android開發(fā)工具:用于Eclipse的Android工具
3.1.5 Eclipse中的Android環(huán)境
3.2 升級(jí)Android SDK
3.3 配置AVD與智能手機(jī)連接
3.3.1 AVD:智能手機(jī)模擬器
3.3.2 USB智能手機(jī)驅(qū)動(dòng)程序:外部設(shè)備
3.4 在64位平臺(tái)上進(jìn)行開發(fā)
3.5 小結(jié)
第4章 Android軟件開發(fā)平臺(tái)介紹
4.1 了解Java SE與Dalvik虛擬機(jī)
4.2 Android工程的目錄結(jié)構(gòu)
4.2.1 典型的默認(rèn)資源目錄
4.2.2 Values目錄
4.3 用好Android XML(你的秘密武器)
4.3.1 屏幕尺寸
4.3.2 桌面時(shí)鐘
4.4 使用Android應(yīng)用程序資源
4.4.1 位圖圖片
4.4.2 可選資源目錄
4.5 啟動(dòng)應(yīng)用程序:AndroidManifest.xml文件
4.6 創(chuàng)建第一個(gè)Android應(yīng)用
4.6.1 啟動(dòng)Eclipse
4.6.2 創(chuàng)建一個(gè)Android工程
4.6.3 查看并編輯應(yīng)用程序文件
4.6.4 在strings.xml中設(shè)置一個(gè)變量的值
4.6.5 運(yùn)行應(yīng)用
4.6.6 添加應(yīng)用程序圖標(biāo)
4.7 小結(jié)
第5章 Android框架概覽
5.1 OOP的基礎(chǔ):對(duì)象
5.1.1 一些OOP術(shù)語
5.1.2 對(duì)象的設(shè)計(jì)圖:類
5.1.3 為類賦予結(jié)構(gòu):繼承
5.1.4 定義接口
5.1.5 將類組織起來:包
5.2 XML概覽
5.3 剖析Android應(yīng)用程序:APK文件
5.4 Android應(yīng)用程序組件
5.4.1 Android活動(dòng):定義UI
5.4.2 Android服務(wù):后臺(tái)處理
5.4.3 廣播接收器:消息和通知
5.4.4 內(nèi)容提供器:數(shù)據(jù)管理
5.5 Android Intent對(duì)象:組件的通信
5.6 Android Manifest XML:組件的聲明
5.7 小結(jié)
第6章 屏幕布局設(shè)計(jì):視圖與布局
6.1 Android視圖結(jié)構(gòu)
6.1.1 使用View類
6.1.2 嵌套視圖:使用ViewGroup類
6.2 定義屏幕布局:使用XML
6.2.1 配置屏幕布局
6.2.2 使用線性布局
6.2.3 使用相對(duì)布局
6.2.4 滑動(dòng)抽屜:擴(kuò)展你的UI
6.2.5 在視圖和布局中使用內(nèi)外邊距和外外邊距
6.2.6 在View中設(shè)置內(nèi)邊距
6.2.7 在ViewGroup中設(shè)置外邊距
6.3 小結(jié)
第7章 按鈕、菜單與對(duì)話框
7.1 使用常見的UI元素
7.1.1 為布局添加圖像按鈕
7.1.2 為布局添加文本
7.1.3 添加圖片
7.2 使用菜單
7.2.1 用XML創(chuàng)建菜單結(jié)構(gòu)
7.2.2 定義菜單項(xiàng)文本
7.2.3 通過Java載入菜單結(jié)構(gòu)
7.2.4 在Android模擬器中運(yùn)行應(yīng)用
7.2.5 讓菜單發(fā)揮作用
7.3 添加對(duì)話框
7.3.1 使用自定義對(duì)話框子類
7.3.2 顯示警告對(duì)話框
7.4 小結(jié)
第8章 Android圖像資源介紹
8.1 圖像資源簡(jiǎn)介
8.1.1 調(diào)用圖片
8.1.2 核心圖像資源子類
8.2 使用位圖
8.2.1 PNG圖片
8.2.2 JPEG和GIF圖片
8.3 創(chuàng)建動(dòng)畫
8.3.1 基于幀的2D動(dòng)畫
8.3.2 補(bǔ)間動(dòng)畫
8.4 使用過渡
8.5 創(chuàng)建9-Patch自定義伸縮圖片
8.6 播放視頻
8.6.1 添加VideoView對(duì)象
8.6.2 為視頻添加Java代碼
8.7 小結(jié)
第9章 增加交互性:處理UI事件
9.1 UI事件概述
9.1.1 監(jiān)聽及處理事件
9.1.2 通過View類處理UI事件
9.1.3 事件回調(diào)方法
9.2 處理onClick事件
9.2.1 為UI元素實(shí)現(xiàn)onClick監(jiān)聽器
9.2.2 向活動(dòng)添加onClick監(jiān)聽器
9.3 Android觸摸屏事件:onTouch
9.4 觸屏版右鍵點(diǎn)擊:onLongClick
9.5 鍵盤事件監(jiān)聽器:onKeyUp和onKeyDown
9.5.1 添加用于鍵盤事件的XML代碼
9.5.2 添加用于鍵盤事件的Java代碼
9.6 上下文菜單:onCreateContextMenu
9.6.1 添加用于上下文菜單的XML代碼
9.6.2 添加用于上下文菜單的Java代碼
9.7 焦點(diǎn)控制
9.7.1 添加用于焦點(diǎn)控制的XML代碼
9.7.2 添加用于焦點(diǎn)控制的Java代碼
9.7.3 設(shè)置焦點(diǎn)可用性
9.8 小結(jié)
第10章 了解內(nèi)容提供器
10.1 Android內(nèi)容提供器概述
10.1.1 數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)
10.1.2 Android內(nèi)置內(nèi)容提供器
10.2 定義內(nèi)容提供器
10.2.1 在Eclipse中創(chuàng)建內(nèi)容提供器示例
10.2.2 定義安全權(quán)限
10.2.3 向聯(lián)系人數(shù)據(jù)庫添加數(shù)據(jù)
10.3 操作數(shù)據(jù)庫
10.3.1 查詢內(nèi)容提供器
10.3.2 向內(nèi)容提供器添加數(shù)據(jù)
10.3.3 修改內(nèi)容提供器數(shù)據(jù)
10.3.4 刪除內(nèi)容提供器數(shù)據(jù)
10.4 小結(jié)
第11章 了解Intent和Intent過濾器
11.1 什么是Intent
11.2 通過Intent對(duì)象傳遞消息
11.3 Intent解析:顯式Intent和隱式Intent
11.3.1 顯式Intent
11.3.2 隱式Intent
11.4 在活動(dòng)中使用Intent
11.4.1 編寫數(shù)字時(shí)鐘活動(dòng)
11.4.2 連接到應(yīng)用程序
11.4.3 發(fā)送Intent
11.5 Android服務(wù):在自己的類中處理數(shù)據(jù)
11.5.1 在服務(wù)中使用Intent
11.5.2 創(chuàng)建服務(wù)
11.5.3 實(shí)現(xiàn)媒體播放功能
11.5.4 將按鈕連接到服務(wù)
11.5.5 運(yùn)行應(yīng)用程序
11.6 在廣播接收器中使用Intent
11.6.1 用XML創(chuàng)建定時(shí)器用戶界面
11.6.2 創(chuàng)建一個(gè)定時(shí)廣播接收器
11.6.3 配置AndroidManifest.xml文件的標(biāo)簽
11.6.4 實(shí)現(xiàn)Intent
11.6.5 在Android 1.5模擬器中運(yùn)行定時(shí)器應(yīng)用程序
11.7 小結(jié)
第12章 探索未來
12.1 創(chuàng)建自定義部件
12.2 位置服務(wù)
12.3 Google地圖
12.4 Google搜索
12.5 數(shù)據(jù)存儲(chǔ)
12.5.1 共享配置選項(xiàng)
12.5.2 內(nèi)部存儲(chǔ)
12.5.3 外部存儲(chǔ)
12.5.4 使用SQLite
12.6 設(shè)備管理:IT安全部署
12.7 用Camera類控制攝像頭
12.8 3D圖形:使用OpenGL ES 1.x
12.9 面部識(shí)別
12.10 音頻池
12.11 媒體錄制
12.12 小結(jié)