0920~0926_夏季暢銷第三波BN

Android實戰手冊-Telephony原理剖析與最佳實作

  • 9 585
    650

活動訊息

想找書的時候,特別想偷看網友的書櫃... 原來大家都在看這本 ↓↓↓

用閱讀開啟視野,讓書成為照亮你人生的光
【金石堂選書】本月推薦您這些好書👉 快來看看

內容簡介

從原始程式碼角度深入解析Telephony的架構設計與實現原理,全面揭示Android系統的通訊機制!

Android 智慧型手機的爆發式成長和逐步從一般手機轉向Android 智慧型手機的廠商,催生了大量的從業人員需求,熟悉Android 智慧型手機開發,特別是熟悉Android Telephony 開發的技術人員越來越受到市場的青睞。

Telephony 模組為智慧型手機的核心套件,是區別行動OS與桌面OS的重要特色。雖然Android來自於Linux,但是在普通Linux中並不存在,對很多從Java 或Linux 開發轉型而來的人員來說,Telephony 顯得陌生而神秘,而且Telephony 由於其固有的通訊複雜度,以及與環境和硬體的較大連結性,一直是Android 智慧型手機開發中的障礙,也是所有智慧型手機專案所必須克服的難度。

作者

楊青平

資深Android系統工程師和軟體發展工程師,熱衷於Android用原始程式碼和系統原理的研究,對Android的系統架構、設計原理以及Telephony和Framework等核心功能模組的工作機制有非常深入的研究。目前就職於國內領先的Android OS提供商ThunderSoft(中科創達),擔任系統架構師。他對J2EE、UML、設計模式等相關技術,以及電信增值業務、電子商務、物聯網等重要軟體行業的運行模式、業務發展規劃也有較深入的瞭解。

目錄

PART 1 基礎篇
第01章 初識Android
1.1 智慧型手機的系統結構
1.2 Android 系統架構  
1.2.1 應用層  
1.2.2 應用框架層
1.2.3 系統執行函數庫層
1.2.4 核心層  
1.3 Android Telephony 框架結構
1.3.1 系統執行函數庫層的HAL 層
1.3.2 簡析HAL 結構
1.3.3 Android 為什麼引用HAL
1.3.4 Android 中HAL 的執行結構
1.4 本章小結   
第02章 架設Android 原始程式碼編譯環境
2.1 Ubuntu Linux 作業系統及工具安裝
2.1.1 PC 設定建議  
2.1.2 Ubuntu 安裝光碟的製作
2.1.3 Ubuntu 安裝過程  
2.1.4 Ubuntu 系統工具套件更新升級
2.1.5 Java 執行環境JDK 安裝及設定
2.1.6 Android SDK 的下載和設定
2.1.7 使用Android SDK 啟動虛擬裝置
2.2 Android 原始程式碼下載及編譯過程
2.2.1 工作目錄設定
2.2.2 原始程式碼下載  
2.2.3 整體編譯Android 原始程式碼  
2.2.4 單一模組隨選編譯  
2.2.5 編譯產生本機Android SDK
2.3 Android 常用工具使用及相關技巧說明  
2.3.1 使用本機編譯成功的鏡像檔案啟動Android 模擬器  
2.3.2 Android 偵錯工具adb 的使用方法
2.3.3 進入Android 虛擬裝置主控台模擬簡訊、來電等功能
2.4 Eclipse 設定及使用
2.4.1 Android 開發套件ADT下載及設定
2.4.2 建立Android 原始程式碼Java 專案  
2.4.3 格式化Android Java 原始程式碼
2.5 使用Source Insight 方便閱讀C/C++ 程式
2.5.1 安裝Wine  
2.5.2 安裝Source Insight
2.5.3 設定Source Insight C/C++ 專案  
2.6 本章小結
第03章 主要技術準備
3.1 何謂同步和非同步  
3.2 Handler 訊息處理機制  
3.2.1 Handler 概念分析  
3.2.2 Handler 特性  
3.2.3 常用Handler 訊息處理機制介紹  
3.2.4 Handler 的作用
3.3 AIDL 跨應用服務  
3.3.1 AIDL 概念分析
3.3.2 AIDL 服務提供方  
3.3.3 AIDL 服務呼叫方  
3.4 廣播  
3.4.1 Android 系統中的廣播
3.4.2 Broadcast 接收
3.4.3 Broadcast 發送  
3.5 本章小結

PART 2 Telephony 通話功能
第04章 架設Android 原始程式碼編譯環境
4.1 通話相關主要原始程式碼整理及簡要說明
4.2 電話主動呼叫流程分析  
4.2.1 執行Android 虛擬裝置  
4.2.2 撥號介面DialtactsActivity 的onCreate 方法
4.2.3 DialpadFragment 撥號鍵Tab 表單  
4.2.4 尋找撥號統一入口OutgoingCallBroadcaster
4.2.5 CallController 撥號placeCall 方法  
4.2.6 Phone 幫助類別PhoneUtils 靜態placeCall 方法
4.2.7 通話大管家CallManager  
4.2.8 Phone 物件的dial 撥號方法
4.2.9 Call 狀態追蹤者GsmCallTracker
4.2.10 RIL 訊息的出入口RIL.java
4.2.11 啟動通話主介面InCallScreen
4.2.12 撥號流程歸納  
4.3 電話被動接收來電流程分析
4.3.1 Android 虛擬裝置模擬接收來電  
4.3.2 RegistrantList 訊息處理機制  
4.3.3 GsmCallTracker 回應RIL 的Call 狀態變化通知
4.3.4 RIL.java 的getCurrentCalls 方法
4.3.5 GsmCallTracker 回應訊息通知
4.3.6 handlePollCalls 發出來電通知  
4.3.7 GSMPhone 的通知方法notifyNewRingingConnection
4.3.8 CallManager 回應來電訊息通知
4.3.9 CallNotifier 回應來電通知
4.3.10 InCallScreen 展現來電介面  
4.3.11 來電流程歸納  
4.4 通話關鍵流程
4.4.1 建立Android 通話模型
4.4.2 AT 指令發送流程
4.4.3 通話狀態變化流程  
4.4.4 本機主動掛斷通話流程
4.4.5 通話對方中斷通話連接流程  
4.5 本章小結
第05章 深入解析Telephony 通話應用機制
5.1 Phone 應用的關鍵程式解析  
5.2 認識通話主介面InCallScreen  
5.2.1 InCallScreen 中的主要方法  
5.2.2 單例模式的Activity 通話介面  
5.2.3 Layout 版面配置說明  
5.3 通話主介面InCallScreen
5.3.1 onCreate—執行Activity  
5.3.2 onNewIntent—單例InCallScreen 載入入口
5.3.3 internalResolveIntent—進入InCallScreen 處理Intent 的唯一方法  
5.3.4 onResume—顯示InCallScreen 通話介面  
5.3.5 handleMessage—Handler 訊息回應方法
5.3.6 onSuppServiceFailed—顯示通話服務失敗提示訊息
5.3.7 updateScreen—更新通話介面
5.3.8 onDisconnect—中斷通話連接  
5.3.9 handleOnscreenButtonClick—回應通話控制按鈕點擊事件
5.3.10 InCallScreen 通話介面執行機制歸納
5.4 通話資訊展示CallCard
5.4.1 兩路通話版面配置View 控制項  
5.4.2 updateState—更新CallCard  
5.4.3 displayMainCallStatus—顯示/ 更新第一線通話資訊
5.4.4 displayOnHoldCallStatus—顯示/ 更新第

序/導讀

前言

時至今日,行動網際網路對人們的影響已無須多言,開放的Android 更加快了行動網際網路的繁榮,也帶動了整個產業鏈的發展。Android 智慧型手機的爆發式成長和逐步從一般手機轉向Android 智慧型手機的廠商,催生了大量的從業人員需求,熟悉Android 智慧型手機開發,特別是熟悉Android Telephony 開發的技術人員越來越受到市場的青睞。

Telephony 模組為智慧型手機的核心套件,是區別行動OS 與桌面OS 的重要特色。雖然Android 來自於Linux,但是在普通Linux 中並不存在,對很多從Java 或Linux 開發轉型而來的人員來說,Telephony 顯得陌生而神秘,而且Telephony 由於其固有的通訊複雜度,以及與環境和硬體的較大連結性,一直是Android 智慧型手機開發中的障礙,也是所有智慧型手機專案所必須克服的難度。

隨著ICT 技術的推廣和發展,在三網融合、智慧的地球(物聯網)等概念風行的形勢下,手機終端技術的發展和進步可謂日新月異;Android 不但通過市場的考驗,並有了較大的市佔率,從手機晶片廠商、手機生產廠商到各種應用開發公司、網際網路公司等,逐步形成了以Android 系統平台為核心的上下游產業鏈。正是由於Android 原始程式碼的開放,各大手機廠商才能透過深度訂製Android 系統平台,在降低研發成本的同時,快速推出具有本身特色的Android 智慧型手機產品。因此,各大手機廠商在推出新版本Android 系統平台手機上投入了極高的研發成本,其中不乏Samsung、Motorola 等國際知名公司。

目前市場上針對Android 的書籍很多,但絕大多數是以Android SDK 在應用層為基礎的開發進行講解的,深入了解Android Telephony 的書籍目前還是空白。而Telephony 基本通訊功能是手機中的核心,在訂製Android 手機的過程中也不例外,手機離開了基本通訊能力,如通話、多媒體簡訊、手機上網等功能,也就失去了它本身的意義。

在Android 手機訂製化的過程中,Telephony 有關的範圍和內容也非常多,從應用層到框架層,再到RIL 與Modem 無線通訊模組的互動,所有部分均有不同程度的訂製和最佳化,因此,在Android 手機平台訂製化研發的過程中,需要對Android Telephony 有全面而深入的了解。本書以Android 4.0.3 原始程式碼為基礎,全面、深入地解析了Android Telephony 有關的主要內容,其中包含Call 通話、ServiceState 連線網路服務狀態、DataConnection 手機上網資料連接以及SMS&MMS 簡訊和多媒體簡訊的應用等,並且詳細解析Android RIL 的執行機制。

如果你是一名Android 經驗豐富的資深使用者,能夠快速架設Android 原始程式碼編譯環境以及熟練Android 開發的基礎知識和技巧,那麼可以跳過第一部分,直接閱讀後面四部分;但如果你是一名Android 初學者,請一定從第1 章的基礎理論知識開始學習。

楊青平

配送方式

  • 台灣
    • 國內宅配:本島、離島
    • 到店取貨:
      金石堂門市 不限金額免運費
      7-11便利商店 ok便利商店 萊爾富便利商店 全家便利商店
  • 海外
    • 國際快遞:全球
    • 港澳店取:
      ok便利商店 順豐 7-11便利商店

詳細資料

詳細資料

    • 語言
    • 中文繁體
    • 裝訂
    • 紙本平裝
    • ISBN
    • 9789863794684
    • 分級
    • 普通級
    • 頁數
    • 464
    • 商品規格
    • 23*17
    • 出版地
    • 台灣
    • 適讀年齡
    • 全齡適讀
    • 注音
    • 級別

商品評價

訂購/退換貨須知

加入金石堂 LINE 官方帳號『完成綁定』,隨時掌握出貨動態:

加入金石堂LINE官方帳號『完成綁定』,隨時掌握出貨動態
金石堂LINE官方帳號綁定教學

提醒您!!
金石堂及銀行均不會請您操作ATM! 如接獲電話要求您前往ATM提款機,請不要聽從指示,以免受騙上當!

退換貨須知:

**提醒您,鑑賞期不等於試用期,退回商品須為全新狀態**

  • 依據「消費者保護法」第19條及行政院消費者保護處公告之「通訊交易解除權合理例外情事適用準則」,以下商品購買後,除商品本身有瑕疵外,將不提供7天的猶豫期:
    1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮食品)
    2. 依消費者要求所為之客製化給付。(客製化商品)
    3. 報紙、期刊或雜誌。(含MOOK、外文雜誌)
    4. 經消費者拆封之影音商品或電腦軟體。
    5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書、電子雜誌、下載版軟體、虛擬商品…等)
    6. 已拆封之個人衛生用品。(如:內衣褲、刮鬍刀、除毛刀…等)
  • 若非上列種類商品,均享有到貨7天的猶豫期(含例假日)。
  • 辦理退換貨時,商品(組合商品恕無法接受單獨退貨)必須是您收到商品時的原始狀態(包含商品本體、配件、贈品、保證書、所有附隨資料文件及原廠內外包裝…等),請勿直接使用原廠包裝寄送,或於原廠包裝上黏貼紙張或書寫文字。
  • 退回商品若無法回復原狀,將請您負擔回復原狀所需費用,嚴重時將影響您的退貨權益。
金石堂門市 全家便利商店 ok便利商店 萊爾富便利商店 7-11便利商店
World wide
活動ing