出版時(shí)間:2012-7 出版社:電子工業(yè)出版社 作者:馬爾科·加爾根塔 頁(yè)數(shù):261 字?jǐn)?shù):426000 譯者:李亞舟,任中龍,杜鋼
Tag標(biāo)簽:無(wú)
前言
本書源自于Marakana Android 訓(xùn)練營(yíng)幾年來(lái)的培訓(xùn)課程,其學(xué)員包括數(shù)千名工作于全球四大洲中頂尖移動(dòng)設(shè)備公司的軟件開發(fā)人員。在教授這門課程的過(guò)程中,隨著時(shí)間的推移,我逐漸發(fā)現(xiàn)了其中有效與無(wú)效的內(nèi)容。在Marakana開發(fā)了Android訓(xùn)練營(yíng)培訓(xùn)課程之后,我又對(duì)其進(jìn)行了數(shù)次巨大的調(diào)整,終于將其中的精華凝結(jié)為此書。 在Java還未被稱為Java之前,我就已經(jīng)開始使用它了。從一開始,我就對(duì)嵌入式開發(fā)非常感興趣,因?yàn)檫@樣我就可以在日常生活中的各種設(shè)備上編程。后來(lái)Java在Web應(yīng)用開發(fā)領(lǐng)域中得到極大發(fā)展,因此我之前十年的經(jīng)驗(yàn)主要集中在構(gòu)建大型企業(yè)系統(tǒng)上。然后Android出現(xiàn)了,我再一次興奮地投入到為非計(jì)算機(jī)設(shè)備開發(fā)軟件的工作中。而我現(xiàn)在的興趣,是在那些甚至不是手機(jī)的設(shè)備上使用Android?! ”緯鴷?huì)向了解Java(或者某種相似的語(yǔ)言)的人,講解如何開發(fā)一個(gè)適度復(fù)雜的Android應(yīng)用程序。我希望你能夠感到本書非常容易理解,并且以實(shí)例為基礎(chǔ)的學(xué)習(xí)過(guò)程能讓你感到相當(dāng)有動(dòng)力。本書的目標(biāo)是使你按照Android的方式來(lái)“思考”?! ?nèi)容簡(jiǎn)介 第1章,Android概述 簡(jiǎn)單介紹Android及其歷史?! 〉?章,Android的架構(gòu) 從全局的角度概括地介紹了Android操作系統(tǒng)及其各部分。 第3章,快速入門 幫助你配置Android應(yīng)用程序開發(fā)環(huán)境。 第4章,基本構(gòu)件 講解開發(fā)人員用于創(chuàng)建一個(gè)應(yīng)用程序的Android組件。 第5章,Yamba項(xiàng)目簡(jiǎn)介 講解我們會(huì)貫穿全書的Yamba應(yīng)用程序,并通過(guò)一個(gè)例子來(lái)學(xué)習(xí)Android的諸多特性。 第6章,Android用戶界面 講解如何為你的應(yīng)用程序設(shè)計(jì)用戶界面。 第7章,首選項(xiàng)、文件系統(tǒng)、選項(xiàng)菜單及Intent 介紹一些操作系統(tǒng)中能夠簡(jiǎn)化開發(fā)人員工作的特性?! 〉?章,服務(wù) 介紹如何創(chuàng)建一個(gè)Android服務(wù)來(lái)處理后臺(tái)任務(wù)。 第9章,數(shù)據(jù)庫(kù) 講解Android框架對(duì)內(nèi)置SQLite數(shù)據(jù)庫(kù)的支持,以及如何在你的應(yīng)用程序中使用其來(lái)保存數(shù)據(jù)?! 〉?0章,列表與適配器 介紹Android的一個(gè)重要特性,它允許大數(shù)據(jù)集合高效地鏈接較小的屏幕?! 〉?1章,廣播接收器(Broadcast Receiver) 介紹了如何應(yīng)用Android中的“發(fā)布-訂閱”機(jī)制來(lái)響應(yīng)系統(tǒng)和用戶定義的各種消息?! 〉?2章,內(nèi)容提供器(Content Provider) 介紹如何設(shè)計(jì)一個(gè)內(nèi)容提供器在應(yīng)用程序之間共享數(shù)據(jù),在本章中,我們將通過(guò)它來(lái)讓應(yīng)用程序小部件在主屏幕上顯示數(shù)據(jù)。 第13章, 系統(tǒng)服務(wù) 介紹可供開發(fā)者利用的一些系統(tǒng)服務(wù)?! 〉?4章,Android接口描述語(yǔ)言(AIDL) 介紹如何構(gòu)建一個(gè)進(jìn)程間通信機(jī)制,使得另一個(gè)應(yīng)用程序可以遠(yuǎn)程訪問(wèn)一個(gè)服務(wù)。 第15章,Native Development Kit(NDK) 介紹在你的應(yīng)用程序中編寫本地C代碼?! ≈轮x 本書之付梓面世離不開大家的協(xié)作。首先,要感謝O'Reilly的編輯Andy Oram和BrianJepson。Andy,你的建議總是一針見血,讓我受益良多。Brian,感謝你說(shuō)服我開始本書的寫作?! 「兄x我的所有技術(shù)編輯:Dan Bornstein、Hervé Guihot、Frank Maker III和Bill Schrickel。感謝你們孜孜不倦地審讀我未成形的原稿,以及你們提供的寶貴建議?! ]有我們?cè)诖罅靠蛻舳松纤龅膶?shí)際測(cè)試,本書肯定不是現(xiàn)在的樣子。你們絕對(duì)是Android的先驅(qū)者,你們的項(xiàng)目令人印象深刻。感謝你們的信任?! 「兄x我在Marakana的團(tuán)隊(duì):Aleksandar (Sa·a) Gargenta、Ken Jones和Laurent Tonon。你們使用本書的原稿作為Android Bootcamp的教材,并給了我第一手的反饋。這里要特別感謝曾多次督促我回到寫字臺(tái)的Sa·a:如果沒你深刻的技術(shù)評(píng)論,本書很可能幾個(gè)月就草草了事了。 最后,深深地感謝我深愛的妻子Lisa和女兒Kylie。我知道當(dāng)我一心撲在寫作上時(shí)你們所做出的犧牲。感謝你們對(duì)我一如既往的支持。
內(nèi)容概要
《Learning
Android(中文版)》為Android開發(fā)入門圖書,循序漸進(jìn)地介紹了如何利用Android基本構(gòu)件來(lái)實(shí)現(xiàn)構(gòu)造用戶界面、存儲(chǔ)數(shù)據(jù)、連接網(wǎng)絡(luò)等實(shí)踐中必不可少的需求。本書以親手實(shí)現(xiàn)一個(gè)類Twitter的應(yīng)用為主線,通過(guò)不斷為其添加功能展開講解。而這一學(xué)習(xí)過(guò)程積累出的代碼模式庫(kù),可以靈活運(yùn)用于真實(shí)Android應(yīng)用開發(fā)。本書內(nèi)容包括但不限于:Android平臺(tái)概覽、Android設(shè)計(jì)架構(gòu)、Android開發(fā)環(huán)境配置、基本Android的用戶界面構(gòu)建、UI元件組織方法、構(gòu)建執(zhí)行后臺(tái)任務(wù)與更新數(shù)據(jù)的服務(wù)、AIDL與NDK介紹等。
作者簡(jiǎn)介
Marko Gargenta,是舊金山Marakana培訓(xùn)公司的創(chuàng)始人與首席Android專家。他創(chuàng)建了Android
Bootcamp與AndroidInternals兩門課程,并培訓(xùn)了來(lái)自四大洲超過(guò)1000名開發(fā)者。他的客戶包括高通、索尼愛立信、摩托羅拉、夏普、思科與美國(guó)國(guó)防部。
書籍目錄
前言
第1章 Android概述
概述
完整性
開源平臺(tái)
為移動(dòng)設(shè)備而設(shè)計(jì)
歷史
Google的動(dòng)機(jī)
開放手持設(shè)備聯(lián)盟
Android的版本
總結(jié)
第2章 Android的架構(gòu)
架構(gòu)概述.
Linux系統(tǒng)
可移植性
安全性
豐富的特性
本地庫(kù)
Dalvik 虛擬機(jī)
Android與Java
應(yīng)用程序框架
應(yīng)用程序
APK文件
應(yīng)用程序簽名
應(yīng)用程序發(fā)布
總結(jié)
第3章 快速入門
安裝Android SDK
設(shè)置PATH環(huán)境變量
安裝 Eclipse
Eclipse的工作區(qū)
安裝Android 開發(fā)工具
Hello, World程序
創(chuàng)建新項(xiàng)目
Manifest文件
Layout(布局)XML代碼
Strings(字符串)文件
R(資源)文件
Java源碼文件
仿真器
仿真器和真機(jī)
總結(jié).
第4章 基本構(gòu)件
什么是基本構(gòu)件
一個(gè)實(shí)際的例子
活動(dòng)(Activity)
活動(dòng)的生命周期
Intent
服務(wù)(Service)
內(nèi)容提供器(Content Provider).
廣播接收器(Broadcast Receiver)
應(yīng)用程序上下文(Application Context)
總結(jié).
第5章 Yamba項(xiàng)目簡(jiǎn)介
Yamba 應(yīng)用程序
設(shè)計(jì)原則
項(xiàng)目設(shè)計(jì)
第1部分:Android用戶界面
構(gòu)建一個(gè)活動(dòng)
網(wǎng)絡(luò)和多線程
調(diào)試Android 程序
第2部分:首選項(xiàng)、文件系統(tǒng)、選項(xiàng)菜單及Intent 活動(dòng)
菜單系統(tǒng)與Intent.
文件系統(tǒng)
第3部分:Android服務(wù)
服務(wù)應(yīng)用程序?qū)ο?br />第4部分:使用數(shù)據(jù)庫(kù).
SQLite及Android對(duì)它的支持
再次重構(gòu)代碼
第5部分:列表(List)與適配器(Adapter)
時(shí)間軸(Timeline)活動(dòng)
再重構(gòu)一次
第6部分:廣播接收器(Broadcast Receiver)
啟動(dòng)接收器與網(wǎng)絡(luò)連接接收器
時(shí)間軸(Timeline)接收器
權(quán)限
第7部分:內(nèi)容提供器(Content Provider)
狀態(tài)數(shù)據(jù)
Android小部件
第8部分:系統(tǒng)服務(wù)
指南針與位置
Intent服務(wù)、提醒及通知、總結(jié)
第6章 Android用戶界面
創(chuàng)建用戶界面的兩種方法
聲明式的用戶界面
編程式的用戶界面
各取所長(zhǎng)
控件與布局
LinearLayout
TableLayout
FrameLayout
RelativeLayout
AbsoluteLayout
啟動(dòng)Yamba項(xiàng)目
StatusActivity布局
控件的重要屬性
字符串資源
StatusActivity Java類
編寫具體應(yīng)用的對(duì)象,以及初始化相關(guān)代碼
保存文件:編譯代碼和構(gòu)建項(xiàng)目
添加庫(kù)jtwitter.jar
更新Manifest文件,獲取Internet權(quán)限
Android的日志機(jī)制
LogCat
Android的線程機(jī)制
單線程執(zhí)行
多線程執(zhí)行
AsyncTask.
其他UI事件
添加圖片與色彩
添加圖片
添加色彩
多版本資源文件
優(yōu)化用戶界面
Hierarchy Viewer 工具
總結(jié)
第7章 首選項(xiàng)、文件系統(tǒng)、選項(xiàng)菜單及Intent
首選項(xiàng)
資源文件
PrefsActivity類
修改Manifest文件
選項(xiàng)菜單
菜單的資源文件
Android系統(tǒng)資源.
更新StatusActivity,加載菜單
更新StatusActivity,捕獲菜單事件
字符串資源
Shared Preferences
文件系統(tǒng)簡(jiǎn)介
瀏覽文件系統(tǒng)
文件系統(tǒng)的分區(qū)
系統(tǒng)分區(qū)
SDCard 分區(qū).
用戶數(shù)據(jù)分區(qū)
文件系統(tǒng)的安全機(jī)制
總結(jié)
第8章 服務(wù)
Yamba的Application對(duì)象
YambaApplication類
更新Manifest文件
簡(jiǎn)化 StatusActivity
UpdaterService
創(chuàng)建 UpdaterService Java類
更新Manifest文件
添加菜單項(xiàng)
更新選項(xiàng)菜單的事件處理
測(cè)試服務(wù)
在服務(wù)中循環(huán)
測(cè)試服務(wù)
從 Twitter 讀取數(shù)據(jù)
測(cè)試服務(wù)
總結(jié)
第9章 數(shù)據(jù)庫(kù)
關(guān)于 SQLite
DbHelper類
數(shù)據(jù)庫(kù)模式及其創(chuàng)建
4種主要操作
游標(biāo)
第一個(gè)例子
修改UpdaterService
測(cè)試服務(wù)
數(shù)據(jù)庫(kù)約束
重構(gòu)數(shù)據(jù)庫(kù)訪問(wèn)
總結(jié)
第10章 列表與適配器
TimelineActivity
TimelineActivity的基本布局
ScrollView簡(jiǎn)介
創(chuàng)建TimelineActivity類
關(guān)于適配器
為TimelineActivity添加ListView
創(chuàng)建一個(gè)單行消息布局
在TimelineActivity.java中創(chuàng)建適配器
TimelineAdapter
ViewBinder: 取代TimelineAdapter的更好選擇
更新Manifest文件
程序初始設(shè)置
Base Activity
服務(wù)開關(guān)
總結(jié)
第11章 廣播接收器(Broadcast Receiver)
關(guān)于Broadcast Receiver
BootReceiver
將BootReceiver注冊(cè)到AndroidManifest文件
測(cè)試 Boot Receiver
TimelineReceiver
廣播Intent.
Network Receiver.
添加用于發(fā)送和接收廣播的自定義權(quán)限
在Manifest文件中聲明權(quán)限
為更新服務(wù)應(yīng)用權(quán)限機(jī)制
為TimelineReceiver應(yīng)用權(quán)限機(jī)制
總結(jié)
第12章 內(nèi)容提供器(Content Provider)
創(chuàng)建Content Provider.
定義URI
插入數(shù)據(jù)
更新數(shù)據(jù)
刪除數(shù)據(jù)
查詢數(shù)據(jù)
獲取數(shù)據(jù)類型
更新Android Manifest文件
在小部件中使用Content Provider
實(shí)現(xiàn)YambaWidget類
創(chuàng)建XML布局
創(chuàng)建AppWidgetProviderInfo文件
更新Manifest文件
測(cè)試小部件
總結(jié)
第13章 系統(tǒng)服務(wù)
實(shí)例:指南針.
使用系統(tǒng)服務(wù)的一般步驟
獲取指南針的更新
指南針的主活動(dòng)
自定義的表盤小部件
位置服務(wù)
實(shí)例: Where Am I
用上位置服務(wù),重構(gòu)Yamba
更新首選項(xiàng)
更新Yamba程序.
更新Status Activity
Intent服務(wù)
Alarms
在首選項(xiàng)中添加Interval選項(xiàng)
更新BootReceiver
發(fā)送通知
總結(jié)
第14章 Android接口描述語(yǔ)言.
實(shí)現(xiàn)遠(yuǎn)程服務(wù)
編寫AIDL
實(shí)現(xiàn)服務(wù)
實(shí)現(xiàn)一個(gè)Parcel
注冊(cè)到Manifest文件
實(shí)現(xiàn)遠(yuǎn)程客戶端
綁定到遠(yuǎn)程服務(wù)
測(cè)試運(yùn)行
總結(jié)
第15章 Native Development Kit (NDK)
NDK是什么
NDK的功能
工具鏈
打包庫(kù)文件
文檔與標(biāo)準(zhǔn)頭文件
NDK實(shí)例:計(jì)算菲波那契數(shù)列
FibLib
JNI 頭文件
C 實(shí)現(xiàn)
Makefile
構(gòu)建共享庫(kù)
Fibonacci Activity
測(cè)試所有的工作
總結(jié)
索引
章節(jié)摘錄
版權(quán)頁(yè): 插圖: 如上,這都是一些很直接的需求。通過(guò)使用Android提供的構(gòu)件,你可以輕松地將以上需求分解成各個(gè)概念性的單元,從而單獨(dú)實(shí)現(xiàn)它們,然后再將它們拼起來(lái)形成一個(gè)完整的包。 活動(dòng)(Activity) 一個(gè)活動(dòng)(activity),通常是用戶在某一時(shí)刻,存設(shè)備上看到的單獨(dú)界面。一個(gè)應(yīng)用程序通常含有多個(gè)活動(dòng),用戶可在其間進(jìn)行切換。對(duì)用戶而言,這就是程序的外觀部分。我通常使用網(wǎng)站來(lái)比喻活動(dòng)。就像一個(gè)含有多個(gè)網(wǎng)頁(yè)的網(wǎng)站一樣,Android程序也包含多個(gè)活動(dòng)。如同網(wǎng)站有一個(gè)“主頁(yè)”一樣,Android程序也有一個(gè)“主活動(dòng)”(mainactivity)——通常是啟動(dòng)程序時(shí)顯示的第一個(gè)界面。為了方便用戶在多個(gè)頁(yè)面之間跳轉(zhuǎn),網(wǎng)站會(huì)提供導(dǎo)航功能,Android程序也應(yīng)該有同樣的功能。 在網(wǎng)絡(luò)上,你可以從某網(wǎng)站的一個(gè)頁(yè)面跳轉(zhuǎn)到另一個(gè)網(wǎng)站的頁(yè)面。類似地,在Android中,你可以在一個(gè)應(yīng)用程序中查看某個(gè)活動(dòng),隨后又可以啟動(dòng)另一個(gè)完全獨(dú)立的應(yīng)用程序中的其他活動(dòng)。例如,在聯(lián)系人應(yīng)用程序中,你選擇向某個(gè)朋友發(fā)送信息,然后就會(huì)啟動(dòng)短信息應(yīng)用程序的活動(dòng),供你書寫短信息。 活動(dòng)的生命周期 啟動(dòng)一個(gè)活動(dòng)可能會(huì)消耗大量資源。它可能會(huì)涉及新建一個(gè)Linux進(jìn)程、為UI對(duì)象申請(qǐng)內(nèi)存空間、從XML布局填充所有對(duì)象,以及創(chuàng)建整個(gè)界向。既然我們?cè)趩?dòng)一個(gè)活動(dòng)上花費(fèi)了這么多工夫,一旦用戶離開該界面,如果只是將它銷毀那就實(shí)在太浪費(fèi)了。為了避免這種浪費(fèi),Android通過(guò)活動(dòng)管理器(Activity Manager)來(lái)管理活動(dòng)的生命周期。 活動(dòng)管理器負(fù)責(zé)創(chuàng)建、銷毀和管理活動(dòng)。例如,當(dāng)用戶第一次啟動(dòng)了一個(gè)應(yīng)用程序,活動(dòng)管理器會(huì)創(chuàng)建它的活動(dòng),并將活動(dòng)顯示到界面上。隨后,當(dāng)用戶切換界面時(shí),活動(dòng)管理器會(huì)將之前這個(gè)活動(dòng)移動(dòng)到其他地方。這樣,如果用戶想退回到之前的活動(dòng),就可以更加快速地啟動(dòng)這個(gè)活動(dòng)。用戶不再使用的舊活動(dòng),過(guò)一段時(shí)候后會(huì)被銷毀,以便為當(dāng)前活動(dòng)釋放更多的空間。這個(gè)機(jī)制可以幫助提高用戶界面的速度,并改進(jìn)整個(gè)用戶體驗(yàn)。
編輯推薦
《Learning Android(中文版)》是由電子工業(yè)出版社出版。
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載