圖書信息 使用HTML、CSS和JavaScript開發Android程式 (美)斯塔克(Stark,J.)著
申林,鄒宇譯
16開
184頁
內 容 簡 介 本書是《Building Android Apps with HTML, CSS, and JavaScript》的中文翻譯版,主要介紹了如何使用現有的Web技術構建Android應用程式。
本書的前3章介紹了如何使用基本的HTML、CSS和JavaScript技術構建簡單的網路程式;第4章介紹了使用jQTouch技術使得網路程式與原生程式的體驗相同;第5、6兩章則講述了利用HTML5的客戶端存儲技術使網路程式實現本地存儲,進而成為一個離線套用;第7章利用PhoneGap項目使網路程式也可以操作Android硬體特性;第8章則為開發者描繪了在Android應用程式市場上發布應用程式的流程和一些
技巧 。
本書最大的特點是深入淺出,每一部分都與實例結合,增強了可操作性,更通俗易懂。無論對於希望通過Web技術構建移動套用的初學者,還是對於希望進入Android領域的Web工程師,都是一本不錯的參考書。
譯者序 毋庸置疑,我們正在邁入移動網際網路的時代。想想看,聊QQ、逛淘寶,甚至是偷菜,以前必須打開計算機才能完成的事情,現在唾手可得。特別是iPhone和Android等智慧型手機的流行,更加推進了網際網路移動化的步伐。與此同時,個性化的套用也如雨後春筍般豐富起來。你不僅可以隨時隨地獲取新聞、利用碎片時間讀書或者娛樂社交,甚至可以隨時進行移動辦公和支付,個人信息終端在向移動設備轉移。
這個時代給開發者帶來了新的機會,同時帶來了不少挑戰。機會在於數量更多的用戶、更多樣化的需求和性能更好的移動設備,但這些同樣成為了他們的負擔:往往一個手機套用要適配不同的編程模型、不同的手機硬體和各式各樣的應用程式市場,大大增加了開發和推廣的成本。那有沒有一個靈活、通用而且支持大量應用程式的平台來解決這個挑戰呢?答案是肯定的:運用HTML、CSS和JavaScript這些Web標準技術來構建移動應用程式。這本書就是在這樣的背景下誕生的。
這不是一本介紹程式語言和技巧的書籍,雖然書中大量涉及了HTML、CSS、JavaScript甚至是HTML 5的知識。它更多地充當了“布道者”的角色,通過大量實例,傳達一種思維模式:如何利用熟悉的Web技術,藉助新興框架的優勢,來解決移動領域的新問題。所以如果你之前就熟悉這些Web技術,那將非常得心應手;沒有也沒關係,本書將介紹所用技術的基本概念,你將體驗到一個全新的世界。
本書內容分為8章。前3章介紹網路應用程式的基本概念和優勢,HTML、CSS和JavaScript的基本知識及運用這些Web標準技術構建簡單的、能在Android瀏覽器中正常顯示的網路應用程式。這是本書的基礎,但不難理解,讀者可以更多地關注其中的套用技巧。第4章介紹jQTouch這種工具,它是jQuery的一個外掛程式,幫助實現更優雅的動畫,使得網路應用程式的感官體驗與本地應用程式相同。第5~7章是這本書的精華。第5章介紹了如何利用HTML 5的客戶端數據存儲特性來實現本地存儲,可能需要一些SQL方面的基礎。第6章利用了HTML 5的另外一個特性使得網路應用程式在無法連線網路時,依然正常運行,這個離線特性非常實用,也是將網路應用程式原生化的基礎。第7章介紹了PhoneGap——一個強大的框架,使得網路應用程式可以利用加速度感測器、位置感測器等硬體特性與原生程式比肩,這是個非常令人興奮的章節。最後一章則介紹了如何將開發好的Android應用程式發布到Android應用程式市場上,已經有相關經驗的讀者可以根據興趣閱讀。
本書的前4章由鄒宇完成,後4章由我完成。在這當中,首先要特別感謝鄒宇在百忙之中高質量地完成翻譯工作,並且對其他部分進行了校審。感謝博文視點的其他諸位編輯,沒有你們的指導和幫助,翻譯工作不可能這么順利。感謝我的朋友鄭文濤和周婷婷,與你們一起推敲詞句是一件愉快而幸福的經歷。
申 林
2011年4月
前 言 要感謝行動電話的產生,它讓我們從幾乎無法快速獲得信息步入了任何人都有機會獲得大量信息資源的網路時代。這大概是我們這代人最重要的技術成就之一了。儘管它是如此重要,但移動計算技術仍然處於發展初期。它在技術上、資金上和政策上仍然處於前所未有的平台分裂狀態,這種狀態在獲得解決之前將仍然會越來越糟。
那些需要吸引大量不同群體用戶的開發者正面臨著嚴峻的挑戰:如何使用一個實用、價格合理且可支持大量套用的方式來實現我們的移動願景?在很多情況下,答案是使用網路技術。而HTML5和移動設備的結合優勢已經創造了這樣的環境,即使是一個開發新手都可以創建一些在全球範圍內改善人們生活的移動應用程式。
Google的Android作業系統在移動計算領域內是一個引人注目的新生力量。在真正的Google模式中,這是個開放、免費並且互操作性很強的平台。開發工具功能全面且強大,如果技術更先進一些,甚至可以在不同的平台上運行。
運營商和手機製造商已經順應潮流加入Android陣營。市場上已經大量地湧入了各種樣式和型號的Android設備了。這對開發者來說是一把雙刃劍。一方面,更多的設備意味著一個更大的市場;另一方面,更多的設備也意味著更多的平台分裂。和一般手機市場上的分裂一樣,Android的分裂問題往往可以通過採用HTML、CSS和JavaScript生成應用程式的方法來解決。
首先要承認不是所有的套用都適合用網路技術開發,即很多用原生代碼寫起應用程式來比HTML要簡單。若開發者不確定用哪種方法去實現,我建議:
如果可以用HTML、CSS和JavaScript來構建應用程式,也許就應該用它們。
使用開源、基於標準的網路技術為開發者帶來了很大的自由度、廣泛的套用範圍和低廉的費用。你可以很容易地將一個程式作為網路應用程式發布,然後在成千上萬的真實用戶使用下修改和測試。一旦你準備改變,可以用PhoneGap將網路套用轉換成原生的Android套用,根據你的喜好加上一些設備專有的特徵,並且提交到Android應用程式市場,或者在網站上提供下載。聽起來不錯,對吧!
本書的讀者
本書假設讀者已經有了一定的HTML、CSS、JavaScript(特別是jQuery)的讀寫基礎。第5章中包含了一些基本的SQL程式,所以對SQL語法的了解會有助於理解內容,但這不是必要的。
本書的使用
本書儘可能避免了Android SDK。你所需要依照的大多數例子可使用文本編輯器和最新版的Google Chrome (一個適用於Mac和Windows的尖端網頁瀏覽器)。在第7章,講述PhoneGap的材料中將要用到Android SDK,而我會解釋如何將網路應用程式轉換為可提交到Android Market的原生應用程式。
本書的格式 以下列出了本書中一些格式的習慣用法:
斜體 Italic
表示新術語、URLs、E-mail地址、檔案名稱和檔案擴展名。
等寬字型Constant width
用來顯示程式列表,包括段落中提到的程式內容,例如變數或者函式名、資料庫、數據類型、環境變數、語句或關鍵字。
等寬黑體 Constant width bold
表示代碼或其他需要讀者逐字理解的內容。
等寬斜體 Constant width italic
表示文中需要讀者在使用的時候用其他內容代替的部分。
中文版書中訂口處的“”表示原書頁碼,便於讀者與原英文版圖書對照閱讀,本書的索引所列頁碼為原英文版頁碼。
使用代碼樣例
本書是為了幫助用戶提供解決方案。總的來說,用戶可以直接在程式或者文檔中使用本書提供的代碼,無須與我們聯繫獲得許可,除非用戶複製大量的程式。例如,用戶想利用本書中的一些代碼編寫程式無須得到許可,但如果是想將O’Reilly書中的代碼例子用於出售或複製光碟就必須獲得許可。可以引用本書的內容或者代碼樣例來解決其他問題,但是在自己的產品文檔中使用本書的重要代碼樣例則要事先得到許可。
我們不硬性要求用戶在引用本書內容時標明出處,但感謝您的標註。標註內容通常包括標題、作者、出版者,以及ISBN書號。例如,“Building Android Apps with HTML, CSS, and JavaScript by Jonathan Stark. Copyright 2010 Jonahan Stark, 978-1-449-38326-8.”。
如果您對於引用代碼樣例是否侵權不能確定,請隨時聯繫我們。
Safari®線上圖書
Safari線上圖書是一個按需數字圖書館,可搜尋超過7500部技術與創新點的參考圖書和視頻來尋找你急需的解決方案。
通過訂閱,可以通過線上、手機和移動設備等方式閱讀或觀看Safari圖書館中任何章節或視頻。甚至有機會閱讀手稿,發現有待改進的地方並反饋給作者。可以複製貼上代碼樣例,組織下載喜歡的章節,在關鍵部分插入圖書標籤,創建筆記,列印頁面,從各種簡便的功能中獲益。
O’Reilly Media 上傳本書(英文版)至Safari線上圖書服務商。與O’Reilly其他類似圖書及出版物一樣,Safari線上圖書擁有本書的一切數字著作權。
聯繫我們 對於本書的評論或問題請聯繫出版商:
美國:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中國:
北京市西城區西直門南大街2號成銘大廈C座807室(100035)
奧萊利技術諮詢(北京)有限公司
有關本書的網頁、勘誤表、樣例和其他信息。
致謝 寫一本書是團隊的力量。我由衷地感謝以下朋友慷慨的支持。
感謝Tim O’Reilly、Brian Jepson和其他在ORM的朋友們,是他們使本書的寫作過程變得如此有價值和富有教育意義。
感謝David Kaneda對完美的執著追求。不論是一段程式或是用戶界面動畫,他都會一直修改到完美才肯睡覺,而我非常讚賞這一點。
感謝那些在Nitobi創造和一直支持PhoneGap的朋友。
感謝Brian Fling幫我擴寬了移動領域的視野,而不只是停留在最新、最好的硬體上。Brian深入了解移動領域的現狀,他是個出色的作家,最重要的是,他是一個非常慷慨的夥伴。
感謝PPK、John Gruber、John Allsopp和John Resig的貢獻及使得本書完成的潛在技術支持者。
感謝Joe Bowser、Brian LeRoux、Sara Czyzewicz,以及一群在OFPS上慷慨地提供關於本書的評論和問題的朋友。我非常感激你們的反饋,它們非常有幫助。
感激我的家人、朋友和委託人在我忙於寫作時對我的理解和支持。
最後,感謝Erica,是你使一切變為可能,我愛你!
目 錄 第1章 入門指南 1
網路應用程式與原生應用程式的對比 1
什麼是網路應用程式 1
什麼是原生應用程式 1
優勢和劣勢 2
哪種方法最合適你 2
網路編程速成 3
HTML入門 3
CSS入門 5
JavaScript入門 9
第2章 基本樣式 13
還沒網站 13
準備工作 14
準備獨立的Android樣式表 17
控制頁面縮放 18
添加Android CSS 20
添加Android視覺效果 23
使用jQuery添加基本行為 24
內容回顧 30
第3章 高級樣式 31
添加一點Ajax 31
交通警察 31
添加一些內容 34
JavaScript的路由請求 34
簡單的點綴 36
進度指示器(Process Indicator) 36
設定頁面標題 39
處理長標題 41
自動回到頂部 42
只攔截本地連結 43
編寫自己的返回按鈕 44
在主螢幕上添加圖示 50
內容回顧 50
第4章 動畫 51
來自朋友的幫助 51
讓主頁滑動起來 51
添加Dates面板 54
添加Date面板 56
添加New Entry面板 57
添加Settings面板 60
將所有代碼放在一起 61
自定義jQTouch 64
內容回顧 65
第5章 客戶端數據存儲 67
Web Storage 67
將用戶設定保存到本地 68
將選中的數據保存到Session Storage中 71
Web SQL Database 74
創建資料庫 74
插入行 77
檢索行及處理結果集 80
刪除行 84
內容回顧 88
Web Database錯誤編碼參考 88
第6章 走向離線 89
離線應用程式快取基礎 89
線上Whitelist(白名單)和Fallback(備選)選項 92
創建動態Manifest檔案 95
調試 101
JavaScript控制台(JavaScript Console) 101
內容回顧 104
第7章 走向原生 105
PhoneGap簡介 105
下載Android SDK 107
下載PhoneGap 110
配置環境 111
創建Android Virtual Device(Android虛擬設備) 113
創建KiloGap 114
在模擬器中安裝KiloGap 118
使用螢幕的全部高度 121
自定義程式圖示 122
在手機上安裝KiloGap 123
使用JavaScript來控制手機 123
Beep(蜂鳴)、Vibrate(振動)及Alert(提醒) 123
地理位置 127
加速度感測器 133
內容回顧 136
第8章 將應用程式提交到Android應用程式市場上 137
準備程式的發行版本 137
移除調試代碼 137
應用程式版本管理 138
應用程式簽名管理 138
將程式上傳到Android應用程式市場 141
直接分發程式 143
延伸閱讀 145
附錄 147
索引 151