日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀] 在初見 Intent一章中,我們已嘗試過使用 「startActivity」函式,傳入適當(dāng)?shù)摹窱ntent」,來呼叫瀏覽器的 Activity。到目前為止,我們可以由學(xué)習(xí) Android 應(yīng)用程式的經(jīng)驗(yàn)中

 在初見 Intent一章中,我們已嘗試過使用 「startActivity」函式,傳入適當(dāng)?shù)摹窱ntent」,來呼叫瀏覽器的 Activity。

到目前為止,我們可以由學(xué)習(xí) Android 應(yīng)用程式的經(jīng)驗(yàn)中歸納得出:所有 Android 程式的運(yùn)作流程,都定義在 Activity 中。

Android 系統(tǒng)與其他系統(tǒng)很不一樣的地方是:它的應(yīng)用程式並不直接與底層系統(tǒng)緊密結(jié)合,而是跑在 Android 框架中。這意思是設(shè)計(jì) Android 應(yīng)用程式時,我們並不需要關(guān)心實(shí)際上運(yùn)作的機(jī)器是哪一牌的手機(jī)或是哪一種嵌入式系統(tǒng),或使用哪一種架構(gòu)(ARM、x86、MIPS)。我們要關(guān)心的只有Android 框架提供了那些功能,好讓我們能操作這臺設(shè)備。具體來說就是我們只要知道這臺機(jī)器的螢?zāi)淮笮 ⒂袥]有鍵盤,有沒有支援 GPS 等等訊息,就知道我們寫的應(yīng)用程式是否能在這臺機(jī)器上順暢地運(yùn)作。Android 框架與底層系統(tǒng)的整合的問題完全可以留給軔體工程師來操心。

在執(zhí)行「startActivity」函式時,應(yīng)用程式並不是直接呼叫另一個 Activity,而是將「Intent」(意圖)傳進(jìn) Android 框架中。 Android 框架會查看 「startActivity」 呼叫所傳入的動作與 Intent 內(nèi)容是否在註冊表中,如果符合,就啟動對應(yīng)的服務(wù)或 Activity。

Android 系統(tǒng)中的每一個應(yīng)用程式,在安裝的過程裡,都得事先在 Android 框架中註冊、登記這個應(yīng)用程式所建立的 Activity,並事先註明會使用到的服務(wù)。譬如當(dāng)我們在 Android 上安裝我們撰寫的 BMI 應(yīng)用程式時,BMI 應(yīng)用程式就會向 Android 框架登記相關(guān)資訊:BMI 應(yīng)用程式將會用到 「Bmi」這個 Activity。

這份訊息存在於每個 Android 應(yīng)用程式專案根目錄下的「AndroidManifest.xml」檔案中。如果我們在程式裡,要用到其他應(yīng)用程式或服務(wù)所提供的功能,也需一併在此列出。

在安裝應(yīng)用程式的時候,Android 框架會根據(jù)應(yīng)用程式提供的這份清單,將資訊註冊於 Android 框架的註冊表中。

備註:

這麼說其實(shí)是不太精確的。Android 應(yīng)用程式的運(yùn)作流程,存在於四種載體中:

Activity (活動)

Broadcast Intent Receiver

Service

Content Provider

各種載體的相關(guān)內(nèi)容會在後續(xù)章節(jié)提到時作解說。

預(yù)設(shè)的 Activity 清單AndroidManifest.xml」檔案。切換到「AndroidManifest.xml」分頁標(biāo)籤,查看預(yù)設(shè)的 「BMI/AndroidManifest.xml」檔案原始碼:

我們使用 eclipse Android 開發(fā)工具打開「BMI/

1 2 6 7 8 9 10 11 12 13 14 15

我們分行講解如下:

....

「AndroidManifest.xml」這個檔案也是以 XML 格式描述,每個 Android 應(yīng)用程式都需要一個「AndroidManifest.xml」檔案,每份「AndroidManifest.xml」檔案的開頭都會出現(xiàn)這段敘述。而整個「AndroidManifest.xml」檔案的敘述,都包含在「manifest」(清單)這個主要標(biāo)籤中。

package="com.demo.android.bmi"

「package」 是「manifest」(清單)標(biāo)籤的一個特別屬性,範(fàn)例中的內(nèi)容可用來標(biāo)明,這個應(yīng)用程式的進(jìn)入點(diǎn)存在於「com.demo.android.bmi」這個名稱空間/路徑中。

android:versionCode="1"android:versionName="1.0"

「android:versionCode」和「android:versionName」是應(yīng)用程式版本號。 這兩個屬性是可選的(非必要)。 「android:versionName」是給使用者看的版本號,如「1.0」、「2.0」。「android:versionCode」則是開發(fā)者用的內(nèi)部版本號,一般使用流水號。

...

「manifest」標(biāo)籤中主要包含一個「application」標(biāo)籤(備註1)?!竌pplication」標(biāo)籤裡面,定義了所有這個應(yīng)用程式用到的 Activity、服務(wù)等資訊?!竌pplication」標(biāo)籤中的「android:icon」屬性,定義了這個應(yīng)用程式將顯示在 Android 主畫面中的應(yīng)用程式圖示?!竌ndroid:icon="@drawable/icon"」表示應(yīng)用程式圖示的資源檔存在於 「res/drawable/icon」 中。圖示的大小必須超過 64x64 像素(Pixel)。「application」標(biāo)籤中的「android:label」屬性可用來指定應(yīng)用程式將顯示在 Home 主畫面上的名稱。也就是預(yù)設(shè)剛開好機(jī)時,可以從桌面下方拉出的應(yīng)用程式列表。

...

「application」標(biāo)籤中所有用到的 Activity ,都要包含在一個個「activity」標(biāo)籤中(備註2)。 Activity 是 Android 應(yīng)用程式與使用者互動的主要元素,當(dāng)使用者開啟一個應(yīng)用程式,第一個看到的畫面就是一個 Activity。若是一個應(yīng)用程式中包含多個畫面時,會定義多個不同的 Activity,我們也必須在「application」標(biāo)籤中,使用多個「activity」標(biāo)籤,為不同的 Activity 添加描述。如果我們已經(jīng)在程式碼中定義好了 Activity ,卻忘了在「AndroidManifest.xml」檔案中加入對應(yīng)的「activity」標(biāo)籤,那麼在執(zhí)行中呼叫到這個 Activity 的時候,將無法開啟這個 Activity。

「activity」標(biāo)籤的「android:name」屬性,指出了這個 Activity 所對應(yīng)的類別(class)?!竌ctivity」標(biāo)籤中的「android:label」屬性可用來指定應(yīng)用程式將顯示在 Activity 畫面上方的名稱。也可以在程式碼中透過「setTitle(“名稱”)」來動態(tài)修改。[!--empirenews.page--]

因?yàn)樵谏弦粚印窶anifest」標(biāo)籤屬性中已經(jīng)定義了「package="com.demo.android.bmi"」,因此在「activity」標(biāo)籤的 「android:name」屬性中,「.Bmi」代表著「com.demo.android.bmi.Bmi」的簡寫。也可以寫成「Bmi」,一樣是代表「com.demo.android.bmi.Bmi」這個類別。

「intent-filter」標(biāo)籤定義了這個「activity」的性質(zhì)。 「intent-filter」中主要包含了兩個標(biāo)籤:「action」跟「category」標(biāo)籤。 「action」標(biāo)籤中的「android:name」屬性,其內(nèi)容「android.intent.action.MAIN」表示:這個 Activity 是此應(yīng)用程式的進(jìn)入點(diǎn)(就像程式中常見的 main 主程式),開啟這個應(yīng)用程式時,應(yīng)先執(zhí)行這個 Activity。 。常見的還有「android.intent.action.EDIT」等標(biāo)籤,會在之後章節(jié)用上的時候講解。「category」標(biāo)籤中的「android:name」屬性,其內(nèi)容「android.intent.category.LAUNCHER」表示:這個 Activity 將顯示在 Launcher 的應(yīng)用程式列表中。

我們把整個檔案合到一起看,可以總結(jié)出這個檔案所傳達(dá)的訊息:在「com.demo.android.bmi」路徑下的「Bmi.java」這個檔案中,已定義了一個主要的 Activity; 當(dāng)我們打開 Android 的時候,顯示的是位於「res/drawable/icon」的圖示。一旦我們按下圖示來啟動這個應(yīng)用程式,Android 應(yīng)用程式框架會去尋找到定義了「android.intent.action.MAIN」內(nèi)容的 「.Bmi」activity,並呼叫執(zhí)行。

Android SDK 1.1 版之後引入了這條敘述。透過指定這個參數(shù),系統(tǒng)可以依此辨別應(yīng)用程式是否使用相容的 SDK 版本,好決定能否在這臺機(jī)器上安裝執(zhí)行。「1」代表 Android SDK 1.0,「2」代表 SDK 1.1,「3」代表 SDK 1.5。這也是一個可選填的選項(xiàng)。但如果我們的應(yīng)用程式要發(fā)佈出去,一些強(qiáng)勢的通路如 Google Android Market 已規(guī)定所有新發(fā)佈的應(yīng)用程式必須指定「android:minSdkVersion」這個參數(shù)。

備註1

除了「application」標(biāo)籤外,還有「uses-permission」(例如允不允許存取SMS、能否存取聯(lián)絡(luò)簿、相機(jī)功能)、「permission」、「instrumentation」等主要標(biāo)籤。相關(guān)的內(nèi)容在後續(xù)章節(jié)用到時再一併解說。

備註2

除了「activity」標(biāo)籤外,對應(yīng)於 Android 應(yīng)用程式的運(yùn)作流程,還有「service」、「receiver」、「provider」等主要元件。相關(guān)內(nèi)容會在後續(xù)章節(jié)提到時作解說。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護(hù)是驅(qū)動電源設(shè)計(jì)中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機(jī)驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計(jì)工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉