近年來Android的興起和對移動手持設備開發領域的沖擊,已成熱門話題。《Android移動編程實用教程》共10章和兩個附錄,詳細敘述了Android移動編程的基本概念,Android的視圖層(View),應用程序和Activity,控制層(Intent、廣播接收器、Adapter和網絡應用),持久層(Android文件、Shared Preferences、SQLites數據庫、內容提供器),GPS與谷歌地圖應用,Android后臺工作(Service、線程、Toast、Notification、Alarm)和P2P通信(SMS短信、IM),Android多媒體技術(音視頻采集播放、圖片與二維動畫、OpenGL和三維圖形),Android的其他應用(電話、傳感器、振動器、觸摸屏、藍牙、Wi-Fi、AIDL、Droid Draw可視化開發、App Widgets、Surface View),涵蓋了Android的流行版本和新版本的主要功能和特性,全面介紹了Android手機編程的基本原理、技術和應用模式。《Android移動編程實用教程》立足實用,實例豐富,有實驗指導書、教學大綱和習題,便于學習與教學。
開放手機聯盟(Open Handset Alliance)是美國Google公司2007年11月宣布組建的一個全球性的聯盟組織,這一聯盟支持Google發布的Android手機操作系統(現為3.2版)和應用軟件,共同開發名為Android的開放源代碼的移動系統。開放手機聯盟包括手機制造商、手機芯片廠商和移動運營商幾類。目前,聯盟成員數量已經達到了包括Lenovo、琦基、戴爾、三星、摩托羅拉、中國移動、英特爾、Kogan、索愛、華為、華碩、多普達、愛可視、Archos、Sprint、T-Mobile、Teleca AB等在內的40多家。其開源、功能強大和用戶廣泛對傳統的諾基亞手機軟件開發提出了嚴峻挑戰,已成取代之勢。Android移動編程課程已經成為高等學校應運而生的“軟件技術專業(移動編程方向)”、“計算機科學與技術專業(移動編程方向)”、“移動云計算專業”和“計算機通信專業(移動編程方向)”等專業普遍設置的一門專業課或專業選修課。
越來越多的人希望學習Android移動編程,但目前大多是Android的技術參考書,讀者希望有其新版本、實用的高校教材出版,本書便是為滿足此要求編著的,主要特點如下。
(1)“理論與實踐相結合”,既有實用性,又有可持續性。本書既講解云和Android移動云計算概念、Android的體系結構等Android移動編程的基本原理和技術理論,又注重與實踐相結合,突出對Android移動編程實際能力的培養。
(2)本書著眼于Android 3.2版本的新特點,同時也介紹了Android 1.5、2.2、2.3等版本的內容。既體現了其最新技術的先進性,又注意兼顧其他版本用戶還較多的情況。
(3)本書實例、案例來自企業真實的項目(如第10章Android綜合實例--跨國公司企業內部網絡新聞信息管理系統FoxNews),既適合“校企合作”、“工學結合”的人才培養模式,又滿足實行“卓越工程師計劃”,提高工程師素質、進行CDIO方面的教育。
(4)本書著重于手機和SMS(短信)開發的同時,注意反映其他技術的開發,既有個別性又有全面性。增加了別的Android書大多沒有的即時消息(IM)、OpenGL與三維圖形技術、Android的WebKit、藍牙通信、Wi-Fi、傳感器、振動器、觸摸屏、AIDL、SurfaceView等,涵蓋了Android的主要功能和特性。
(5)內容安排按人們學習認知的規律,即從簡單到復雜的認識轉化過程與基于工作過程的教學過程相結合。本書以“現代戰爭演習模擬管理信息系統(FoxWar)”作為項目驅動貫穿全書,經歷了學習Android編程從實踐到理論、理論到實踐的過程,符合人們學習的認知規律。
(6)突出培養實踐動手能力,突出案例(有各章示例和綜合實例等),配有實驗指導書、教學大綱、習題等,便于學習與教學,力圖使學生學習本書后基本可以編制Android移動應用程序。
本書由劉甫迎、劉焱編著。劉甫迎編著第1章、第3章至第10章;劉焱編著第2章、附錄A和附錄B,全書由劉甫迎教授統稿。其他參編人員:周紹敏、李朝蓉、楊雅志、黨晉蓉、李琦、王蓉、李飛躍、龔茗茗、謝春、饒斌、陳振梁、樊婷婷。在編著和出版的過程中,電子工業出版社的編輯給予了積極的支持,在此表示感謝。
劉甫迎
第1章 Android移動編程基礎
1.1 云和Android移動云計算的編程開發
1.1.1 云和移動云計算的概念
1.1.2 Android的興起及其對移動手持設備開發領域的沖擊
1.2 Android的特點及系統架構
1.2.1 Android的概念及特性
1.2.2 Android的系統架構
1.3 Android的開發環境及創建Android項目
1.3.1 下載、安裝和搭建Android開發平臺
1.3.2 創建、配置、調試與運行第一個Android項目
1.3.3 Android項目的目錄結構
1.3.4 打開和載入現有項目
1.4 Android程序的MVC模式
1.5 Android的常用工具
1.5.1 Android 模擬器
1.5.2 Dalvik調試監控服務及程序除錯
1.5.3 Android調試橋
1.6 Android Market
習題
第2章 初識Android的視圖層
2.1 用戶界面及程序設計初步
2.1.1 描述和設計用戶界面
2.1.2 存取識別符號
2.1.3 解讀程序流程
2.1.4 事件處理與監聽
2.1.5 加入對話框
2.1.6 提示信息
2.1.7 錯誤處理
2.1.8 初見Intent
2.1.9 加入菜單
2.2 定制新的View視圖
2.2.1 Android UI布局
2.2.2 修改現有的View
2.2.3 創建復合控件
2.2.4 創建定制的Widgets和控件
2.2.5 使用定制的控件
習題
第3章 Android應用程序和Activity
3.1 組成Android程序的核心組件
3.2 程序清單
3.2.1 程序清單簡介
3.2.2 使用程序清單編輯器
3.3 Android應用程序的生命周期
3.3.1 Android應用程序生命周期簡介
3.3.2 應用程序的優先級和進程狀態
3.4 Android中的資源訪問
3.4.1 資源的類型、布局和創建
3.4.2 資源的使用及主題中的引用樣式
3.4.3 為不同的國際語言和硬件創建資源
3.4.4 運行時更改配置
3.5 Android的Activity
3.5.1 Activity的創建、注冊和登記
3.5.2 Activity的生命周期
3.5.3 Android活動類
習題
第4章 Android控制層的Intent、廣播接收器、Adapter和網絡應用
4.1 Android的Intent
4.1.1 Intent和Intent Filter
4.1.2 啟動另一個Activity
4.1.3 Bundle類的作用
4.1.4 Intent的Action常量
4.2 Android的BroadcastReceiver
4.2.1 使用BroadcastReceiver
4.2.2 接收其他廣播Intent
4.2.3 彌補BroadcastReceiver的耗時處理
4.3 Android的Adapter開發
4.3.1 Android的Adapter
4.3.2 使用Adapter綁定數據
4.4 Android的網絡編程
4.4.1 Android的HTTP網絡編程
4.4.2 使用WebKit瀏覽器
4.4.3 使用Socket、ServerSocket進行網絡編程
4.5 創建一個現代戰爭演習模擬管理信息系統
習題
第5章 Android的持久層開發
5.1 Android的文件
5.1.1 文件數據的存儲與讀取
5.1.2 將文件存放在SDCard
5.1.3 使用SAX、DOM或Pull解析XML文件
5.1.4 使用多線程下載文件
5.2 Android的SharedPreferences存儲類
5.2.1 使用SharedPreferences進行數據存儲
5.2.2 訪問SharedPreferences中的數據
5.2.3 為FoxWar系統創建一個Preferences頁
5.3 Android的SQLite數據庫
5.3.1 使用SQLite數據庫存儲數據
5.3.2 使用SQLiteOpenHelper對數據庫進行版本管理
5.3.3 使用SQLiteDatabase操作SQLite數據庫
5.3.4 使用事務操作SQLite數據庫
5.4 Android的內容提供器組件
5.4.1 使用ContentProvider共享數據
5.4.2 介紹URI
5.4.3 ContentProvider類的主要方法
5.4.4 使用ContentResolver操作ContentProvider中的數據
5.4.5 創建和使用FoxWar系統內容提供器
習題
第6章 Android中的GPS與谷歌地圖應用
6.1 Android中的GPS應用
6.1.1 基于位置的服務與模擬位置提供器
6.1.2 選擇一個Location Provider
6.1.3 定位和追蹤
6.1.4 鄰近提醒
6.1.5 Geocoder反向、前向編碼
6.2 Android中的地圖應用
6.2.1 創建一個基于地圖的活動
6.2.2 配置和使用MapView
6.2.3 創建和使用覆蓋
6.2.4 將View固定到地圖及其某個位置
6.3 對FoxWar系統添加地圖功能
習題
第7章 Android的后臺工作和P2P通信
7.1 Android的Service
7.1.1 創建和控制Service
7.1.2 將Activity和Service綁定
7.2 應用工作線程
7.2.1 創建新的線程
7.2.2 為GUI操作同步線程
7.2.3 將FoxWar Service移動到后臺線程
7.3 在工作線程中使用Toast
7.3.1 定制Toast
7.3.2 線程中Toast的使用
7.4 使用Notification通知用戶
7.4.1 Notification Manager及創建Notification
7.4.2 觸發Notification
7.4.3 向FoxWar系統添加Notification
7.4.4 高級Notification技術(發聲、振動、閃屏、連續)
7.5 Android的Alarm
7.5.1 使用Alarm
7.5.2 使用Alarm更新FoxWar系統
7.6 短信發送器
7.6.1 發送SMS信息
7.6.2 接收SMS信息
7.7 Android的即時消息
7.7.1 建立GTalk連接、進行IM會話
7.7.2 在線狀態和聯系人列表
7.7.3 聊天會話的管理
7.7.4 用GTalk發送和接收數據信息
習題
第8章 Android中的多媒體技術
8.1 Android的多媒體播放
8.1.1 從源文件中播放
8.1.2 從文件系統中播放
8.1.3 從網絡中播放
8.2 Android的多媒體采集
8.2.1 錄制音/視頻
8.2.2 攝像頭及照相
8.3 Android中圖片的訪問
8.3.1 通過圖片文件創建Drawable對象
8.3.2 通過XML文件定義Drawable屬性
8.3.3 Bitmap和BitmapFactory
8.4 Android的二維動畫
8.4.1 Frame動畫
8.4.2 Tween動畫
8.4.3 View動畫
8.5 動態圖形繪制與特效
8.5.1 動態圖形繪制簡介
8.5.2 動態圖形繪制類
8.5.3 幾何圖形的繪制
8.5.4 通過Matrix實現旋轉、縮放和平移
8.5.5 通過Shader類渲染圖形
8.6 OpenGL與Android的三維圖形
8.6.1 OpenGL ES
8.6.2 Android的三維圖形
習題
第9章 Android的其他高級應用技術
9.1 Android的其他常用硬件應用技術
9.1.1 電話管理
9.1.2 傳感器與SensorManager
9.1.3 振動器管理
9.1.4 觸摸屏管理
9.2 Android的無線通信技術
9.2.1 藍牙通信