Android優化技術詳解( 簡體 字) | |
作者:陳德春 | 類別:1. -> 程式設計 -> 手機程式 -> Android |
出版社:清華大學出版社 | 3dWoo書號: 38271 詢問書籍請說出此書號! 有庫存 NT售價: 280 元 |
出版日:4/11/2014 | |
頁數:422 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302359333 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章 Android系統閃亮登場 1
1.1 一款全新的智能手機平臺—— Android 2 1.1.1 何謂智能手機 2 1.1.2 看當前主流的智能手機系統 2 1.2 分析Android的優勢 4 1.2.1 第一個優勢——出自名門 4 1.2.2 第二個優勢——強大的開發 團隊 4 1.2.3 第三個優勢——獎金豐厚 5 1.2.4 第四個優勢——代碼開源 5 1.3 搭建開發環境 5 1.3.1 安裝Android SDK的系統 要求 5 1.3.2 安裝JDK、Eclipse、Android SDK 6 1.3.3 設定Android SDK Home 18 1.4 創建Android虛擬設備(AVD) 19 1.4.1 Android模擬器簡介 19 1.4.2 模擬器和真機的區別 20 1.4.3 創建Android虛擬設備 20 1.4.4 啟動模擬器 22 1.4.5 快速安裝SDK 22 1.5 解決搭建環境過程中的三個問題 23 1.5.1 不能在線更新 23 1.5.2 一直顯示Project name must be specified提示 25 1.5.3 Target列表中沒有Target 選項 26 第2章 分析Android核心框架 29 2.1 簡析Android安裝文件 30 2.1.1 Android SDK目錄結構 30 2.1.2 android.jar及其內部結構 31 2.1.3 SDK幫助文檔 32 2.1.4 Android SDK實例簡介 34 2.2 Android的系統架構詳解 34 2.2.1 Android體系結構介紹 34 2.2.2 Android工程文件結構 37 2.2.3 應用程序的生命周期 40 2.3 簡析Android內核 43 2.3.1 Android繼承于Linux 43 2.3.2 Android內核和Linux內核的 區別 43 2.4 簡析Android源碼 45 2.4.1 獲取并編譯Android源碼 45 2.4.2 Android對Linux的改造 47 2.4.3 為Android構建Linux的 操作系統 48 第3章 為什么需要優化 49 3.1 用戶體驗是產品成功的關鍵 50 3.1.1 什么是用戶體驗 50 3.1.2 影響用戶體驗的因素 51 3.1.3 用戶體驗設計目標 51 3.2 Android的用戶體驗 52 3.3 不同的廠商,不同的硬件 56 3.4 Android優化概述 56 第4章 UI布局優化 59 4.1 和布局相關的組件 60 4.1.1 View視圖組件 60 4.1.2 Viewgroup容器 60 4.2 Android中的5種布局方式 61 4.2.1 線性布局LinearLayout 61 4.2.2 框架布局FrameLayout 64 4.2.3 絕對布局AbsoluteLayout 65 4.2.4 相對布局RelativeLayout 65 4.2.5 表格布局TableLayout 67 4.3 作用 70 4.4 遵循Android Layout優化的兩段 通用代碼 73 4.5 優化Bitmap圖片 74 4.5.1 實例說明 74 4.5.2 具體實現 74 4.6 FrameLayout布局優化 76 4.6.1 使用 結構 79 4.6.2 使用 代碼 79 4.6.3 延遲加載 82 4.7 使用Android為我們提供的優化 工具 82 4.7.1 Layout Optimization工具 82 4.7.2 Hierarchy Viewer工具 86 4.7.3 聯合使用 標簽實現互補 89 4.8 總結Android UI布局優化的原則 和方法 93 第5章 Android的內存系統 95 5.1 內存和進程的關系 96 5.1.1 進程管理工具的紛爭 96 5.1.2 程序員的任務 96 5.1.3 Android系統內存設計 97 5.2 分析Android的進程通信機制 98 5.2.1 Android的進程間通信(IPC) 機制Binder 98 5.2.2 Service Manager是Binder 機制的上下文管理者 100 5.2.3 分析Server和Client獲得Service Manager的過程 118 5.3 分析Android系統匿名共享內存C++ 調用接口 122 5.3.1 Java程序 125 5.3.2 相關程序 134 5.4 Android中的垃圾回收 137 5.4.1 sp和wp簡析 137 5.4.2 詳解智能指針(android refbase 類(sp和wp)) 139 第6章 Android內存優化 143 6.1 Android內存優化的作用 144 6.2 查看Android內存和CPU使用 情況 145 6.2.1 利用Android API函數 查看 145 6.2.2 直接對Android文件進行 解析查詢 145 6.2.3 通過Runtime類實現 146 6.2.4 使用DDMS工具獲取 147 6.2.5 其他方法 152 6.3 Android的內存泄漏 155 6.3.1 什么是內存泄漏 155 6.3.2 為什么會發生內存泄漏 156 6.3.3 shallow size、retained size 158 6.3.4 查看Android內存泄漏的 工具 159 6.3.5 查看Android內存泄漏的 方法 162 6.3.6 Android(Java)中常見的容易 引起內存泄漏的不良代碼 164 6.4 常見的引起內存泄漏的壞毛病 165 6.4.1 查詢數據庫時忘記關閉 游標 165 6.4.2 構造Adapter時不習慣使用 緩存的convertView 166 6.4.3 沒有及時釋放對象的引用 167 6.4.4 不在使用Bitmap對象時 調用recycle()釋放內存 168 6.5 演練解決內存泄漏 168 6.5.1 使用MAT根據heap dump分析 Java代碼內存泄漏的根源 168 6.5.2 演練Android中內存泄漏代碼 優化及檢測 176 6.6 Android圖片的內存優化 178 第7章 代碼優化 181 7.1 Android代碼優化的基本原則 182 7.2 優化Java代碼 182 7.2.1 GC對象優化 182 7.2.2 盡量使用StringBuilder和 StringBuffer進行字符串 連接 186 7.2.3 及時釋放不用的對象 189 7.3 編寫更高效的Android代碼 189 7.3.1 避免建立對象 190 7.3.2 優化方法調用代碼 192 7.3.3 優化代碼變量 193 7.3.4 優化代碼過程 196 7.3.5 提高Cursor查詢數據的 性能 199 7.3.6 編碼中盡量使用ContentProvider 共享數據 200 7.4 Android控件的性能優化 204 7.4.1 ListView控件的代碼優化 204 7.4.2 Adapter(適配器)優化 209 7.4.3 ListView異步加載圖片 優化 212 7.5 優化Android圖形 216 7.5.1 2D繪圖的基本優化 216 7.5.2 觸發屏幕圖形觸摸器的 優化 217 7.5.3 SurfaceView 繪圖覆蓋刷新 及臟矩形刷新方法 217 第8章 性能優化 223 8.1 資源存儲優化 224 8.1.1 Android文件存儲 224 8.1.2 Android中的資源存儲 226 8.1.3 Android資源的類型和命名 228 8.1.4 Android文件資源(raw/data/asset) 的存取 229 8.1.5 Android對Drawable對象的 優化 230 8.1.6 建議使用Drawable,而不是 Bitmap 232 8.2 加載APK文件和DEX文件 236 8.2.1 APK文件介紹 237 8.2.2 DEX文件介紹和優化 238 8.2.3 Android類動態加載技術實現 加密優化 239 8.3 SD卡優化 242 8.4 Android的虛擬機優化 244 8.4.1 Android虛擬機概述 244 8.4.2 平臺優化——ARM的流水線 技術 246 8.4.3 Android對C庫優化 250 8.4.4 創建進程的優化 253 8.4.5 渲染優化 253 8.5 SQLite優化 257 8.5.1 Android SQLite的查詢 優化 257 8.5.2 SQLite性能優化技巧 263 8.6 Android的圖片緩存處理和性能 優化 263 第9章 系統優化 267 9.1 基本系統優化 268 9.1.1 刷機重啟 268 9.1.2 刷內核 268 9.1.3 精簡內置應用 269 9.1.4 基本系統優化總結 270 9.2 進程管理 271 9.2.1 Android進程跟Windows進程 是兩回事 271 9.2.2 查看當前系統中正在運行的 程序 271 9.2.3 枚舉Android系統的進程、 任務和服務的信息 275 9.2.4 研究Android進程管理器的 實現 281 9.3 將Android軟件從手機內存轉移到 存儲卡 286 9.3.1 第一步:準備工作 286 9.3.2 第二步:存儲卡分區 289 9.3.3 第三步:將軟件移動到 SD卡 289 9.4 常用的系統優化工具 291 9.4.1 優化大師 291 9.4.2 360優化大師 292 第10章 開發一個Android優化 系統 295 10.1 優化大師介紹 296 10.1.1 手機優化大師客戶端 296 10.1.2 手機優化大師PC端 296 10.2 項目介紹 297 10.2.1 規劃UI界面 298 10.2.2 預期效果 299 10.3 準備工作 299 10.3.1 新建工程 299 10.3.2 主界面 300 10.4 編寫主界面程序 306 10.5 進程管理模式模塊 308 10.5.1 基礎狀態文件 309 10.5.2 CPU和內存使用信息 310 10.5.3 進程詳情 310 10.6 進程視圖模塊 316 10.6.1 進程主視圖 316 10.6.2 進程視圖 317 10.6.3 獲取進程信息 317 10.7 進程類別模塊 319 10.7.1 加載進程 319 10.7.2 后臺加載設置 323 10.7.3 加載顯示 323 10.8 文件管理模式模塊 324 10.8.1 文件分類 324 10.8.2 加載進程 324 10.8.3 文件視圖處理 328 10.9 文件管理模塊 329 10.9.1 文件夾 330 10.9.2 顯示文件信息 330 10.9.3 操作文件 332 10.9.4 獲取進程的CPU和內存 信息 332 10.10 系統測試 336 第11章 綜合實例——手機地圖 系統 339 11.1 項目分析 340 11.1.1 規劃UI界面 340 11.1.2 數據存儲設計和優化 341 11.2 具體實現 342 11.2.1 新建工程 342 11.2.2 主界面 343 11.2.3 新建界面 346 11.2.4 設置界面 349 11.2.5 幫助界面 354 11.2.6 地圖界面 356 11.2.7 數據存取 367 11.2.8 實現Service服務 372 11.3 發布自己的作品來盈利 374 11.3.1 申請會員 374 11.3.2 生成簽名文件 377 11.3.3 使用簽名文件 383 11.3.4 發布 386 第12章 綜合實例——Android足球 游戲 387 12.1 手機游戲產業的發展 388 12.1.1 1.2億手機游戲用戶 388 12.1.2 淘金的時代 388 12.1.3 手機游戲的未來發展 389 12.2 Java游戲開發基礎 389 12.3 足球游戲介紹 391 12.3.1 手機足球游戲 391 12.3.2 策劃游戲 392 12.3.3 準備工作 392 12.4 項目架構 393 12.4.1 總體架構 393 12.4.2 規劃類 394 12.5 Android手機游戲的優化策略 394 12.6 具體編碼 395 12.6.1 Activity類開發 395 12.6.2 歡迎界面 400 12.6.3 加載節目 408 12.6.4 運動控制 409 12.6.5 獎品模塊 419 本書循序漸進而又詳細地講解了Android優化技術的基本知識。本書內容新穎、知識全面、講解詳細。全書分為12章,第1章講解了Android系統的基礎知識;第2章講解了Android核心框架;第3章詳細講解了為什么要優化;第4章詳細講解了UI布局優化的基本知識;第5章詳細講解了Android內存系統的基本知識;第6章講解了Android內存優化的基本知識;第7章講解了代碼優化的基本知識;第8章講解了性能優化的基本知識;第9章講解了系統優化的基本知識;第10章講解了開發一個Android優化系統的基本知識;第11章和第12章是兩個綜合實例,分別講解了在手機地圖系統和Android足球游戲中使用優化技術的知識。書中的每個實例都遵循先提出制作思路及所包含知識點,在實例最后總結知識點,并讓讀者舉一反三。
本書定位于Android的初、中級用戶,既可作為初學者的參考書,也可作為有一定基礎讀者的提高書。 進入21世紀以來,整個社會已經逐漸變得陌生了!生活和工作的快節奏令我們目不暇接,各種各樣的信息充斥著我們的視野、撞擊著我們的思維。追憶過去,Windows操作系統的誕生成就了微軟的霸主地位,也造就了PC時代的繁榮。然而,以Android和iPhone手機為代表的智能移動設備的發明卻敲響了PC時代的警鐘!移動互聯網時代已經來臨,誰會成為這些移動設備上的主宰?毫無疑問,這就是Android——PC時代的Windows!
看3G的璀璨絢麗 隨著3G的到來,無線帶寬越來越高,使得在手機上布置更多內容豐富的應用程序成為可能,如視頻通話、視頻點播、移動互聯網沖浪、在線看書/聽歌、內容分享等。為了承載這些數據應用及快速部署,手機功能將會越來越智能,越來越開放。為了實現這些需求,必須有一個好的開發平臺來支持,由Google公司發起的OHA聯盟走在了業界的前列,2007年11月推出了開放的Android平臺,任何公司及個人都可以免費獲取到源代碼及開源SDK。由于其開放性和優異性,Android平臺得到了業界廣泛的支持,其中包括各大手機廠商和著名的移動運營商等。繼2008年9月第一款基于Android平臺的手機G1 發布之后,預計三星、摩托羅拉、索愛、LG、華為等公司都將推出自Gflg~Android平臺的手機,中國移動也將聯合各手機廠商共同推出基于 Android平臺的OPhone。按目前的發展態勢,我們有理由相信,Android平臺能夠在短時間內躋身智能手機開發平臺的前列。 自從2009年3G牌照在國內發放后,3G、Android、iPhone、Google、蘋果、手機軟件、移動開發等詞越來越充斥于耳。隨著3G網絡的大規模建設和智能手機的迅速普及,移動互聯網時代已經微笑著迎面而來。 以創新的搜索引擎技術而一躍成為互聯網巨頭的Google,無線搜索成為它進軍移動互聯網的一塊基石。早在2007年,Google中國就把無線搜索當作戰略重心,不斷推出新產品,嘗試通過戶外媒體推廣移動搜索產品,并積極與運營商、終端廠商、瀏覽器廠商等達成戰略合作。 Android操作系統是Google最具殺傷力的武器之一。蘋果以其天才的創新,使得iPhone在全球迅速擁有了數百萬忠實“粉絲”,而Android作為第一個完整、開放、免費的手機平臺,使開發者在為其開發程序時擁有更大的自由。與 Windows Mobile、Symbian等廠商不同的是,Android操作系統免費提供給開發人員,這樣可節省近三成成本,因此得到了眾多廠商與開發者的擁護。自從進入2011年后,Android就一直是市場占有率最高的智能手機系統。并且Android的成功也造就了使用Android系統的手機制造商,現在三星借助Android操作系統,已經成為世界上發貨量最大的手機制造商。 巨大的優勢 從技術角度而言,Android與iPhone相似,都采用WebKit瀏覽器引擎,具備觸摸屏、高級圖形顯示和上網功能,用戶能夠在手機上查收電子郵件、搜索網址和觀看視頻節目等。Android手機比iPhone等其他手機更強調搜索功能,界面更強大,可以說是一種融入了全部Web應用的平臺。Android的版本包括:Android 1.1、Android 1.5、Android 1.6、Android 2.0等,當前的最新版本是Android 4.2。隨著版本的更新,從最初的觸屏到現在的多點觸摸,從普通的聯系人到現在的數據同步,從簡單的GoogleMap到現在的導航系統,從基本的網頁瀏覽到現在的HTML 5,這都說明Android已經逐漸穩定,而且功能越來越強大。此外,Android平臺不僅支持 Java、C、C++等主流的編程語言,還支持Ruby、Python等腳本語言,甚至Google還專為Android的應用開發推出了Simple語言,這使得Android有著非常廣泛的開發群體。 優化的目的是提高用戶體驗 我們做任何一款產品,目標用戶群體永遠是消費者,而用戶體驗往往決定了一款產品的暢銷程度。作為智能手機來說,因為其自身硬件遠不及PC,所以這就要求我們需要為消費者提供擁有更好用戶體驗的產品,只有這樣我們的產品才會受追捧。 用戶體驗的英文是User Experience,簡稱UE。它是一種純主觀的在用戶使用產品過程中建立起來的感受。但是對于一個界定明確的用戶群體來講,其用戶體驗的共性是能夠經良好設計實驗認識到。新競爭力在網絡營銷基礎與實踐中曾提到計算機技術和互聯網的發展,使技術創新形態正在發生轉變,以用戶為中心、以人為本越來越得到重視,用戶體驗也因此被稱作創新2.0模式的精髓。在中國面向知識社會的創新2.0——應用創新園區模式探索,更將用戶體驗作為“三驗”創新機制之首。 本書的內容 本書循序漸進地、詳細地講解了Android優化技術的基本知識,內容新穎、知識全面、講解詳細。Android優化技術博大精深,需要程序員具備極高的水準和開發經驗。筆者從事Android開發也是短短數載,也不可能完全掌握Android優化技術。本書將盡可能地將Android優化技術的核心內容展現給讀者,書中主要提供了以下優化內容。 (1) UI布局優化 講解了優化UI界面布局的基本知識以及各種布局的技巧,剖析了減少層次結構、延遲加載和嵌套優化等方面的知識。 (2) 內存優化 詳細講解了Android系統內存的基本知識,分析了Android獨有的垃圾回收機制,并分別剖析了縮放處理、數據保存、使用與釋放、內存泄漏和內存溢出等方面的知識。 (3) 代碼優化 講解了在編碼過程中,優化代碼提高運行效率的基本知識。 (4) 性能優化 講解了資源存儲、加載DEX文件和APK、虛擬機的性能、平臺優化、優化渲染機制等方面的知識。 (5) 系統優化 詳細講解了進程管理器、設置界面、后臺停止、轉移內存程序和優化緩存等方面的知識。 (6) 優化工具 詳細講解了市面上常見的優化工具,例如優化大師、進程管理等。 科學的學習方法 不要認為學習Android技術是一件很困難的事情,不斷尋找規律,學習新知識和新技能,積累經驗,這幾乎是每一個電腦高手必經的成長之路。中國有句古話“授人以魚,不如授人以漁”,說的是傳授給人既有知識,不如傳授給人學習知識的方法。通過本書,我們將告訴讀者學習的方法,并介紹一條比較清晰的學習之路。 1. 積極的心態 無論是知識還是技能,智者之所以能夠更好、更快地掌握知識和技能,很大程度上得益于良好的學習方法。人們常說:興趣是最好的老師,壓力是前進的動力,要想獲得一個積極的心態,最好能對學習對象保持濃厚的興趣。如果暫時提不起興趣,那么就重視來自工作或生活的壓力,把它們轉化為學習的動力。 2. 注重實踐 讀者在學習本書的過程中,建議學完理論后,進行實際操作。首先學習書中的理論,再動手調試本書中的實例,然后用模擬器運行書中的例子,只有這樣才能做到印象深刻,才能真正理解Android優化技術的基本知識。這樣在實際應用中遇到其他類似問題時,才能做到熟能生巧、觸類旁通。 3. 善用資源,學以致用 對于計算機優化技術,除了少部分專業人士外,大部分人學習的目的是為了應用,通過優化技術解決工作中的問題并提高工作效率。“解決問題”常常是促使人學習的一大動機,帶著問題學習,不但進步快,而且很容易對優化技術產生更大的興趣,從而獲得持續的進步。 (1) 善用資源 在學習過程中,難免會遇到自己不理解的知識,此時可以找一些相關的書籍來閱讀,不斷嘗試解決問題。或者通過互聯網的搜索引擎找到問題的解決辦法,善用搜索引擎,基本上可以找到大多數問題所在! (2)??QQ群 如果在互聯網上找不到問題的解決辦法,可以通過QQ訪問相關學習群,群中的高手們會對你提出的問題進行回答。 (3) 向優化技術高手學習 在練習實際操作能力時,可以虛心向優化技術領域的高手學習。如果讀者閉門造車,盲人摸象,則很難掌握技術精髓。而經過身邊的優化技術高手指點,可以輕松掌握相關的技能。 本書特色 本書內容相當豐富,覆蓋面全,涉及了Android優化技術人員成長道路上的方方面面。我們的目標是通過一本圖書,提供多本圖書的價值,讀者可以根據自己的需要有選擇地閱讀,以完善本人的知識和技能。在內容的編寫上,本書具有以下特色。 (1) 結構合理 從用戶的實際需要出發,科學安排知識結構,內容由淺入深,敘述清楚,并附有相應的總結和練習,具有很強的知識性和實用性,反映了當前Android優化技術的發展和應用水平。同時全書精心篩選的最具代表性、讀者最關心的知識點,幾乎包括了Android優化技術的所有方面。 (2) 易學易懂 本書條理清晰、語言簡潔,可幫助讀者快速掌握每個知識點;每個部分既相互連貫又自成體系,使讀者既可以按照本書編排的章節順序進行學習,也可以根據自己的需求對某一章節進行針對性的學習。 (3) 實用性強 本書徹底摒棄枯燥的理論和簡單的操作,注重實用性和可操作性,將Android優化技術的理論融合到實際的操作環境中,使用戶掌握相關操作技能的同時,還能學習到相應的開發知識。 本書的讀者對象 本書在內容安排上由淺入深,寫作上層層剝洋蔥式的分解,充分實例舉證,非常適合Android開發技術的初學者,同時也適合具有一定Android開發基礎,想對Android開發技術進一步了解和掌握的中級用戶。如果你是以下類型的讀者,本書會帶領你迅速進入Android開發領域。 * 有一定Android開發經驗的讀者。 * 從事Android開發的研究人員和工作人員。 * 有一定的Android基礎,想快速學會Android高級技術的讀者。 * 有一定Android開發基礎,需要加深對Android技術核心進一步了解和掌握的程序員。 * 高等院校相關專業的學生,或需要編寫論文的學生。 * 企業和公司在職人員、需要提高學習或工作需要的程序員。 * 從事Android移動網絡開發等相關工作的技術人員。 本書由陳德春編著,其他參與本書編寫的人員還有:王石磊、周秀、付松柏、鄧才兵、鐘世禮、譚貞軍、王東華、羅紅仙、王振麗、熊斌。由于本人水平有限,紕漏和不盡如人意之處在所難免,誠請讀者提出寶貴意見或建議,以便修訂并使之更臻完善。售后QQ:729017304。 本書部分源代碼網絡下載路徑:http://www.tup.tsinghua.edu.cn。 編 者 |