內容簡介
本書以零基礎講解為宗旨,用實例引導讀者深入學習,采取“基礎入門→核心技術→高級應用→項目開發(fā)實戰(zhàn)”的講解模式,深入淺出地講解Android的各項技術及實戰(zhàn)技能。
本書第1篇“基礎入門”主要講解走進Android的世界、Android虛擬設備、Android布局與實現(xiàn)等;第2篇“核心技術”主要講解基礎UI組件、高級UI組件、精通活動、服務與廣播、事件與消息、使用資源、圖形與圖像處理、多媒體開發(fā)等;第3篇“高級應用”主要講解數(shù)據(jù)存儲、數(shù)據(jù)共享、傳感器、網(wǎng)絡開發(fā)、精通地圖定位、Android碎片開發(fā)、Android開發(fā)的技巧與調試等;第4篇“項目開發(fā)實戰(zhàn)”主要講解開發(fā)俄羅斯方塊、開發(fā)股票操盤手、開發(fā)考試系統(tǒng)、開發(fā)網(wǎng)上商城。
本書贈送10大超值王牌資源,包括本書實例源文件、精美教學幻燈片、精選本書教學視頻、16個經典項目開發(fā)完整源碼、Android開發(fā)疑難問題解答、Android常見錯誤及解決方案、Android系統(tǒng)開發(fā)常用類查詢、Android移動開發(fā)工程師面試題、Android項目開發(fā)經驗及技巧大匯總等。讀者可以通過QQ群(案例課堂VIP):451102631獲取贈送資源。
本書適合任何想學習Android移動開發(fā)的人員,無論您是否從事計算機相關行業(yè),無論您是否接觸過Android移動開發(fā),通過學習均可快速掌握Android在項目開發(fā)中的知識和技巧。
前 言
“軟件開發(fā)案例課堂”系列圖書是專門為軟件開發(fā)和數(shù)據(jù)庫初學者量身定做的一套學習用書,整套書具有以下特點。
前沿科技
無論是軟件開發(fā)還是數(shù)據(jù)庫設計,我們都精選較為前沿或者用戶群較大的領域推進,幫助大家認識和了解最新動態(tài)。
權威的作者團隊
組織國家重點實驗室和資深應用專家聯(lián)手編著該套圖書,融合豐富的教學經驗與優(yōu)秀的管理理念。
學習型案例設計
以技術的實際應用過程為主線,全程采用圖解和同步多媒體結合的教學方式,生動、直觀、全面地剖析使用過程中的各種應用技能,降低難度,提升學習效率。
為什么要寫這樣一本書
Android平臺由互聯(lián)網(wǎng)與社會信息科技的領袖Google公司開發(fā),由于其開放性和自由性,以及App商店商業(yè)模式帶來的巨大活力,出現(xiàn)了一大批熱愛和追隨Android平臺的開發(fā)人員和設計人員。目前學習和關注Android的人越來越多,而很多Android的初學者都苦于找不到一本通俗易懂、容易入門和案例實用的參考書。通過本書的案例實訓,可以很快地上手流行的工具,提高職業(yè)化能力,并有助于幫助解決公司與學生的雙重需求問題。
本書特色
* 零基礎、入門級的講解
無論您是否從事計算機相關行業(yè),無論您是否接觸過Android移動開發(fā),都能從本書中找到最佳起點。
* 超多、實用、專業(yè)的范例和項目
本書在編排上緊密結合深入學習Android移動開發(fā)技術的先后過程,從Android移動開發(fā)的環(huán)境搭建開始,帶領大家逐步深入地學習各種應用技巧,側重實戰(zhàn)技能,使用簡單易懂的實際案例進行分析和操作指導,讓讀者學習起來簡明輕松,操作起來有章可循。
* 隨時檢測自己的學習成果
每章首頁均提供了“本章要點”,以指導讀者重點學習及學后檢查。
大部分章節(jié)最后的“跟我學上機”板塊,均根據(jù)本章內容精選而成,讀者可以隨時檢測自己的學習成果和實戰(zhàn)能力,做到融會貫通。
* 細致入微、貼心提示
本書在講解過程中,使用了“注意”和“提示”等小欄目,使讀者在學習過程中更清楚地了解相關操作、理解相關概念,并輕松掌握各種操作技巧。
* 專業(yè)創(chuàng)作團隊和技術支持
您在學習過程中遇到任何問題,均可加入QQ群(案例課堂VIP)進行提問,專業(yè)人員會在線答疑。
超值贈送資源
* 全程同步教學錄像
涵蓋本書所有知識點,詳細講解每個實例及項目的開發(fā)過程及技術關鍵點。比看書更能輕松地掌握書中所有的Java編程語言知識,而且擴展的講解部分使您能得到比書中更多的收獲。
* 超多容量王牌資源大放送
贈送大量王牌資源,包括本書實例源文件、精美教學幻燈片、精選本書教學視頻、16個經典項目開發(fā)完整源碼、Android開發(fā)疑難問題解答、Android常見錯誤及解決方案、Android系統(tǒng)開發(fā)常用類查詢、Android移動開發(fā)工程師面試題、Android項目開發(fā)經驗及技巧大匯總等。讀者可以通過清華大學官網(wǎng)本書頁面獲取下載資源。
讀者對象
* 沒有任何Android開發(fā)基礎的初學者。
* 有一定的Java編程基礎,想精通Android移動開發(fā)的人員。
* 有一定的Android移動開發(fā)基礎,沒有項目開發(fā)經驗的人員。
* 正在進行畢業(yè)設計的學生。
* 大專院校及培訓學校的老師和學生。
創(chuàng)作團隊
本書由劉玉紅、蒲娟編著,參加編寫的人員還有李玉陽、王斌、趙建軍、靳偉杰、譚小艷、閆川華、趙志霞、王佰成、李國離、蘇雙喜、馬天宇、丁遠征、楊文建、李茂有、靳燕霞、陳孟毫、胡秀芳、李鑫、王湖芳、劉玉萍、胡同夫、裴雨龍、付紅、王攀登、孫若淞、包慧利、梁云梁和周浩浩。本書在編寫過程中,我們盡所能地將最好的講解呈現(xiàn)給讀者,但也難免有疏漏和不妥之處,敬請不吝指正。
編 者
目 錄
第1篇 基 礎 入 門第1章 走進Android的世界——快速搭建開發(fā)環(huán)境 31.1 認識Android 41.1.1 Android簡介 41.1.2 Android系統(tǒng)架構 41.1.3 Android四大組件 61.2 Android模擬器 71.2.1 模擬器概述 71.2.2 模擬器和真機的使用區(qū)別 81.3 開發(fā)Android應用前的準備 81.3.1 Android系統(tǒng)開發(fā)要求 81.3.2 Android軟件開發(fā)包 91.4 Android開發(fā)環(huán)境搭建 91.4.1 Java環(huán)境搭建 91.4.2 安裝Android Studio 141.4.3 Android Studio開發(fā)工具介紹 191.5 大神解惑 211.6 跟我學上機 22第2章 跨平臺測試利器——Android虛擬設備 232.1 HelloWorld應用分析 242.1.1 新建一個Android項目 242.1.2 啟動模擬器 262.1.3 運行程序 282.1.4 項目結構 292.1.5 代碼分析 312.2 第三方模擬器Genymotion 332.2.1 注冊Genymotion 332.2.2 下載Genymotion 332.2.3 安裝Genymotion 342.2.4 引入Genymotion 362.2.5 啟動Genymotion并添加設備 382.3 大神解惑 402.4 跟我學上機 40第3章 Android布局與實現(xiàn) 413.1 Android布局 423.1.1 創(chuàng)建一個錯誤布局的程序 423.1.2 相對布局 453.1.3 線性布局 503.1.4 幀布局 513.1.5 表格布局 523.1.6 網(wǎng)格布局 553.1.7 布局管理器的綜合應用 593.1.8 約束布局 603.2 UI設計相關概念 643.2.1 View是什么 643.2.2 ViewGroup是什么 653.2.3 通過Java代碼控制UI界面 653.2.4 通過Java代碼與XML混合控制UI界面 673.3 大神解惑 683.4 跟我學上機 68第2篇 核 心 技 術第4章 基礎UI組件 714.1 文本類組件 724.1.1 TextView組件 724.1.2 EditText組件 734.2 按鈕類組件 754.2.1 普通按鈕 754.2.2 圖片按鈕 764.2.3 單選按鈕 784.2.4 多選按鈕 824.3 日期時間類組件 854.3.1 日期選擇組件 854.3.2 時間選擇組件 864.3.3 日歷視圖組件 884.3.4 文本時鐘組件 894.3.5 計時器組件 904.4 大神解惑 934.5 跟我學上機 93第5章 高級UI組件 955.1 進度條類組件 965.1.1 進度條組件 965.1.2 拖動條組件 975.1.3 星級評分組件 995.2 圖像類組件 1015.2.1 圖像視圖組件 1015.2.2 圖像切換組件 1035.2.3 網(wǎng)格視圖組件 1055.3 列表類組件 1095.3.1 下拉列表框組件 1105.3.2 列表視圖組件 1125.3.3 RecyclerView組件 1155.4 通用組件 1185.4.1 滾動視圖組件 1185.4.2 選項卡組件 1205.5 大神解惑 1225.6 跟我學上機 122第6章 精通活動 1236.1 認識活動 1246.2 深入活動 1256.2.1 初建Activity 1256.2.2 配置Activity 1266.2.3 Activity的啟動與關閉 1276.3 構建多個活動的應用 1306.3.1 數(shù)據(jù)交換之Bundle 1306.3.2 調用頁面返回數(shù)據(jù) 1346.4 組件間的信使Intent 1386.4.1 什么是Intent 1386.4.2 應用Intent 1396.4.3 Intent的屬性 1396.4.4 Intent的種類 1416.4.5 Intent過濾器 1426.5 大神解惑 1436.6 跟我學上機 144第7章 服務與廣播 1457.1 認識服務 1467.1.1 服務的分類 1467.1.2 創(chuàng)建服務 1477.1.3 啟動與停止服務 1507.1.4 綁定服務 1537.2 IntentService 1567.3 認識廣播 1577.3.1 廣播的分類 1577.3.2 接收系統(tǒng)廣播 1577.3.3 發(fā)送廣播 1607.4 大神解惑 1627.5 跟我學上機 162第8章 事件與消息 1638.1 事件的處理 1648.1.1 基于監(jiān)聽的事件處理 1648.1.2 基于回調的事件處理 1668.2 物理按鍵事件 1678.3 觸摸事件 1698.3.1 長按事件 1698.3.2 觸摸事件 1708.3.3 觸摸與單擊的區(qū)別 1718.4 Toast提示消息 1728.4.1 makeText方法 1738.4.2 定制Toast 1738.5 AlertDialog消息 1748.6 狀態(tài)欄通知消息 1788.7 Handler消息 1808.7.1 Handler的運行機制 1808.7.2 Handler類中的常用方法 1818.7.3 Handler與Looper、MessageQueue的關系 1828.8 大神解惑 1848.9 跟我學上機 184第9章 使用資源 1859.1 字符串資源 1869.1.1 字符串資源文件 1869.1.2 使用字符串資源 1879.2 顏色資源 1879.2.1 顏色資源文件 1879.2.2 顏色的設置 1889.2.3 文本框使用顏色 1889.3 數(shù)組資源 1899.3.1 定義資源文件 1899.3.2 使用數(shù)組資源 1899.4 尺寸資源 1919.4.1 尺寸單位 1919.4.2 尺寸資源文件 1919.4.3 使用尺寸資源 1929.5 布局資源 1939.6 圖像資源 1949.6.1 Drawable資源 1949.6.2 Drawable中的XML資源 1969.6.3 Mipmap資源 1999.7 主題和樣式資源 1999.7.1 主題資源 1999.7.2 樣式資源 2019.7.3 主題編輯器的使用 2019.8 菜單資源 2039.8.1 靜態(tài)創(chuàng)建菜單 2039.8.2 動態(tài)創(chuàng)建菜單 2049.8.3 使用菜單 2059.9 國際化 2079.10 大神解惑 2099.11 跟我學上機 210第10章 圖形與圖像處理 21110.1 bitmap圖片 21210.1.1 Bitmap類 21210.1.2 BitmapFactory類 21210.2 繪圖常用類 21410.2.1 Paint類 21410.2.2 Canvas類 21510.2.3 Path類 21710.3 繪制圖像 21710.4 繪制路徑 21910.5 動畫 22110.5.1 逐幀動畫 22110.5.2 補間動畫 22210.5.3 布局動畫 22610.5.4 屬性動畫 22910.6 大神解惑 23210.7 跟我學上機 232第11章 多媒體開發(fā) 23311.1 音頻與視頻 23411.1.1 MediaPlayer播放音頻 23411.1.2 SoundPool播放音頻 23611.1.3 MediaPlayer播放視頻 23811.1.4 VideoView播放視頻 24011.2 攝像頭 24211.2.1 使用系統(tǒng)相機 24211.2.2 自定義相機拍照 24511.3 大神解惑 25011.4 跟我學上機 250第3篇 高 級 應 用第12章 數(shù)據(jù)存儲 25312.1 文件存儲讀寫 25412.1.1 文件操作模式及方法 25412.1.2 讀寫文件操作 25512.1.3 通過DDMS查看存儲內容 25912.2 SharedPreferences存儲 26012.2.1 獲取SharedPreferences對象 26012.2.2 向SharedPreferences中存入 數(shù)據(jù) 26012.2.3 讀取SharedPreferences中的 數(shù)據(jù) 26212.3 數(shù)據(jù)庫存儲 26412.3.1 sqlite3工具的使用 26412.3.2 代碼操作數(shù)據(jù)庫 26612.3.3 SQLiteOpenHelper類 26912.4 大神解惑 27312.5 跟我學上機 274第13章 數(shù)據(jù)共享 27513.1 數(shù)據(jù)共享的標準 27613.1.1 ContentProvider簡介 27613.1.2 什么是URI 27613.1.3 權限 27713.1.4 運行時權限的獲取 27813.2 訪問其他程序的數(shù)據(jù) 28113.2.1 ContextResolver的基本用法 28113.2.2 創(chuàng)建自己的共享數(shù)據(jù) 28413.2.3 輔助類 28613.2.4 打包與解析數(shù)據(jù) 28713.2.5 展示數(shù)據(jù) 28913.3 大神解惑 29113.4 跟我學上機 291第14章 傳感器 29314.1 傳感器簡介 29414.1.1 常用傳感器簡介 29414.1.2 使用傳感器開發(fā) 29414.2 傳感器實戰(zhàn) 29614.2.1 方向傳感器 29614.2.2 加速度傳感器 29714.3 指南針項目 30014.3.1 創(chuàng)建項目 30014.3.2 重繪方法 30014.3.3 更新位置 30114.3.4 國際化開發(fā) 30314.3.5 界面布局 30614.4 大神解惑 30814.5 跟我學上機 308第15章 網(wǎng)絡開發(fā) 30915.1 網(wǎng)絡通信 31015.1.1 網(wǎng)絡通信的兩種形式 31015.1.2 TCP協(xié)議基礎 31015.1.3 TCP簡單通信 31115.1.4 使用多線程進行通信 31115.2 使用URL訪問網(wǎng)絡資源 31615.2.1 使用URL讀取網(wǎng)絡資源 31715.2.2 使用URLconnection提交 請求 31915.3 JSON數(shù)據(jù) 32515.3.1 JSON語法 32515.3.2 JSON和XML的比較 32615.4 構造與解析JSON數(shù)據(jù) 32815.5 大神解惑 33115.6 跟我學上機 331第16章 精通地圖定位 33316.1 引入地圖 33416.1.1 下載百度地圖SDK 33416.1.2 創(chuàng)建百度應用 33516.1.3 將百度SDK加入工程 33816.2 地圖開發(fā) 34016.2.1 實例顯示百度地圖 34016.2.2 定位到自己 34116.2.3 實現(xiàn)方向跟隨 34416.3 輔助功能 34616.3.1 模式切換 34616.3.2 地圖切換 34816.4 大神解惑 34916.5 跟我學上機 350第17章 Android碎片開發(fā) 35117.1 Fragment實現(xiàn) 35217.1.1 Fragment概述 35217.1.2 靜態(tài)實現(xiàn)Fragment 35417.1.3 動態(tài)實現(xiàn)Fragment 35617.2 Fragment與Activity 36017.2.1 Fragment的生命周期 36017.2.2 Activity向Fragment傳值 36417.2.3 Fragment向Activity傳值 36517.2.4 Fragment與Fragment之間的 傳值 36717.3 Fragment的兩個子類 36917.3.1 ListFragment 36917.3.2 DialogFragment 37017.4 大神解惑 37217.5 跟我學上機 372第18章 Android開發(fā)的技巧與調試 37318.1 快捷鍵的使用 37418.1.1 Log類快捷鍵 37418.1.2 開發(fā)快捷鍵 37518.2 調試技巧 38218.2.1 斷點設置 38218.2.2 其他調試技巧 38418.3 DDMS的功能和使用 38618.4 大神解惑 38818.5 跟我學上機 388第4篇 項目開發(fā)實戰(zhàn)第19章 項目實訓1——開發(fā)俄羅斯 方塊 39119.1 開發(fā)背景 39219.2 游戲原理 39219.2.1 組成單元 39219.2.2 運動原理 39419.3 創(chuàng)建項目 39419.3.1 開發(fā)環(huán)境需求 39519.3.2 創(chuàng)建新項目 39519.4 數(shù)據(jù)存儲類 39619.4.1 數(shù)據(jù)存儲 39619.4.2 數(shù)據(jù)初始化 39719.4.3 獲取方塊下標 39819.5 控制類 39819.5.1 編寫控制類 39919.5.2 加載方塊 39919.5.3 是否可移動算法 40019.5.4 定時下降算法 40119.5.5 是否可消行算法 40219.5.6 方塊觸底算法 40319.5.7 速降算法 40319.5.8 方向控制算法 40419.5.9 變形算法 40419.6 界面繪制類 40619.6.1 編寫界面繪制類 40619.6.2 界面繪制 40719.6.3 界面布局 40919.7 項目總結 411第20章 項目實訓2——開發(fā)股票 操盤手 41320.1 系統(tǒng)功能設計 41420.2 創(chuàng)建項目 41420.2.1 開發(fā)環(huán)境需求 41420.2.2 創(chuàng)建新項目 41420.3 歡迎界面設置 41520.3.1 歡迎界面布局 41520.3.2 歡迎界面邏輯設置 41620.4 功能界面設置 41720.4.1 主界面邏輯 41720.4.2 界面中的格柵類 42020.4.3 觸碰位置判斷 42120.4.4 繪制經線 42120.4.5 繪制緯線 42220.4.6 分時界面 42220.5 K線界面設置 42720.5.1 成交蠟燭圖 42720.5.2 繪制詳細信息 42820.5.3 繪制參考信息 43020.6 項目總結 432第21章 項目實訓3——開發(fā)考試系統(tǒng) 43321.1 系統(tǒng)功能設計 43421.2 創(chuàng)建項目 43421.2.1 開發(fā)環(huán)境需求 43421.2.2 創(chuàng)建新項目 43421.3 歡迎界面設置 43521.3.1 歡迎界面布局 43521.3.2 歡迎界面邏輯處理 43621.4 部分類的封裝 43821.4.1 數(shù)據(jù)庫類 43821.4.2 窗口類 43921.4.3 文件類 44021.5 主界面與跳轉頁面 44121.5.1 主界面 44121.5.2 答題界面 44521.5.3 題目類 44621.5.4 查看答案 44721.5.5 編號選題 44821.5.6 收藏題目 44921.6 數(shù)據(jù)庫相關操作 44921.7 項目總結 450第22章 項目實訓4——開發(fā)網(wǎng)上商城 45122.1 系統(tǒng)功能設計 45222.2 創(chuàng)建項目 45222.2.1 開發(fā)環(huán)境需求 45222.2.2 創(chuàng)建新項目 45222.3 歡迎界面 45322.3.1 歡迎界面布局 45322.3.2 歡迎界面邏輯 45422.4 主界面 45422.4.1 界面分類跳轉 45522.4.2 搜索頁面 45622.4.3 廣告輪播 45622.4.4 拍照按鈕 45722.5 搜索頁面 45722.6 分類頁面 45822.6.1 分類數(shù)據(jù)存儲 45822.6.2 分類數(shù)據(jù)顯示 45922.7 購物車頁面 46022.8 用戶信息頁面 46122.8.1 跳轉不同頁面 46122.8.2 賬號登錄頁面 46222.8.3 退出彈窗 46322.8.4 更多信息 46422.9 自定義伸縮類 46422.9.1 成員變量 46522.9.2 觸摸事件 46522.9.3 回縮動畫 46622.10 項目總結 467