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

Android學(xué)習(xí)之TextView屬性總結(jié)

時(shí)間:2019-05-13 19:14:25下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《Android學(xué)習(xí)之TextView屬性總結(jié)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《Android學(xué)習(xí)之TextView屬性總結(jié)》。

第一篇:Android學(xué)習(xí)之TextView屬性總結(jié)

IT在線教育平臺(tái)———麥子學(xué)院:http://www.tmdps.cn

TextView作為android開發(fā)中最簡(jiǎn)單也最常用的控件,作為初學(xué)者,需要熟知其屬性并熟練掌握。如下例:

android:autoLink:設(shè)置是否當(dāng)文本為URL鏈接/email/電話號(hào)碼/map時(shí),文本顯示為可點(diǎn)擊的鏈接。可選值(none/web /email/phone/map/all)android:autoText:如果設(shè)置,將自動(dòng)執(zhí)行輸入值的拼寫糾正。此處無(wú)效果,在顯示輸入法并輸入的時(shí)候起作用。

android:bufferType:指定getText()方式取得的文本類別。選項(xiàng)editable 類似于StringBuilder可追加字符,也就是說(shuō)getText后可調(diào)用append方法設(shè)置文本內(nèi)容。spannable 則可在給定的字符區(qū)域使用樣式,參見這里

1、這里2。

android:capitalize:設(shè)置英文字母大寫類型。此處無(wú)效果,需要彈出輸入法才能看得到,參見EditView此屬性說(shuō)明。

android:cursorVisible:設(shè)定光標(biāo)為顯示/隱藏,默認(rèn)顯示。

android:digits:設(shè)置允許輸入哪些字符。如“1234567890.+-*/%()”

android:drawableBottom:在text的下方輸出一個(gè)drawable,如圖片。如果指定一個(gè)顏色的話會(huì)把text的背景設(shè)為該顏色,并且同時(shí)和background使用時(shí)覆蓋后者。android:drawableLeft:在text的左邊輸出一個(gè)drawable,如圖片。

android:drawablePadding:設(shè)置text與drawable(圖片)的間隔,與drawableLeft、drawableRight、drawableTop、drawableBottom一起使用,可設(shè)置為負(fù)數(shù),單獨(dú)使用沒(méi)有效果。

android:drawableRight:在text的右邊輸出一個(gè)drawable。android:drawableTop:在text的正上方輸出一個(gè)drawable。android:editable:設(shè)置是否可編輯。

android:editorExtras:設(shè)置文本的額外的輸入數(shù)據(jù)。

android:ellipsize:設(shè)置當(dāng)文字過(guò)長(zhǎng)時(shí),該控件該如何顯示。有如下值設(shè)置:”start”—?省略號(hào)顯示在開頭;”end” ——省略號(hào)顯示在結(jié)尾;”middle”—-省略號(hào)顯示在中間;”marquee” ——以跑馬燈的方式顯示(動(dòng)畫橫向移動(dòng))android:freezesText:設(shè)置保存文本的內(nèi)容以及光標(biāo)的位置。

android:gravity:設(shè)置文本位置,如設(shè)置成“center”,文本將居中顯示。

android:hintText:為空時(shí)顯示的文字提示信息,可通過(guò)textColorHint設(shè)置提示信息的顏色。此屬性在 EditView中使用,但是這里也可以用。

android:imeOptions:附加功能,設(shè)置右下角IME動(dòng)作與編輯框相關(guān)的動(dòng)作,如actionDone右下角將顯示一個(gè)“完成”,而不設(shè)置默認(rèn)是一個(gè)回車符號(hào)。這個(gè)在EditView中再詳細(xì)說(shuō)明,此處無(wú)用。

android:imeActionId:設(shè)置IME動(dòng)作ID。android:imeActionLabel:設(shè)置IME動(dòng)作標(biāo)簽。

android:includeFontPadding:設(shè)置文本是否包含頂部和底部額外空白,默認(rèn)為true。android:inputMethod:為文本指定輸入法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是這里報(bào)錯(cuò)找不到。IT在線教育平臺(tái)———麥子學(xué)院:http://www.tmdps.cn

android:inputType:設(shè)置文本的類型,用于幫助輸入法顯示合適的鍵盤類型。在EditView中再詳細(xì)說(shuō)明,這里無(wú)效果。

android:linksClickable:設(shè)置鏈接是否點(diǎn)擊連接,即使設(shè)置了autoLink。

android:marqueeRepeatLimit在ellipsize指定marquee的情況下,設(shè)置重復(fù)滾動(dòng)的次數(shù),當(dāng)設(shè)置為 marquee_forever時(shí)表示無(wú)限次。

android:ems設(shè):置TextView的寬度為N個(gè)字符的寬度。這里測(cè)試為一個(gè)漢字字符寬度 android:maxEms:設(shè)置TextView的寬度為最長(zhǎng)為N個(gè)字符的寬度。與ems同時(shí)使用時(shí)覆蓋ems選項(xiàng)。

android:minEms:設(shè)置TextView的寬度為最短為N個(gè)字符的寬度。與ems同時(shí)使用時(shí)覆蓋ems選項(xiàng)。

android:maxLength:限制顯示的文本長(zhǎng)度,超出部分不顯示。

android:lines:設(shè)置文本的行數(shù),設(shè)置兩行就顯示兩行,即使第二行沒(méi)有數(shù)據(jù)。android:maxLines:設(shè)置文本的最大顯示行數(shù),與width或者layout_width結(jié)合使用,超出部分自動(dòng)換行,超出行數(shù)將不顯示。

android:minLines:設(shè)置文本的最小行數(shù),與lines類似。android:lineSpacingExtra:設(shè)置行間距。

android:lineSpacingMultiplier:設(shè)置行間距的倍數(shù)。如”1.2”

android:numeric:如果被設(shè)置,該TextView有一個(gè)數(shù)字輸入法。此處無(wú)用,設(shè)置后唯一效果是TextView有點(diǎn)擊效果,此屬性在EdtiView將詳細(xì)說(shuō)明。android:password:以小點(diǎn)”.”顯示文本

android:phoneNumber設(shè):置為電話號(hào)碼的輸入方式。

android:privateImeOptions:設(shè)置輸入法選項(xiàng),此處無(wú)用,在EditText將進(jìn)一步討論。android:scrollHorizontally:設(shè)置文本超出TextView的寬度的情況下,是否出現(xiàn)橫拉條。android:selectAllOnFocus:如果文本是可選擇的,讓他獲取焦點(diǎn)而不是將光標(biāo)移動(dòng)為文本的開始位置或者末尾位置。TextView中設(shè)置后無(wú)效果。

android:shadowColor:指定文本陰影的顏色,需要與shadowRadius一起使用。android:shadowDx:設(shè)置陰影橫向坐標(biāo)開始位置。android:shadowDy:設(shè)置陰影縱向坐標(biāo)開始位置。

android:shadowRadius:設(shè)置陰影的半徑。設(shè)置為0.1就變成字體的顏色了,一般設(shè)置為3.0的效果比較好。

android:singleLine:設(shè)置單行顯示。如果和layout_width一起使用,當(dāng)文本不能全部顯示時(shí),后面用“…”來(lái)表示。如android:text=“test_ singleLine ” android:singleLine=“true” android:layout_width=“20dp”將只顯示“t…”。如果不設(shè)置singleLine或者設(shè)置為false,文本將自動(dòng)換行 android:text設(shè)置顯示文本.android:textAppearance:設(shè)置文字外觀。如 “?android:attr/textAppearanceLargeInverse”這里引用的是系統(tǒng)自帶的一個(gè)外觀,?表示系統(tǒng)是否有這種外觀,否則使用默認(rèn)的外觀。可設(shè)置的值如下:textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargIT在線教育平臺(tái)———麥子學(xué)院:http://www.tmdps.cn

eInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse android:textColor:設(shè)置文本顏色

android:textColorHighlight:被選中文字的底色,默認(rèn)為藍(lán)色

android:textColorHint:設(shè)置提示信息文字的顏色,默認(rèn)為灰色。與hint一起使用。android:textColorLink:文字鏈接的顏色.android:textScaleX:設(shè)置文字之間間隔,默認(rèn)為1.0f。android:textSize:設(shè)置文字大小,推薦度量單位”sp”,如”15sp”

android:textStyle:設(shè)置字形[bold(粗體)0, italic(斜體)1, bolditalic(又粗又斜)2] 可以設(shè)置一個(gè)或多個(gè),用“|”隔開

android:typeface:設(shè)置文本字體,必須是以下常量值之一:normal 0, sans 1, serif 2, monospace(等寬字體)3] android:height:設(shè)置文本區(qū)域的高度,支持度量單位:px(像素)/dp/sp/in/mm(毫米)android:maxHeight:設(shè)置文本區(qū)域的最大高度 android:minHeight:設(shè)置文本區(qū)域的最小高度

android:width:設(shè)置文本區(qū)域的寬度,支持度量單位:px(像素)/dp/sp/in/mm(毫米),與layout_width 的區(qū)別看這里。

android:maxWidth:設(shè)置文本區(qū)域的最大寬度 android:minWidth:設(shè)置文本區(qū)域的最小寬度

如需了解更多android開發(fā)知識(shí),請(qǐng)至麥子學(xué)院官網(wǎng)查看。

第二篇:Android之a(chǎn)ctivity總結(jié)

Android之Activity總結(jié)

一、什么是Activity

Activity 是用戶接口程序,原則上它會(huì)提供給用戶一個(gè)交互式的接口功能。它是 android 應(yīng)用程序的基本功能單元。Activity 本身是沒(méi)有界面的。所以activity類創(chuàng)建了一個(gè)窗口,開發(fā)人員可以通過(guò)setContentView(View)接口把UI放到activity創(chuàng)建的窗口上,當(dāng)activity指向全屏窗口時(shí),也可以用其他方式實(shí)現(xiàn):作為漂浮窗口(通過(guò)windowIsFloating的主題集合),或者嵌入到其他的activity(使用ActivityGroup)。activity是單獨(dú)的,用于處理用戶操作。幾乎所有的activity都要和用戶打交道

二、Activity生命周期(生命周期方法)

由圖可知,這些方法調(diào)用的順序:

1.Activity正常啟動(dòng):onCreate-> onStart-> onResume;

2.Activity被殺掉:onPause-> onStop-> onDestroy,此為一個(gè)完整的生命周期。3.中斷處理:onPause-> onStop,恢復(fù)時(shí)onRestart-> onStart-> onResume;

4.如果當(dāng)前Activity是半透明狀態(tài)或者對(duì)話框狀態(tài):那么中斷就是onPause ,恢復(fù)的時(shí)候onResume。

那么對(duì)于”O(jiān)ther app need memory”,就是我們手機(jī)在運(yùn)行一個(gè)應(yīng)用程序的時(shí)候,有可能打進(jìn)來(lái)電話發(fā)進(jìn)來(lái)短信,或者沒(méi)有電了,這時(shí)候程序都會(huì)被中斷,優(yōu)先去服務(wù)電話的基本功能,另外系統(tǒng)也不允許你占用太多資源,至少要保證一些功能(比如電話),所以資源不足的時(shí)候也就有可能被kill掉。

方法在系統(tǒng)中的作用及我們應(yīng)該做什么:

onCreate(創(chuàng)建):在這里創(chuàng)建界面,做一些數(shù)據(jù)的初始化工作;

onStart(可視狀態(tài)): 到這一步變成“用戶可見不可交互”的狀態(tài);

onResume(可交互狀態(tài)):變成和用戶可交互的,(在Activity棧系統(tǒng)通過(guò)棧的方式管理這些Activity,即當(dāng)前Activity在棧的最上端,運(yùn)行完彈出棧,則回到上一個(gè)Activity);

onPause(暫停狀態(tài)):到這一步是可見但不可交互的,系統(tǒng)會(huì)停止動(dòng)畫等消耗CPU的事情。從上文的描述已經(jīng)知道,應(yīng)該在這里保存你的一些數(shù)據(jù),因?yàn)檫@個(gè)時(shí)候你的程序的優(yōu)先級(jí)降

低,有可能被系統(tǒng)收回。在這里保存的數(shù)據(jù),應(yīng)該在onResume里讀出來(lái)。

OnStop(停止?fàn)顟B(tài)):變得不可見,被下一個(gè)activity覆蓋了。

onDestroy(殺死):這是Activity被kill前最后一個(gè)被調(diào)用方法了,可能是其他類調(diào)用finish方法或者是系統(tǒng)為了節(jié)省空間將它暫時(shí)性的干掉。

onPause,onstop,onDestroy,三種狀態(tài)下 activity都有可能被系統(tǒng)殺掉。

Activity棧:Activity以棧的形式進(jìn)行管理,后進(jìn)先出的原則

三、Activity之間的通信

在 Android 中,不同的 Activity 實(shí)例可能運(yùn)行在一個(gè)進(jìn)程中,也可能運(yùn)行在不同的進(jìn)程中。因此我們需要一種特別的機(jī)制幫助我們?cè)?Activity 之間傳遞消息。

Android 中通過(guò) Intent 對(duì)象來(lái)表示一條消息,一個(gè) Intent 對(duì)象不僅包含有這個(gè)消息的目的地,還可以包含消息的內(nèi)容,這好比一封 Email,其中不僅應(yīng)該包含收件地址,還可以包含具體的內(nèi)容。

Intent是一種運(yùn)行時(shí)綁定(runtime binding)機(jī)制

Intent負(fù)責(zé)對(duì)操作的動(dòng)作、動(dòng)作涉及數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述,Android則根據(jù)此Intent的描述,負(fù)責(zé)找到對(duì)應(yīng)的組件,將 Intent傳遞給調(diào)用的組件,并完成組件的調(diào)用。因此,Intent在這里起著一個(gè)媒體中介的作用,專門提供組件互相調(diào)用的相關(guān)信息,實(shí)現(xiàn)調(diào)用者與被調(diào)用者之間的解耦。

在應(yīng)用中,我們可以以兩種形式來(lái)使用Intent:

直接Intent(應(yīng)用程序內(nèi)部):指定了component(組建)屬性的Intent。通過(guò)指定具體的組件類,通知應(yīng)用啟動(dòng)對(duì)應(yīng)的組件。

間接Intent(應(yīng)用程序之間):沒(méi)有指定comonent屬性的Intent。這些Intent需要包含足夠的信息,這樣系統(tǒng)才能根據(jù)這些信息,在在所有的可用組件中,確定滿足此Intent的組件。

對(duì)于直接Intent,Android不需要去做解析,因?yàn)槟繕?biāo)組件已經(jīng)很明確。

Android需要解析的是那些間接Intent,通過(guò)解析,將 Intent映射給可以處理此Intent的Activity、IntentReceiver或Service。Intent解析機(jī)制主要是通過(guò)查找已注冊(cè)在AndroidManifest.xml(清單)中的所有IntentFilter(意圖過(guò)濾器)及其中定義的Intent,最終找到匹配的Intent。

橫屏?xí)r:onConfigurationChanged(配置改變))

橫屏以及出現(xiàn)鍵盤鍵盤時(shí)生命周期部重新開始的方法: KeyboardHidHidden/orientation/screenSize 橫屏顯示:landscape 豎屏顯示:portrait

四大組建:activity:活動(dòng)、service:服務(wù)、content provider:內(nèi)容提供商、broadcast receiver:廣播收音機(jī)

Activity的所有面試題

什么是Activity? 請(qǐng)描述一下Activity 生命周期?

兩個(gè)Activity之間跳轉(zhuǎn)時(shí)必然會(huì)執(zhí)行的是哪幾個(gè)方法?

你后臺(tái)的Activity被系統(tǒng) 回收怎么辦?如果后臺(tái)的Activity由于某原因被系統(tǒng)回收可了,如何在被系統(tǒng)回收之前保存當(dāng)前狀態(tài)?

如何退出Activity?如何安全退出已調(diào)用多個(gè)Activity的Application? 兩個(gè)Activity之間怎么傳遞數(shù)據(jù)?

第三篇:Android學(xué)習(xí)總結(jié)

Android學(xué)習(xí)總結(jié)

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

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

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

SB錯(cuò)誤?

31.一家小公司,如果有正式財(cái)務(wù)部,那肯定是正規(guī)的,不要擔(dān)心欠薪問(wèn)題.如果沒(méi)有,就說(shuō)不準(zhǔn)了.bbs.12580life.com

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

Android學(xué)習(xí)總結(jié)

在這段時(shí)間主要對(duì)Android平臺(tái)有了一定的了解,對(duì)一些簡(jiǎn)單的設(shè)計(jì)也有了一定的掌握Android概念

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

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

src/:源代碼(sourse)目錄

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

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

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

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

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

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

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

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

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

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

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

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

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

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

在每次點(diǎn)擊“計(jì)算BMI值”按鈕后首先會(huì)彈出一個(gè)消息框,消息框中包括兩個(gè)按 鈕,當(dāng)點(diǎn)擊確認(rèn)按鈕時(shí)消息框消失;當(dāng)點(diǎn)擊首頁(yè)按鈕時(shí)會(huì)連接到相應(yīng)的網(wǎng)頁(yè)

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

總結(jié)

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

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

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

前言

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

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

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

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

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

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

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

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

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

1、RIL移植層的三個(gè)組成部分

1)Vendor RIL 提供AT指令發(fā)送接口 2)RIL Daemon 加載RIL相關(guān)的庫(kù)同時(shí)初始化RIL,注冊(cè)RIL相關(guān)函數(shù)接口。同時(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(),詳細(xì)可見ridl.c中的main()函數(shù)。

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

有兩種方式:主動(dòng)請(qǐng)求(Solicited)和被動(dòng)請(qǐng)求(Unsolicited)1)主動(dòng)請(qǐng)求

2)被動(dòng)請(qǐng)求

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

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

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

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

獲取當(dāng)前通話 requestDial

請(qǐng)求呼叫 requestWriteSmsToSim

寫入短信至SIM卡 requestHangup

掛斷電話 requestSignalStrength

獲取信號(hào)強(qiáng)度 requestRegistrationState

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

獲取運(yùn)營(yíng)商名稱 requestSendSMS

請(qǐng)求發(fā)送短信 requestSetupDataCall

撥號(hào)上網(wǎng) requestSMSAcknowledge

短信回報(bào)

requestEnterSimPin

請(qǐng)求輸入SIM PIN碼 requestSendUSSD

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

RIL初始化 onRequest

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

getVersion

獲取RIL版本號(hào),當(dāng)前為“android reference-ril 1.0” onUnsolicited

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

2)ril.cpp 該文件主要提供ril.java調(diào)用接口,實(shí)現(xiàn)RIL的JNI調(diào)用方式、RIL Event管理機(jī)制 ? 實(shí)現(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 舉一個(gè)例子:

撥打電話,對(duì)應(yīng)的requestNumber為RIL_REQUEST_DIAL,對(duì)應(yīng)的dispatchFunction為dispatchDial,對(duì)應(yīng)的responseFunction為responseFunction。? RIL Event管理

與ril_event.cpp的Event接口配合實(shí)現(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ù)中進(jìn)行。

5、RIL JNI上層對(duì)外接口

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)絡(luò)身份和時(shí)區(qū) 獲取SIM卡狀態(tài) 輸入PIN碼 輸入PUK碼 輸入PIN2碼 輸入PUK2碼 修改PIN碼 修改PIN2碼 獲取當(dāng)前通話 獲取PDP列表 撥號(hào)

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

獲取Call失敗錯(cuò)誤碼 獲取PDP失敗錯(cuò)誤碼 獲取撥號(hào)連接失敗錯(cuò)誤碼

設(shè)置手機(jī)靜音模式(靜音/非靜音)獲取手機(jī)靜音模式(靜音/非靜音)獲取信號(hào)強(qiáng)度 獲取卡注冊(cè)狀態(tài) 獲取GPRS注冊(cè)狀態(tài) 獲取運(yùn)營(yíng)商 sendDtmf

startDtmf stopDtmf sendSMS deleteSmsOnSim writeSmsToSim

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

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

6、RIL機(jī)制

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

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

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

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

?底層給予responseVoid的響應(yīng)

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

三、Telephony APP Framework概述

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

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

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

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

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

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

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

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

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

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

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

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

。開機(jī)做如下初始化工作:

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

? PhoneApp requestWakeState:判斷手機(jī)是否可休眠 wakeUpScreen:?jiǎn)拘咽謾C(jī)

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

setMute/ setMuteInternal:靜音 turnOnSpeaker:免提

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

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

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,管理電話會(huì)議:

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

onSpeakerClick ? PhoneUtils.turnOnSpeaker case R.id.menuBluetooth,藍(lán)牙: 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 該類實(shí)現(xiàn)DTMF processDtmf:發(fā)送DTMF clearDigits:清除DTMF鍵碼 startDtmfTone:播放DTMF Tone stopDtmfTone:停止播放DTMF Tone ? CallNotifier 繼承于Handler,用來(lái)實(shí)時(shí)監(jiān)測(cè)通話狀態(tài)并通知Phone Application,如PHONE_NEW_RINGING_CONNECTION(來(lái)電),PHONE_INCOMING_RING(來(lái)電響鈴),PHONE_DISCONNECT(通話掛斷),PHONE_BATTERY_LOW(電池電量低),具體相對(duì)應(yīng)的處理可參見handleMessage ? CallFeaturesSetting 實(shí)現(xiàn)通話設(shè)置,此外該類包含一個(gè)內(nèi)部類VoiceMailProviderSettings用來(lái)實(shí)現(xiàn)語(yǔ)音信箱的設(shè)置

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

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

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

五、Android通話簡(jiǎn)單流程

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

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

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

2、來(lái)電流程

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

3、來(lái)電處理

? 接聽

?internalAnswerCall

?PhoneUtils.answerCall(mPhone)

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

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

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

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

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

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

Android_Phone源代碼來(lái)電流程解讀

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

本類extends Handler并且implements CallerInfoAsyncQuery.OnQueryCompleteListener

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

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

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

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

當(dāng)來(lái)電時(shí),本類會(huì)接受到一個(gè)PHONE_NEW_RINGING_CONNECTION(Message.what),然后調(diào)用對(duì)應(yīng)的方法

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

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

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

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

方法啟動(dòng)響鈴。

********************************Ringer*************************** Ringer的ring()方法會(huì)啟動(dòng)相應(yīng)的響鈴方式。

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

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

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

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

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

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

下載Android學(xué)習(xí)之TextView屬性總結(jié)word格式文檔
下載Android學(xué)習(xí)之TextView屬性總結(jié).doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


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

相關(guān)范文推薦

    Android的學(xué)習(xí)總結(jié)

    Android學(xué)習(xí)總結(jié) Android的學(xué)習(xí)總結(jié) 現(xiàn)在對(duì)于Android的學(xué)習(xí)已有斗個(gè)學(xué)期了,但它對(duì)我來(lái)說(shuō)其實(shí)還是一個(gè)大大的謎,還有待我去對(duì)它一一揭曉。 在還沒(méi)有學(xué)習(xí)Android這門課之前,當(dāng)聽......

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

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

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

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

    Android總結(jié)

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

    Android數(shù)據(jù)共享之ContentProvider總結(jié)

    Content Provider 由上一節(jié)內(nèi)容,我們了解到Adroid的數(shù)據(jù)都是私有的,那么對(duì)于像通訊錄之類,多個(gè)APP(撥號(hào)、通話、短消息…)都需要共享使用,該怎么實(shí)現(xiàn)呢? 答案就是ContentProvide......

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

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

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

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

    Android應(yīng)用程序設(shè)計(jì)學(xué)習(xí)總結(jié)

    學(xué)習(xí)總結(jié) Android具有開放性。有一下平臺(tái)優(yōu)勢(shì): 一、開放性 在優(yōu)勢(shì)方面,Android平臺(tái)首先就是其開發(fā)性,開發(fā)的平臺(tái)允許任何移動(dòng)終端廠商加入到Android聯(lián)盟中來(lái)。顯著的開放性可以......

主站蜘蛛池模板: 动漫无遮挡h纯肉亚洲资源大片| 国产精品无码成人午夜电影| 国产av国内精品jk制服| 欧美 亚洲 另类 丝袜 自拍 动漫| 无码国产成人午夜视频在线播放| 亚洲熟妇少妇任你躁在线观看无码| 日本孕妇潮喷高潮视频| 乱子伦视频在线看| 少妇与子乱毛片| 无码av人片在线观看天堂| 久久亚洲粉嫩高潮的18p| 国产欧美一区二区精品性色| 国产精品国产三级国产专i| 成人做爰69片免费看网站野花| 国产微拍无码精品一区| 精品国产黑色丝袜高跟鞋| 天堂久久久久va久久久久| av人摸人人人澡人人超碰妓女| 亚洲成av人影院在线观看| 国产亚洲精品自在久久vr| 国产白丝无码视频在线观看| 午夜性刺激免费看视频| 秋霞鲁丝片av无码| 中文亚洲成a人片在线观看| 欧美日韩精品一区二区三区不卡| 午夜毛片不卡免费观看视频| 国产成人精品日本亚洲专区61| 狠狠色噜噜狠狠狠狠av不卡| 青青青国产免费线在| 日韩精品无码一区二区| 99视频精品全部免费 在线| 日韩人妻ol丝袜av一二区| 国产精品久久久久久久久久久久午夜片| 国产精品乱码一区二区三| 免费做a爰片久久毛片a片| 特级做a爰片毛片免费看无码| 国产亚洲精品久久久久秋霞| 久久精品99久久香蕉国产| 国产日韩欧美亚洲精品中字| 男人进女人下部全黄大色视频| 中文字幕精品视频在线看免费|