久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

Android應用程序設(shè)計學習總結(jié)

時間:2019-05-12 06:36:26下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《Android應用程序設(shè)計學習總結(jié)》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《Android應用程序設(shè)計學習總結(jié)》。

第一篇:Android應用程序設(shè)計學習總結(jié)

學習總結(jié)

Android具有開放性。有一下平臺優(yōu)勢:

一、開放性

在優(yōu)勢方面,Android平臺首先就是其開發(fā)性,開發(fā)的平臺允許任何移動終端廠商加入到Android聯(lián)盟中來。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應用的日益豐富,一個嶄新的平臺也將很快走向成熟。

開發(fā)性對于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費者和廠商,而對于消費者來講,隨大的受益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。

二、掙脫運營商的束縛

在過去很長的一段時間,特別是在歐美地區(qū),手機應用往往受到運營商制約,使用什么功能接入什么網(wǎng)絡,幾乎都受到運營商的控制。從去年iPhone上市,用戶可以更加方便地連接網(wǎng)絡,運營商的制約減少。隨著EDGE、HSDPA這些2G至3G移動網(wǎng)絡的逐步過渡和提升,手機隨意接入網(wǎng)絡已不是運營商口中的笑談,當可以通過手機IM軟件方便地進行即時聊天時,再回想不久前天價的彩信和圖鈴下載業(yè)務。

互聯(lián)網(wǎng)巨頭Google推動的Android終端天生就有網(wǎng)絡特色,將讓用戶離互聯(lián)網(wǎng)更近。

三、豐富的硬件選擇

這一點還是與Android平臺的開放性相關(guān),由于Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會影響到數(shù)據(jù)同步、甚至軟件的兼容,如同從諾基亞Symbian風格手機一下改用蘋果iPhone,同時還可將Symbian中優(yōu)秀的軟件帶到iPhone上使用、聯(lián)系人等資料更是可以方便地轉(zhuǎn)移。

四、不受任何限制的開發(fā)商

Android平臺提供給第三方開發(fā)商一個十分寬泛、自由的環(huán)境,不會受到各種條條框框的阻擾,可想而知,會有多少新穎別致的軟件會誕生。但也有其兩面性,血腥、暴力、情色方面的程序和游戲如何控制正是留給Android難題之一。

五、無縫結(jié)合的Google應用

在互聯(lián)網(wǎng)的Google已經(jīng)走過10年度歷史,從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺手機將無縫結(jié)合這些優(yōu)秀的Google服務。

總結(jié)了以上優(yōu)點,但Android本身也有缺陷,千萬不要鉆太深和它較勁,走不過去的地方就想其他路繞,只要簡約樸實不俗套,程序功能健壯就可以;另外多加幾個Android開發(fā)者論壇社區(qū)下源碼發(fā)帖求助,正所謂熟能生巧!

第二篇:Android學習總結(jié)

Android學習總結(jié)

零零碎碎的總結(jié):

1.客戶端的功能邏輯不難,UI界面也不難,但寫UI花的時間是寫功能邏輯的兩倍.2.寫代碼前的思考過程非常重要,即使在簡單的功能,也需要在本子上把該功能的運行過程寫出來.3.要有自己的知識庫,可以是一個工具類,把寫過的,看過的好的代碼放進去,也可以是一個筆記本軟件.因為只有放在知識庫里的東西,才是你最重要的財富.4.如果你想做自由職業(yè)者,你需要學英語,因為在國外的盈利比國內(nèi)多很多.如果你想進大公司,好公司,你需要學英語.你想深入學習android,但中文的android文章太少了,你查查百度,到處都是copy來copy去的hellword,所以,你需要學英語.如果你想出國,你需要學英語.5.Http協(xié)議要研究透徹.http的信息頭有什么信息,分別代表什么,信息體有什么信息,代表什么,都要搞的明明白白.scoket也是一樣.6.在eclipse里的layout文件都有g(shù)raphical Layout.通過這個好好的把UI調(diào)整好.7.Android里的junit每次運行都會打包新的apk到設(shè)備上跑.效率非常慢.如果是跟android無關(guān)的測試,最好自己建立一個單純的java項目做測試.8.面試的時候不要覺得自己提的薪水太高,物以稀為貴明白嗎?不管你的期望薪資多少,都有可能實現(xiàn),這只是時間問題.9.如果一家小公司通過獵頭找到你,即使公司在小,也比外面那些40,50人的公司還要好.不要覺得公司不行,擔心會倒閉.放心吧,至少活1年是沒問題的.10.不要把自己綁在android上,有空也研究下IOS(最近小弟就準備研究ios,剛買了6本書...).11.移動互聯(lián)網(wǎng)最少還有10年的快速增長.android最少還有兩年的快速增長.走android這條路是不會錯的.12.有空多學點開放平臺的SDK.比如新浪微博,騰訊微博,淘寶平臺,支付寶移動支付平臺,快錢移動支付平臺等等..這些都是不愁沒市場的.13.即使技術(shù)再差,也要發(fā)布一個應用到market上去.因為這樣你才了解做一個應用的邏輯.14.每個月拿到薪水省500-1000元出來.這些錢投在買學習資料,去培訓班上課...在培訓班,花再多的錢也是值得的.15.你真正的價值在項目經(jīng)驗和對底層的認識上.不要忽略基礎(chǔ)知識.16.如果有空把Android的源代碼看一下.底層的東西很枯燥,但這些很值得學.17..程序員其實是藝術(shù)家.代碼重構(gòu)和設(shè)計模式,是非常非常重要的東西,必須要學

18.不要去維護一個項目,要去做一個項目.19.一開始不要輕易去大公司,雖然大公司是可以讓你呆一輩子的.但你的起點低,以后成就也低.20:每天早上提前20分鐘上班,5分鐘把今天的工作計劃寫好.15分鐘用來看各大It論壇的新聞.21:如果以前沒做過java,那就把SSH看下,自己搭建一個小服務器.這是為了接私活用.22:PS一定要學,接私活用.23:多下載市面上好的應用,每天都用,只有這樣你才能了解市場.現(xiàn)在所有的APK都可以反編譯,看源代碼麻煩,但看layout和圖片很容易,所以....你懂的.24.要有羞恥心.25.老板僅僅要求你把東西做完,需求完成.但你必須對自己要更嚴格一點.寫一段代碼,從網(wǎng)上復制一份代碼,并不是可以用就行了,你還必須明白他的原理,為什么這樣就可以?這才是對你最有用的地方,這也是你今后薪資增長的保證.26.要懂得舍得.移動領(lǐng)域發(fā)展太快,必要時必須要用錢換時間.不然你會遠遠落后別人(我之前花了4000大洋去培訓班學IOS三天).27.要明白自己想要什么,什么才能最大性價比提高你的能力.對我來說,能讓我提高最大的,就是Android和IOS同時會,并且自己可以做架構(gòu)設(shè)計.28.看android技術(shù)書籍最快的學習方法,先通讀一次.然后把書本上的demo一個一個寫出來.不要覺得太容易不去寫.很多東西都是這樣,看起來簡單,但做起來難.最后再對照自己寫出來的程序代碼去理解書本的意思.29.應用和游戲是2個方向,沒有一個公司會同時做游戲又做應用,即使是外包公司,大多也只做一塊.專精一個就可以了.30.每次做完一個項目,要強迫自己做總結(jié),通過這個項目,我學到了什么新技術(shù)?犯了哪些

SB錯誤?

31.一家小公司,如果有正式財務部,那肯定是正規(guī)的,不要擔心欠薪問題.如果沒有,就說不準了.bbs.12580life.com

第三篇:Android 應用調(diào)查.doc

Android 應用調(diào)查:

分類:系統(tǒng)工具,社交,音樂視頻,瀏覽器輸入法,交通地圖,購物娛樂,閱讀資訊,拍照,詞典,主題桌面,健康,通信,辦公,理財,其它

1.系統(tǒng)工具: 360衛(wèi)士,QQ手機管家,墨跡天氣,ES文件瀏覽器,手機LED燈,Go鎖屏,海桌HiaPa,金山電池醫(yī)生,LEB安全大師,語音360…

2.社交:手機QQ,微博,微信,世紀佳緣,人人,飛信,米聊,開心網(wǎng),騰訊微

博,手機旺旺,MSN,朋友網(wǎng),手機百合,豆瓣,facebook….3.音樂視頻:天天動聽,奇藝,手機電視,Adobe Flash,酷狗音樂播放器,酷我音

樂2012,PPS播放器,手機暴風影音,QQ音樂,QQ影音,QvodPlay,優(yōu)酷,土豆,騰訊視頻,youtube,芒果TV….4.瀏覽器輸入法: UC,手機瀏覽器,搜狗輸入法,百度輸入法,QQ輸入法,Google

輸入法,百度瀏覽器...

5.交通地圖:Google地圖,百度地圖,盛名時刻表,ATM位置通,深圳地鐵…

6.購物娛樂:京東,美團,當當,手機支付寶,趕集,拉手,58同城,凡客,QQ

財付通,樂淘….7.閱讀資訊:QQ手機閱讀,鳳凰閱讀,新浪閱讀,網(wǎng)易閱讀,中關(guān)村在線,掌上

書庫,百度文庫….8.拍照:360手機攝影,9.詞典:有道,新華,金山,Google翻譯,同聲翻譯,天天英語….10.主題桌面:360,go桌面,91手機桌面,Go鎖屏,Go主題…

11.健康:通信,辦公,理財,其它

Android 應用開發(fā)需求: 95%都是公司內(nèi)部產(chǎn)品上面,需要手機客戶端支持,

第四篇:Android學習總結(jié) 20110325專題

Android學習總結(jié)

在這段時間主要對Android平臺有了一定的了解,對一些簡單的設(shè)計也有了一定的掌握Android概念

Android是一個基于Linux核心的開放手持設(shè)備(主要是手機)平臺操作系統(tǒng),與Windows Moble、Symbian等手機操作系統(tǒng)處于同一級別。“Android大獎賽“首頁上列出的可能設(shè)計方向

多媒體工具社交網(wǎng)絡新聞、資訊工具環(huán)保、慈善協(xié)作生產(chǎn)力工具Android Developer Challenge(ADC)游戲?qū)崟r資訊服務嶄新的用戶界面您想到的應用程序項目構(gòu)架

src/:源代碼(sourse)目錄

“src”目錄包含了“Android應用程序”各個程序源文件。對于上例 ”Bmi.java”是新 序項目中的主要程序塊。gen/:自動生成(Generate)目錄

gen目錄中存放所有自動生成的文件。最關(guān)鍵就是R.java,這個文件是自動產(chǎn)生的,與”res”目錄下的XML文件內(nèi)容同步更新。

Android<版本號>/:參考函數(shù)目錄

此目錄的作用是將AndroidSDK里所有可呼叫的類、方法函數(shù),分門別類的列出,好方便開發(fā)者來參考。

assert/:對此目錄目前還不是太懂 res/:資源(Resource)目錄

res目錄存放所有程序中用到的資源文件。在里邊還有兩個經(jīng)常訪問的目錄,分別 “l(fā)ayout/:頁面布局(layout)目錄”和“values/:參數(shù)值(values)目錄”

“AndroidManifest.xml”是Android應用程序的功能列表,每個應用程序都在這個文件中,列出該程序所提供的功能。我完成的BMI程序

此程序是我參考書上的例子所完成的程序。

BMI,英文全稱:Body Mass Index,中文名稱:身高體重指數(shù),是一個計算值,整個程序的思路是當我們在對應的文本框內(nèi)輸入身高(cm)、體重(kg),輸入完成后按下“計算BMI”鍵,屏幕上就會顯示計算結(jié)果,并彈出“你應該節(jié)食”、或“你應該多吃點”等健康建議的信息框。

健康指標的計算方法是:身高(height)/(體重(weight)/100)只要BMI值超過25時就算偏胖、BMI值低于20就算偏瘦,介于這之間算正常。

下面是我完成的程序界面:

計算得到的BMI值是20.57,在20—25之間,體型正常。由于我對兩個文本框內(nèi)輸入的內(nèi)容進行了限制,因此只容許輸入數(shù)字

BMI值為25.56,信息框彈出“你該節(jié)食了”

在界面的下側(cè)有一個“健康小常識按鈕”,當點擊此按鈕時,會鏈接到一個有關(guān)健康生活小常識的網(wǎng)頁上:

在每次點擊“計算BMI值”按鈕后首先會彈出一個消息框,消息框中包括兩個按 鈕,當點擊確認按鈕時消息框消失;當點擊首頁按鈕時會連接到相應的網(wǎng)頁

下圖為點擊消息框確認按鈕后顯示的網(wǎng)頁:

總結(jié)

通過這段時間的學習,對于Android平臺的整個基本框架有了一定的了解,對程序整個運 及相互之間的調(diào)用流程也有了一定的掌握,但感覺自己java基本功比較薄弱,還得進一步學習。由于目前還沒有什么想法,我打算在后面的一段時間內(nèi)主要還是繼續(xù)掌握這方面知識,做一個類似于計算器之類的小軟件,以鞏固我這方面的知識。在查閱資料方面我還有點欠缺,尤其比較怕讀英文資料,這方面還得加強。

第五篇:Android RIL&Call學習總結(jié)

Android RIL與Call代碼學習總結(jié)

前言

本文分五部分:Android電信業(yè)務系統(tǒng)、RIL、Telephony APP Framework、Phone APP、Android通話簡單流程。

1、Android電信業(yè)務系統(tǒng)主要敘述Android整個電信業(yè)務系統(tǒng)的軟件架構(gòu)。

2、RIL主要敘述Android Radio Interface Layer相關(guān)要點,涉及的代碼主要放在hardwareril目錄下。

3、Telephony APP Framework主要簡述電信業(yè)務系統(tǒng)Framework部分代碼相關(guān)要點,涉及的代碼主要放在frameworksbasetelephony目錄下。

4、Phone APP主要敘述Android的電話業(yè)務模塊,涉及的代碼主要放在packagesappsPhone目錄下。

5、Android通話簡單流程主要敘述從上層Phone APP發(fā)起電話的函數(shù)調(diào)用流程。

一、Android電話業(yè)務系統(tǒng)

簡單的說由三部分組成:Telephony Application(Java)+ Telephony Frameworks(Java)+ RIL(C/C++)

二、RIL RIL(Radio Interface Layer),是Android電信業(yè)務系統(tǒng)和底層硬件之間的抽象層,Android提供該層方便用戶移植。手機每次請求相應的電信服務,如電話、短信、網(wǎng)絡連接等,都是通過AT指令與底層硬件進行交互的,拿電話來講,用戶請求撥打電話,需要向RIL發(fā)送相關(guān)的請求,接著RIL按照用戶的請求,調(diào)用相應的AT指令發(fā)送接口給底層發(fā)送AT指令,完成用戶撥打電話的流程。簡單的說,對RIL的移植,主要是針對不同的設(shè)備針對AT指令做相應的修改。

1、RIL移植層的三個組成部分

1)Vendor RIL 提供AT指令發(fā)送接口 2)RIL Daemon 加載RIL相關(guān)的庫同時初始化RIL,注冊RIL相關(guān)函數(shù)接口。同時,RILD也是上層和底層RIL的調(diào)用中轉(zhuǎn)站。3)RIL JNI Layer RIL JNI接口,提供上層Telephony APP Framework調(diào)用

2、RIL的初始化流程

加載ril.lib ? RIL_Init()? RIL_register(),詳細可見ridl.c中的main()函數(shù)。

3、RIL接口的調(diào)用方式

有兩種方式:主動請求(Solicited)和被動請求(Unsolicited)1)主動請求

2)被動請求

void(*OnUnsolicitedResponse)(int unsolResponse, const void *data,size_t datalen);

4、涉及的主要源代碼文件

1)reference-ril.c ? 本文件涉及的重要內(nèi)部函數(shù)及功能 requestRadioPower

開啟通訊模塊 requestQueryNetworkSelectionMode 查詢網(wǎng)絡模式 requestGetCurrentCalls

獲取當前通話 requestDial

請求呼叫 requestWriteSmsToSim

寫入短信至SIM卡 requestHangup

掛斷電話 requestSignalStrength

獲取信號強度 requestRegistrationState

獲取卡注冊狀態(tài) requestOperator

獲取運營商名稱 requestSendSMS

請求發(fā)送短信 requestSetupDataCall

撥號上網(wǎng) requestSMSAcknowledge

短信回報

requestEnterSimPin

請求輸入SIM PIN碼 requestSendUSSD

請求USSD業(yè)務 ? 本文件提供給ril.cpp調(diào)用的外部接口 RIL_Init

RIL初始化 onRequest

AT請求指令接口(異步方式)

getVersion

獲取RIL版本號,當前為“android reference-ril 1.0” onUnsolicited

AT請求指令接口(同步方式)

2)ril.cpp 該文件主要提供ril.java調(diào)用接口,實現(xiàn)RIL的JNI調(diào)用方式、RIL Event管理機制 ? 實現(xiàn)了供上層調(diào)用的接口 typedef struct {

int requestNumber;

void(*dispatchFunction)(Parcel &p, struct RequestInfo *pRI);

int(*responseFunction)(Parcel &p, void *response, size_t responselen);} CommandInfo;具體執(zhí)行的操作可以看頭文件ril_commands.h 舉一個例子:

撥打電話,對應的requestNumber為RIL_REQUEST_DIAL,對應的dispatchFunction為dispatchDial,對應的responseFunction為responseFunction。? RIL Event管理

與ril_event.cpp的Event接口配合實現(xiàn)RIL Event管理 RIL_startEventLoop rilEventAddWakeup eventLoop ril_event_init ril_event_set ril_event_add ril_event_del 4)rild.c rild的主要初始化工作都在main函數(shù)中進行。

5、RIL JNI上層對外接口

SetOnNITZTime

getIccCardStatus

supplyIccPin

supplyIccPuk

supplyIccPin2

supplyIccPuk2

changeIccPin

changeIccPin2

getCurrentCalls

getPDPContextList dial

getIMSI

getIMEI

getIMEISV

hangupConnection

acceptCall

rejectCall

getLastCallFailCause getLastPdpFailCause getLastDataCallFailCause setMute

getMute

getSignalStrength

getRegistrationState getGPRSRegistrationState getOperator

設(shè)置網(wǎng)絡身份和時區(qū) 獲取SIM卡狀態(tài) 輸入PIN碼 輸入PUK碼 輸入PIN2碼 輸入PUK2碼 修改PIN碼 修改PIN2碼 獲取當前通話 獲取PDP列表 撥號

獲取IMSI 獲取IMEI 獲取IMEISV 掛斷電話 接聽電話 電話拒接

獲取Call失敗錯誤碼 獲取PDP失敗錯誤碼 獲取撥號連接失敗錯誤碼

設(shè)置手機靜音模式(靜音/非靜音)獲取手機靜音模式(靜音/非靜音)獲取信號強度 獲取卡注冊狀態(tài) 獲取GPRS注冊狀態(tài) 獲取運營商 sendDtmf

startDtmf stopDtmf sendSMS deleteSmsOnSim writeSmsToSim

發(fā)送DTMF Start DTMF Stop DTMF 發(fā)送短信

刪除SIM卡短信 保存短信至SIM卡

6、RIL機制

RIL類有三個內(nèi)部類:RILRequest、RILSender、RILReceiver,這三個內(nèi)部類共同實現(xiàn)上層的電信業(yè)務操作請求。

RILRequest,電信服務請求,上層應用通過該類與RIL JNI層進行消息的交互,同時RIL JNI層也通過該類與RIL底層進行消息的交互; RILSender,實現(xiàn)上層請求的命令發(fā)送 RILReceiver,負責接收底層的Response ? 以下是dial的RIL調(diào)用序列 ?上層調(diào)用dial ?設(shè)置Request請求并發(fā)送至RILSender消息處理隊列

RILRequest rr = RILRequest.obtain(RIL_REQUEST_DIAL, result);…

send(rr);? RILSender消息處理隊列消息隊列收到EVENT_SEND后往mSocket里邊填寫相應請求 ?RILD從mSocket中讀取相應的請求為RIL_REQUEST_DIAL,并設(shè)置相應的event ?執(zhí)行dispatchDial ? onRequest ? requestDial發(fā)送AT指令

?底層給予responseVoid的響應

?RILD向mSocket填寫相應的響應信息,并往RILReceiver消息隊列發(fā)送 ? processResponse ?processSolicited ?responseVoid(JNI)

三、Telephony APP Framework概述

電信業(yè)務Framework涉及Call、SMS、SIM卡、PDP等,代碼分為兩個部分,一個是SDK API,一個是平臺內(nèi)部類,不對外開放。這部分簡單的說,就是上層電信業(yè)務與底層RIL的中間層。

1、Internal Class 1)ADN(Abbreviated Dialing Numbers,縮位撥號)相關(guān)的類 AdnRecord AdnRecordCache AdnRecordLoader 2)Call相關(guān)的類

Call:基類,GsmCall和CdmaCall都由該基類擴展實現(xiàn) CdmaCal GsmCall

CallTracker:基類,GsmCallTracker和CdmaCallTracker都由這個基類進行擴展實現(xiàn) GsmCallTracker: CdmaCallTracker PhoneBase:基類,CDMAPhone和GSMPhone都由這個基類擴展實現(xiàn) CDMAPhone GSMPhone Phone:電話操作的一些接口 CallerInfo CallerInfoAsyncQuery CallForwardInfo:呼叫轉(zhuǎn)移

CallFailCause:GSM Call失敗錯誤碼 CallFailCause:CDMA Call失敗錯誤碼 3)數(shù)據(jù)連接相關(guān)類

DataConnection:基類,GsmDataConnection和CdmaDataConnection都基于該類擴展實現(xiàn) GsmDataConnection CdmaDataConnection DataConnectionTracker:基類,CdmaDataConnectionTracker和GsmDataConnectionTracker都基于該類進行擴展實現(xiàn) CdmaDataConnectionTracker GsmDataConnectionTracker 4)SIM卡相關(guān)類

IccCard:基類,RuimCard和SimCard都由該類進行擴展實現(xiàn) RuimCard SimCard IccRecords:基類,RuimRecords和SIMRecords都基于該類進行擴展實現(xiàn) RuimRecords SIMRecords IccProvider IccUtils 5)SMS相關(guān)類

SMSDispatcher:實現(xiàn)發(fā)送短信

SmsMessageBase:基類,SmsMessage由該類擴展實現(xiàn) SmsMessage:短信PDU包解析

2、SDK API Class 實現(xiàn)SDK API接口,具體架構(gòu)見SDK API文檔

四、Phone APP Android自帶一個Phone App,實現(xiàn)了GSM/CDMA的通話功能,這部分代碼放在packagesappsPhone目錄下。

Phone APP開機就運行了,可以從AndroidManifest.xml設(shè)置的應用權(quán)限看出來

。開機做如下初始化工作:

A、初始化Telephony Framework B、Power、Ringer、Keyboard、狀態(tài)欄、SIM卡的注冊工作 C、CallNotifier、PhoneUtils初始化工作 具體可以參見onCreate Phone APP有如下幾個重要的類

? PhoneApp requestWakeState:判斷手機是否可休眠 wakeUpScreen:喚醒手機

PhoneAppBroadcastReceiver:內(nèi)部類,可以實時監(jiān)測手機的狀態(tài),飛行模式、藍牙耳機等。? PhoneUtils 電話基本組件接口,實現(xiàn)電話的一些基本操作,如Dial、Answer、Hangup、Hold等 placeCall:電話呼出 Hangup:掛斷電話 answerCall:接聽電話

setMute/ setMuteInternal:靜音 turnOnSpeaker:免提

showIncomingCallUi:顯示來電界面 ? InCallScreen 該類實現(xiàn)通話界面流程,主要如下:

case R.id.menuAnswerAndHold,保持當前通話并接聽: internalAnswerCall ? PhoneUtils.answerCall(mPhone)case R.id.menuAnswerAndEnd,結(jié)束當前通話并接聽:

internalAnswerAndEnd ? PhoneUtils.answerAndEndActive(mPhone)case R.id.menuAnswer,接聽:

internalAnswerCall ? PhoneUtils.answerCall(mPhone)case R.id.menuIgnore,忽略:

internalHangupRingingCall ? PhoneUtils.hangupRingingCall(mPhone)case R.id.menuSwapCalls,切換通話:

internalSwapCalls ? PhoneUtils.switchHoldingAndActive(mPhone)case R.id.menuMergeCalls,合并通話: PhoneUtils.mergeCalls(mPhone)case R.id.menuManageConference,管理電話會議:

setInCallScreenMode(InCallScreenMode.MANAGE_CONFERENCE)case R.id.menuShowDialpad,顯示撥號鍵盤: onShowHideDialpad ? mDialer.openDialer(true)case R.id.menuSpeaker,免提:

onSpeakerClick ? PhoneUtils.turnOnSpeaker case R.id.menuBluetooth,藍牙: onBluetoothClick case R.id.menuMute,靜音:

onMuteClick ? PhoneUtils.setMute case R.id.menuHold,通話保持: onHoldClick case R.id.menuAddCall,添加通話: PhoneUtils.startNewCall(mPhone)case R.id.menuEndCall,結(jié)束通話: internalHangup ? PhoneUtils.hangup(mPhone)? DTMFTwelveKeyDialer 該類實現(xiàn)DTMF processDtmf:發(fā)送DTMF clearDigits:清除DTMF鍵碼 startDtmfTone:播放DTMF Tone stopDtmfTone:停止播放DTMF Tone ? CallNotifier 繼承于Handler,用來實時監(jiān)測通話狀態(tài)并通知Phone Application,如PHONE_NEW_RINGING_CONNECTION(來電),PHONE_INCOMING_RING(來電響鈴),PHONE_DISCONNECT(通話掛斷),PHONE_BATTERY_LOW(電池電量低),具體相對應的處理可參見handleMessage ? CallFeaturesSetting 實現(xiàn)通話設(shè)置,此外該類包含一個內(nèi)部類VoiceMailProviderSettings用來實現(xiàn)語音信箱的設(shè)置

? CallCard/ InCallTouchUi 這兩個類都是繼承于FrameLayout,Phone用來實現(xiàn)通話自身的布局需求。

updatePhotoForCallState:更新替代圖片(如果通話號碼有設(shè)置特定代替圖片的)updateDisplayForConference:通話UI更新(用于電話會議)updateDisplayForPerson:通話UI更新

getCallFailedString:獲取通話失敗錯誤字符串 displayOnHoldCallStatus:顯示通話保持UI displayMainCallStatus:更新通話UI updateState:更新通話狀態(tài)(供外部類調(diào)用)? BluetoothHandsfree/BluetoothHeadsetService 實現(xiàn)通話藍牙耳機功能,其實現(xiàn)核心是BluetoothHeadsetService,在PhoneApp 創(chuàng)建的時候會啟動它。BluetoothHeadsetService 通過接收底層藍牙服務的狀態(tài)消息來改變自身狀態(tài),同時它也會監(jiān)聽通話的狀態(tài)變化。onBluetoothEnabled:開啟藍牙設(shè)備 onBluetoothDisabled:關(guān)閉藍牙設(shè)備 connectHeadset:連接藍牙設(shè)備 audioOn:開啟audio audioOff:關(guān)閉audio redial:通過藍牙設(shè)備重播電話 updateBatteryState:更新電池強度 updateSignalState:更新信號強度

五、Android通話簡單流程

1、撥打流程(以電話本入口為例)

?進入電話本,以某個聯(lián)系人發(fā)起呼叫,此時進入TwelveKeyDialer類的onClick函數(shù)case R.id.dialButton分支,啟動OutgoingCallBroadcaster Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//以新的TASK啟動 ?OutgoingCallBroadcaster發(fā)出Broadcast Announcement sendOrderedBroadcast(broadcastIntent, PERMISSION,new OutgoingCallReceiver(), null, Activity.RESULT_OK, number, null);?收到Broadcast后,進入OutgoingCallReceiver中的doReceive啟動InCallScreen ?進入internalResolveIntent mInCallInitialStatus = internalResolveIntent(getIntent());?placeCall ?PhoneUtils.placeCallVia/ PhoneUtils.placeCall ? Connection cn = phone.dial(number);Phone是Interface,所屬的dial接口是在PhoneBase的子類GSMPhone中實現(xiàn) ?進入GsmCallTracker類中的dial函數(shù) mCT.dial(newDialString);?調(diào)用CommandsInterface的dial接口

cm.dial(pendingMO.address, clirMode, obtainCompleteMessage());CommandsInterface的dial接口是在RIL.java中實現(xiàn)的 ?調(diào)用JNI接口dial ?……后續(xù)就是RIL JNI與libril的交互過程,見RIL機制

2、來電流程

?CallNotifier的消息處理隊列會收到PHONE_NEW_RINGING_CONNECTION ?onNewRingingConnection響鈴或震動(來電自動接聽也在里邊處理)?顯示來電界面InCallScreen PhoneUtils.showIncomingCallUi();

3、來電處理

? 接聽

?internalAnswerCall

?PhoneUtils.answerCall(mPhone)

?關(guān)閉來電鈴聲等,進入接聽流程phone.acceptCall()?調(diào)用GsmCallTracker的acceptCall mCT.acceptCall();?調(diào)用CommandsInterface acceptCall 接口 cm.acceptCall(obtainCompleteMessage())

?調(diào)用RIL JNI接口acceptCall向底層發(fā)送請求

?……后續(xù)就是RIL JNI與libril的交互過程,見RIL機制 ? 掛斷

? internalHangup ? PhoneUtils.hangup(mPhone)? 調(diào)用GsmCallTracker的handup ?調(diào)用CommandsInterface hangupConnection接口

cm.hangupConnection(conn.getGSMIndex(), obtainCompleteMessage());?調(diào)用RIL JNI接口hangupConnection向底層發(fā)送掛斷請求 ?……后續(xù)就是RIL JNI與libril的交互過程,見RIL機制 ? 通話保持恢復

PhoneUtils.switchHoldingAndActive(mPhone)? 添加一個新通話,實現(xiàn)多方通話 PhoneUtils.startNewCall(mPhone)

Android_Phone源代碼來電流程解讀

***************************CallNotifier***************************

本類extends Handler并且implements CallerInfoAsyncQuery.OnQueryCompleteListener

電話狀態(tài)改變之后本類會接到Message,然后本Handler通過Message的不同,進入不同的case:

然后調(diào)用不同的方法處理各種狀態(tài)改變。

同時實現(xiàn)了OnQueryCompleteListener接口,當來電的時候會幫助執(zhí)行查詢操作,比如查詢并調(diào)用

Ringer設(shè)置響鈴方式。

當來電時,本類會接受到一個PHONE_NEW_RINGING_CONNECTION(Message.what),然后調(diào)用對應的方法

onNewRingingConnection(),該方法又會調(diào)用startIncomingCallQuery()方法,該方法就查詢用戶

設(shè)置的鈴聲(可能是系統(tǒng)的,也可能是用戶自定義的),如果查詢完成則直接調(diào)用onQueryComplete().假如執(zhí)行超時的話,將會發(fā)送一個延時Message,延時后將默認調(diào)用系統(tǒng)的鈴聲。

假如在延時發(fā)送Message過程中Query已經(jīng)完成,由于CallNotifier實現(xiàn)了OnQueryCopleteListener,就會自動調(diào)用onQueryComplete()方法,該方法將會首先把可能存在的延時Message給Remove,以防止

再次設(shè)置鈴聲。接著調(diào)用onCustomRingQueryComplete()方法。然后該方法里面會調(diào)用Ringer的ring()

方法啟動響鈴。

********************************Ringer*************************** Ringer的ring()方法會啟動相應的響鈴方式。

響鈴之后將會又Message發(fā)送,其內(nèi)容為PHONE_STATE_CHANGED

*******************************InCallScreen**********************

InCallScreen將會接受到發(fā)送的PHONE_STATE_CHANGED消息,然后調(diào)用onPhoneStateChanged()方法

該方法將更新屏幕,CallNotifier的onCustomRingQueryComplete里也會通過PhoneUtils.showIncomingCallUi()

來啟動InCallScreen屏幕。然后由InCallScreen處理,處理方式與前面打電話的大體一致,不過該類第一次調(diào)用時執(zhí)行了

onCreate()方法,但是以后執(zhí)行都是從onNewIntent()開始.

下載Android應用程序設(shè)計學習總結(jié)word格式文檔
下載Android應用程序設(shè)計學習總結(jié).doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔相關(guān)法律責任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    Android的學習總結(jié)

    Android學習總結(jié) Android的學習總結(jié) 現(xiàn)在對于Android的學習已有斗個學期了,但它對我來說其實還是一個大大的謎,還有待我去對它一一揭曉。 在還沒有學習Android這門課之前,當聽......

    android PopupWindow學習總結(jié)[合集]

    PopupWindow學習總結(jié)經(jīng)過一段時間的學習,了解了PopupWindow的基本用法,如下: 1、為PopupWindow的view布局,通過LayoutInflator獲取布局的view.如: LayoutInflater inflater =......

    Android 學習總結(jié)1(范文)

    1應用程序配置全屏 應用程序配置全屏: 【bug】 但是系統(tǒng)提示的是: android:style/Theme_NoTitleBar_Fullscreen ——錯誤的配置 Android的bug。去掉標題欄: android:theme="@a......

    《 Android應用程序設(shè)計課程設(shè)計》課程設(shè)計報告書(移動16-049-楊芝源)

    廣東職業(yè)技術(shù)學院課程設(shè)計報告書 2017-2018學年第一學期 課程名稱:《Android應用程序設(shè)計課程設(shè)計》 設(shè)計題目: 計算器的設(shè)計和實現(xiàn) 系別: 信息工程系 班級: 移動16 姓 名: 楊......

    Android應用課程設(shè)計題目

    Android應用與開發(fā)課程設(shè)計題目 注意事項: 1、小組可選下列題目中的一題完成課程設(shè)計,或者自擬題目。 2、課程設(shè)計于第16周和17周小課進行演示講解, 并要求17周結(jié)束前以小組為......

    Android總結(jié)

    Android四大組件: Activity—表現(xiàn)屏幕界面Service—后臺服務 BroadcastReceiver—實現(xiàn)廣播機制ContentProvider—實現(xiàn)數(shù)據(jù)存儲 Intent類:用來啟動程序并傳遞信息的類 用于A......

    Android地圖和定位學習總結(jié)

    Android地圖和定位學習總結(jié) 首屆 Google 暑期大學生博客分享大賽——2010 Android 篇 android.location包下有這么一些接口和類: Interfaces GpsStatus.Listener GpsStatus.N......

    android vold學習總結(jié)(五篇范文)

    vold學習總結(jié) Vold(volume daemon):源碼路徑android/system/vold,部分引用代碼位于android/system/core/libsysutils/src,android/system/core/include/sysutils/下。 它用于......

主站蜘蛛池模板: 国产成人精品日本亚洲11| 亚洲av成人无码网站| 人妻丰满熟妇a无码区| 亚洲欧美精品综合一区| 野外做受又硬又粗又大视幕| 日韩a片无码一区二区三区电影| 18禁黄网站禁片免费观看国产| 亚洲av无码乱码忘忧草亚洲人| 一区二区三区无码视频免费福利| 国产农村熟妇videos| 亚洲а∨天堂久久精品| 人人妻人人爽人人澡av| 亚洲春色在线视频| 99无码熟妇丰满人妻啪啪| 人妻互换一二三区激情视频| 无码熟妇人妻av在线网站| 极品少妇hdxx麻豆hdxx| 国产在线一区二区香蕉 在线| 日本va欧美va精品发布| 男女扒开双腿猛进入免费看污| av无码精品一区二区三区三级| 777亚洲精品乱码久久久久久| 免费观看亚洲人成网站| а√天堂中文在线资源库免费观看| 午夜一区欧美二区高清三区| 亚洲综合久久一本伊一区| 中文乱幕日产无线码| 欧性猛交ⅹxxx乱大交| 偷偷色噜狠狠狠狠的777米奇| 久久成人国产精品免费软件| 精品国产乱码久久久久夜深人妻| 亚洲精品无码专区在线| 日出水了特别黄的视频| 无码欧美黑人xxx一区二区三区| 性生交片免费无码看人| 久久精品女人天堂av免费观看| 久久久久国色av免费观看性色| 国产精品高潮呻吟av久久动漫| 精品久久久久久无码人妻蜜桃| 无码人妻精品丰满熟妇区| av蓝导航精品导航|