3g手機(jī)android應(yīng)用開發(fā)源碼學(xué)習(xí)面試題_第1頁(yè)
3g手機(jī)android應(yīng)用開發(fā)源碼學(xué)習(xí)面試題_第2頁(yè)
3g手機(jī)android應(yīng)用開發(fā)源碼學(xué)習(xí)面試題_第3頁(yè)
3g手機(jī)android應(yīng)用開發(fā)源碼學(xué)習(xí)面試題_第4頁(yè)
3g手機(jī)android應(yīng)用開發(fā)源碼學(xué)習(xí)面試題_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Android 的ernationalization (與本地化)簡(jiǎn)稱 i18n,因?yàn)樵?i 和n 之間還有 18 個(gè)字符,localization(本地化 ),簡(jiǎn)稱 L10n。一般說(shuō)明一個(gè)地區(qū)的語(yǔ)言時(shí),用 語(yǔ)言_地區(qū)的形式,如各國(guó)語(yǔ)言縮寫, zh_TW.國(guó)家和地區(qū)簡(jiǎn)寫android 對(duì) i18n 和L10n 提供了非常好的支持。android 沒有專門的 API 來(lái)提供,而是通過(guò)對(duì)不同resource同的新視屏用不同的名來(lái)達(dá)到。,同時(shí)這種命名方法還可用于對(duì)硬件的區(qū)分,如不在eclipse 的工程中,res 目錄有默認(rèn)幾項(xiàng) resource,如 drawable, layout其余還有,val

2、uesres/anim/ res/xml/res/raw/用來(lái)放置動(dòng)畫用來(lái)放置 style theme 等 xml 定義。用來(lái)放置 data 數(shù)據(jù)這些 resource 時(shí)候,在 java 代碼中是通過(guò) R.resource_type.resource_name 的方式來(lái)使用,如 setTitle(R.string.main_title);還有一種是在 xml 中直接o了名字為o 的字符串。當(dāng)程序運(yùn)行時(shí),通過(guò) Resource 類會(huì)裝載 strings.xml 中名字為o 的字符串。但 Resource 類裝載 strings.xml 時(shí)會(huì)根據(jù)當(dāng)前的設(shè)置來(lái)選擇裝載哪一個(gè) xml 文件。這些設(shè)置

3、有MCC and MNC, Language and region, Screen dimens, Wider/taller screens, Screenorienion,Screen pixel density, Touchscreen type, SDK ver,也就是說(shuō)通過(guò)當(dāng)前幕像素,以及當(dāng)前 android sdk 的版本號(hào)來(lái)選擇。通過(guò)把 strings.xml語(yǔ)言區(qū)域,屏幕的大放置在以這些選項(xiàng)命名的文件夾下,Resource 類就能正確的裝載所需的字符串。以不同的 local 和 region 來(lái)做一次,首先 values 表示默認(rèn)的字符串,也即當(dāng) Resource 找不到匹配的資

4、源時(shí),默認(rèn)使用 values 文件夾下的資源,其余 drawable 等資源也是同樣的。當(dāng)命名這些文件夾的名字時(shí),不同的選項(xiàng)用-分開,而且次序必須和 andorid 文檔中 table/guide/topics/resour/resour-i18n.html#AlternateResour文件夾名必須都是小寫字符,否則在一些大小敏感的文件系統(tǒng)中可能會(huì)出錯(cuò),如果你用大寫,eclipse 的 adt 都會(huì)自動(dòng)報(bào)錯(cuò)。小寫字母 r 表示 region 的意思。 上圖命名了中文簡(jiǎn)體和繁體以及默認(rèn)選項(xiàng),在 strings.xml 中除了字符串本身不一樣,xml 中定義該字符串的名字,id 都是一樣的。所以

5、在代碼或者 xml 中該資源時(shí),只要名字即可或者 id 即可,程序啟動(dòng)時(shí)候 Resource 類回到相應(yīng)的目錄下去尋找正確的字符串(資源)通過(guò)在Settings 中設(shè)置 locale& Text可以讓 Resource 類來(lái)選擇相應(yīng)文件夾下的內(nèi)容,選擇英語(yǔ)時(shí)候結(jié)果如下,也即選擇了 values 下的 strings.xml選擇 chi選擇 chi其余(china)時(shí),也即選了目錄下的 strings.xml()時(shí),也即選了 values-zh-rtw 目錄下的 strings.xml的選項(xiàng),像屏幕的像素等都可以建立相應(yīng)得目錄。Android 常用控件的信息!單選框(RadioButton 與R

6、adioGroup):RadioGroup 用于對(duì)單選框進(jìn)行分組,相同組內(nèi)的單選框只有一個(gè)單選框被選中。事件:setOnCheckedChangeListener(),處理單選框被選擇事件。把 RadioGroup.OnCheckedChangeListener實(shí)例作為參數(shù)傳入。多選框(CheckBox):每個(gè)多選框都是獨(dú)立的,可以通過(guò)迭代所有的多選框,然后根據(jù)其狀態(tài)是否被選中在獲取其值。事 件 : setOnCheckChangeListener()處 理 多 選 框 被 選 擇 事 件 。 把CompoundButton.OnCheckedChangeListener 實(shí)例作為參數(shù)傳入下拉

7、列表框(Spring):Spinner.getItemAtition(Spinner.getSelectedItemition();獲取下拉列表框的值。事件:setOnItemSelectedListener(),處理下拉列表框被選擇事件把 AdapterView.OnItemSelectedListener實(shí)例作為參數(shù)傳入;拖動(dòng)條(SeekBar):SeekBar.getProgress()獲取拖動(dòng)條當(dāng)前值事件:setOnSeekBarChangeListener(),處理拖動(dòng)條值變化事件,把 SeekBar.OnSeekBarChangeListener 實(shí)例作為參數(shù)傳入。菜單():重寫A

8、ctivity 的onCreatOption()方法,該方法用于創(chuàng)建選項(xiàng)菜單,咋用戶按下的按鈕時(shí)就會(huì)顯示創(chuàng)建好的菜單,在 onCreatOption()方法可以調(diào)用.add()方法實(shí)現(xiàn)菜單的添加。重寫Activity 的onItemSelected()方法,該方法用于處理菜單被選擇事件。進(jìn)度框(ProgressDialog):創(chuàng)建并顯示一個(gè)進(jìn)度框:ProgressDialog.show(ProgressDialogActivity.this,請(qǐng)稍等,數(shù)據(jù)正在加載中,true);設(shè)置框的風(fēng)格:setProgressStyle() ProgressDialog.STYLE_SPINNER 旋轉(zhuǎn)進(jìn)度

9、條風(fēng)格(為默認(rèn)風(fēng)格)ProgressDialog.STYLE_HORIZONTAL 橫向進(jìn)度條風(fēng)格Android 系統(tǒng)的架構(gòu)!android 的系統(tǒng)架構(gòu)和其操作系樣,采用了分層的架構(gòu)。從架構(gòu)圖看,android 分為四個(gè)層,從到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和linux層。1.應(yīng)用程序Android 會(huì)同一系列應(yīng)用程序包一起發(fā)布,該應(yīng)用程序括客戶端,SMS 短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用 JAVA 語(yǔ)言編寫的。2.應(yīng)用程序框架應(yīng)用程序所使用的 API 框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡(jiǎn)化了組件的重用;開發(fā)也可以完全任何一個(gè)應(yīng)用程序都可以發(fā)

10、布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過(guò)得遵循框架的安全性限制)。同樣,該應(yīng)用程序重用機(jī)制也使用戶可以方便的替換程序組件。隱藏在每個(gè)應(yīng)用后面的是一系列的服務(wù)和系統(tǒng), 其中包括;豐富而又可擴(kuò)展的視圖(Views),可以用來(lái)構(gòu)建應(yīng)用程序, 它包括列表(lists),網(wǎng)格(grids),文本框(text boxes),按鈕(buttons), 甚至可嵌入的 web 瀏覽器。內(nèi)容提供器(Content Providers)使得應(yīng)用程序可以另一個(gè)應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫(kù)), 或者共享它們自己的數(shù)據(jù)* 資源管理器(Resource Manager)提供 非代碼資源的file

11、s )。,如本地字符串,圖形,和布局文件( layout通知管理器 (Notification Manager) 使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息。活動(dòng)管理器( Activity Manager) 用來(lái)管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。有關(guān)的細(xì)節(jié)和怎樣從頭寫一個(gè)應(yīng)用程序,請(qǐng)參考 如何編寫一個(gè) Android 應(yīng)用程序.3.系統(tǒng)運(yùn)行庫(kù)1)程序庫(kù)Android 包含一些 C/C+庫(kù),這些序框架為開發(fā)者提供服務(wù)。以下是一些被 Android 系統(tǒng)中不同的組件使用。它們通過(guò) Android 應(yīng)用程庫(kù):* 系統(tǒng) C 庫(kù) - 一個(gè)從 BSD 繼承來(lái)的標(biāo)準(zhǔn) C 系統(tǒng)函數(shù)庫(kù)( lib

12、c ), 它是專門為基于 embedded linux的設(shè)備定制的。*- 基于 PacketOpenCORE;該庫(kù)支持多種常用的音頻、格式回放和錄制,同時(shí)支持靜態(tài)圖像文件。編碼格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。* Surface Manager - 對(duì)顯示子系統(tǒng)的管理,并且為多個(gè)應(yīng)用程序提 供了 2D 和 3D 圖層的無(wú)縫融合。* LibWebCore - 一個(gè)的 web 瀏覽器引擎用,支持 Android 瀏覽器和一個(gè)可嵌入的 web 視圖。SGL - 底層的 2D 圖形引擎3D libraries - 基于 OpenGL ES 1.0 A

13、PIs 實(shí)現(xiàn);該庫(kù)可以使用硬件 3D 加速(如果可用)或者使用高度優(yōu)化的 3D 軟加速。FreeType -位圖(bitmap)和矢量(vector)字體顯示。*- 一個(gè)對(duì)于所有應(yīng)用程序可用,功能強(qiáng)勁的輕型關(guān)系型數(shù)據(jù)庫(kù)引擎。2)Android 運(yùn)行庫(kù)Android 包括了一個(gè)庫(kù),該庫(kù)提供了JAVA 編程語(yǔ)言庫(kù)的大多數(shù)功能。每一個(gè) Android 應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立的 Dalvik 虛擬機(jī)實(shí)例。Dalvik 被設(shè)計(jì)成一個(gè)設(shè)備可以同時(shí)高效地運(yùn)行多個(gè)虛擬系統(tǒng)。 Dalvik 虛擬機(jī)執(zhí)行(.dex)的 Dalvik 可執(zhí)行文件,該格式文件針對(duì)小內(nèi)存使用做了優(yōu)化。同時(shí)虛擬機(jī)是

14、基于寄存器的,所有的類都經(jīng)由 JAVA 編譯器編譯,然后通過(guò)SDK 中 的 “dx” 工具轉(zhuǎn)化成.dex 格式由虛擬機(jī)執(zhí)行。Dalvik 虛擬機(jī)依賴于linux 內(nèi)核的一些功能,比如線程機(jī)制和底層內(nèi)存管理機(jī)制。4.LinuxAndroid 的內(nèi)核系統(tǒng)服務(wù)依賴于 Linux 2.6 內(nèi)核,如安全性,內(nèi)存管理,進(jìn)程管理, 網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型。 Linux 內(nèi)核也同時(shí)作為硬件和棧之間的抽象層。開機(jī)自動(dòng)運(yùn)行程序!Android 實(shí)現(xiàn)開機(jī)自動(dòng)運(yùn)行程序 2009-12-31 15:01:17.0開機(jī)自動(dòng)運(yùn)行程序service。怎樣實(shí)現(xiàn)開機(jī)自有些時(shí)候,應(yīng)用需要在開機(jī)時(shí)就自動(dòng)運(yùn)行,例如某個(gè)自動(dòng)從網(wǎng)上更新內(nèi)容

15、的動(dòng)運(yùn)行的應(yīng)用?在撰寫本文時(shí),聯(lián)想到先生以“t call me, Ill call you back!”總結(jié) Android 框架,真是說(shuō)到點(diǎn)子上了。理解這句話的含義,許多有關(guān)Android上實(shí)現(xiàn)某種功能o. I started!字樣。,都能迎刃而解。使用場(chǎng)景:開機(jī)后,自動(dòng)運(yùn)行程序,在屏幕上顯示背景知識(shí):當(dāng) Android 啟動(dòng)時(shí),會(huì)發(fā)出一個(gè)系統(tǒng)廣播,內(nèi)容為PLETED,它的字符串常量表示為 android. e即可。記住,Android 框架說(shuō):PLETED。只要在程序中“捕捉”到這個(gè)消息,再啟動(dòng)之t call me, Ill call you back。要做的是做好接收這個(gè)消息的準(zhǔn)備,而實(shí)

16、現(xiàn)段就是實(shí)現(xiàn)一個(gè)BroadcastReceiver。代碼:1、界面Activity:Sayo.javapackage com.ghstudio.BootStartDemo; import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class SayOverrideo extendivity public voiCreate(Bundle savedInstane) super.onCreate(savedInstane);TextView tv = new TextVi

17、ew(this);tv.setText(o. I started!);setContentView(tv);這段代碼很簡(jiǎn)單,當(dāng)Activity 啟動(dòng)時(shí),創(chuàng)建一個(gè) TextView,用它顯示 2、接收廣播消息:BootBroadcastReceiver.javapackage com.ghstudio.BootStartDemo; import android.content.BroadcastReceiver; import android.content.Context;import android.content. ent;o. I started!字樣。public class Boot

18、BroadcastReceiver extends BroadcastReceiver s ic final String ACTION = android. eOverridePLETED;public voiReceive(Context context,entent) if ( ent.getAction().equalION)ent sayo ent=newent(context,Sayo.class);sayoent.addFlags( ent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(sayo ent);該類派生自 BroadcastReceiver , 覆載方法 onReceive 中,檢測(cè)接收到的ent 是否符合PLETED,如果符合,則啟動(dòng) Say3、配置文件:AndroidManifest xmlo 那個(gè)Activity。action android name=android.uses-sdk android minSdkVeruses-permisandroid name=android.permissioePLETED /=3 /PLETED注意其中粗體字那一部分,該節(jié)點(diǎn)向系統(tǒng)了一個(gè) receiver ,子節(jié)點(diǎn)ent-filter 表示接

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論