商品簡介
《Learning Android(中文版)》為Android開發入門圖書,循序漸進地介紹了如何利用Android基本構件來實現構造用戶界面、存儲數據、連接網絡等實踐中必不可少的需求。本書以親手實現一個類Twitter的應用為主線,通過不斷為其添加功能展開講解。而這一學習過程積累出的代碼模式庫,可以靈活運用于真實Android應用開發。本書內容包括但不限於:Android平臺概覽、Android設計架構、Android開發環境配置、基本Android的用戶界面構建、UI元件組織方法、構建執行後台任務與更新數據的服務、AIDL與NDK介紹等。·
作者簡介
Marko Gargenta,是舊金山Marakana培訓公司的創始人與首席Android專家。他創建了Android Bootcamp與AndroidInternals兩門課程,並培訓了來自四大洲超過1000名開發者。他的客戶包括高通、索尼愛立信、摩托羅拉、夏普、思科與美國國防部。·
名人推薦
《Learning Android(中文版)》是由電子工業出版社出版。
目次
前言第1章 Android概述概述完整性開源平臺為移動設備而設計歷史Google的動機開放手持設備聯盟Android的版本總結第2章 Android的架構架構概述.Linux系統可移植性安全性豐富的特性本地庫Dalvik 虛擬機Android與Java應用程序框架應用程序APK文件應用程序簽名應用程序發佈總結第3章 快速入門安裝Android SDK設置PATH環境變量安裝 EclipseEclipse的工作區安裝Android 開發工具Hello, World程序創建新項目Manifest文件Layout(佈局)XML代碼Strings(字符串)文件R(資源)文件Java源碼文件仿真器仿真器和真機總結.第4章 基本構件什麼是基本構件一個實際的例子活動(Activity)活動的生命週期Intent服務(Service)內容提供器(Content Provider).廣播接收器(Broadcast Receiver)應用程序上下文(Application Context)總結.第5章 Yamba項目簡介Yamba 應用程序設計原則項目設計第1部分:Android用戶界面構建一個活動網絡和多線程調試Android 程序第2部分:首選項、文件系統、選項菜單及Intent 活動菜單系統與Intent.文件系統第3部分:Android服務服務應用程序對象第4部分:使用數據庫.SQLite及Android對它的支持再次重構代碼第5部分:列表(List)與適配器(Adapter)時間軸(Timeline)活動再重構一次第6部分:廣播接收器(Broadcast Receiver)啟動接收器與網絡連接接收器時間軸(Timeline)接收器權限第7部分:內容提供器(Content Provider)狀態數據Android小部件第8部分:系統服務指南針與位置Intent服務、提醒及通知、總結第6章 Android用戶界面創建用戶界面的兩種方法聲明式的用戶界面編程式的用戶界面各取所長控件與佈局LinearLayoutTableLayoutFrameLayoutRelativeLayoutAbsoluteLayout啟動Yamba項目StatusActivity佈局控件的重要屬性字符串資源StatusActivity Java類編寫具體應用的對象,以及初始化相關代碼保存文件:編譯代碼和構建項目添加庫jtwitter.jar更新Manifest文件,獲取Internet權限Android的日誌機制LogCatAndroid的線程機制單線程執行多線程執行AsyncTask.其他UI事件添加圖片與色彩添加圖片添加色彩多版本資源文件優化用戶界面Hierarchy Viewer 工具總結第7章 首選項、文件系統、選項菜單及Intent首選項資源文件PrefsActivity類修改Manifest文件選項菜單菜單的資源文件Android系統資源.更新StatusActivity,加載菜單更新StatusActivity,捕獲菜單事件字符串資源Shared Preferences文件系統簡介瀏覽文件系統文件系統的分區系統分區SDCard 分區.用戶數據分區文件系統的安全機制總結第8章 服務Yamba的Application對象YambaApplication類更新Manifest文件簡化 StatusActivityUpdaterService創建 UpdaterService Java類更新Manifest文件添加菜單項更新選項菜單的事件處理測試服務在服務中循環測試服務從 Twitter 讀取數據測試服務總結第9章 數據庫關於 SQLiteDbHelper類數據庫模式及其創建4種主要操作標第一個例子修改UpdaterService測試服務數據庫約束重構數據庫訪問總結第10章 列表與適配器TimelineActivityTimelineActivity的基本佈局ScrollView簡介創建TimelineActivity類關於適配器為TimelineActivity添加ListView創建一個單行消息佈局在TimelineActivity.java中創建適配器TimelineAdapterViewBinder: 取代TimelineAdapter的更好選擇更新Manifest文件程序初始設置Base Activity服務開關總結第11章 廣播接收器(Broadcast Receiver)關於Broadcast ReceiverBootReceiver將BootReceiver註冊到AndroidManifest文件測試 Boot ReceiverTimelineReceiver廣播Intent.Network Receiver.添加用於發送和接收廣播的自定義權限在Manifest文件中聲明權限為更新服務應用權限機制為TimelineReceiver應用權限機制總結第12章 內容提供器(Content Provider)創建Content Provider.定義URI插入數據更新數據刪除數據查詢數據獲取數據類型更新Android Manifest文件在小部件中使用Content Provider實現YambaWidget類創建XML佈局創建AppWidgetProviderInfo文件更新Manifest文件測試小部件總結第13章 系統服務實例:指南針.使用系統服務的一般步驟獲取指南針的更新指南針的主活動自定義的錶盤小部件位置服務實例: Where Am I用上位置服務,重構Yamba更新首選項更新Yamba程序.更新Status ActivityIntent服務Alarms在首選項中添加Interval選項更新BootReceiver發送通知總結第14章 Android接口描述語言.實現遠程服務編寫AIDL實現服務實現一個Parcel註冊到Manifest文件實現遠程客戶端綁定到遠程服務測試運行總結第15章 Native Development Kit (NDK)NDK是什麼NDK的功能工具鏈打包庫文件文檔與標準頭文件NDK實例:計算菲波那契數列FibLibJNI 頭文件C 實現Makefile構建共享庫Fibonacci Activity測試所有的工作總結索引·
書摘/試閱
如上,這都是一些很直接的需求。通過使用Android提供的構件,你可以輕松地將以上需求分解成各個概念性的單元,從而單獨實現它們,然后再將它們拼起來形成一個完整的包。
活動(Activity)
一個活動(activity),通常是用戶在某一時刻,存設備上看到的單獨界面。一個應用程序通常含有多個活動,用戶可在其間進行切換。對用戶而言,這就是程序的外觀部分。我通常使用網站來比喻活動。就像一個含有多個網頁的網站一樣,Android程序也包含多個活動。如同網站有一個“主頁”一樣,Android程序也有一個“主活動”(mainactivity)——通常是啟動程序時顯示的第一個界面。為了方便用戶在多個頁面之間跳轉,網站會提供導航功能,Android程序也應該有同樣的功能。
在網絡上,你可以從某網站的一個頁面跳轉到另一個網站的頁面。類似地,在Android中,你可以在一個應用程序中查看某個活動,隨后又可以啟動另一個完全獨立的應用程序中的其他活動。例如,在聯系人應用程序中,你選擇向某個朋友發送信息,然后就會啟動短信息應用程序的活動,供你書寫短信息。
活動的生命周期
啟動一個活動可能會消耗大量資源。它可能會涉及新建一個Linux進程、為UI對象申請內存空間、從XML布局填充所有對象,以及創建整個界向。既然我們在啟動一個活動上花費了這么多工夫,一旦用戶離開該界面,如果只是將它銷毀那就實在太浪費了。為了避免這種浪費,Android通過活動管理器(Activity Manager)來管理活動的生命周期。
活動管理器負責創建、銷毀和管理活動。例如,當用戶第一次啟動了一個應用程序,活動管理器會創建它的活動,并將活動顯示到界面上。隨后,當用戶切換界面時,活動管理器會將之前這個活動移動到其他地方。這樣,如果用戶想退回到之前的活動,就可以更加快速地啟動這個活動。用戶不再使用的舊活動,過一段時候后會被銷毀,以便為當前活動釋放更多的空間。這個機制可以幫助提高用戶界面的速度,并改進整個用戶體驗。