freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于android的智能手機開發(fā)(編輯修改稿)

2025-07-11 14:02 本頁面
 

【文章內容簡介】 Android 雖然是基于 Linux,但是它卻采用了一種有別于 Linux 的一種管理機制。 Linux 在一個進程活動停止后就立刻結束 該進程,而 Android在一個進程活動停止后不會立刻結束該進程,并使該進程常駐內存中。直到系統(tǒng)資源不夠需要更多內存或者當某個結束進程的事件發(fā)生時才將該進程結束。 在 Android 中進程被分成了前臺進程( foreground)、可見進程( visible)、次要服務( secondary server)、后臺進程( hidden)、內容供應節(jié)點( content provider)、空進程( empty)六種。 ⑴前臺進程是指一些系統(tǒng)進程和當前屏幕上正在顯示的進程。比如說你打開 Google 地圖查找路線,此時 Google 地圖就是一個前臺進程。⑵可見進程則是那些雖然不在前臺,但是用戶依然可見的進程,如輸入法,時鐘等,這些進程雖然不是在前臺運行的,但是其存在和我們的使用卻是密切相關的,如果關閉了這些應用程序將給我們的使用帶來非常大的不便⑶次要服務是一些與系統(tǒng)功能息息相關的服務,如 Google 企業(yè)套件等。⑷后臺進程,可以這么說后臺進程就是一個前臺進程被另一個前臺進程替換后,進程沒有結束,但是已經不再是前臺進程的一個狀態(tài)。在實際應用中就是當一個前臺進程運行時按 HOME 鍵后的進程狀態(tài)⑸內容供應節(jié)點是沒有程序實體,而是僅僅提供內容 給別的程序使用的比如說日歷節(jié)點⑹空進程是沒有任何東西在運行的進程,在一個程序退出后會有一個沒有任何數(shù)據(jù)和代碼在運行但是依然駐留在進程空間中的進程,該進程僅僅是作為一個能夠提高該程序下次啟動速度和記錄程序歷史記錄的進程。 Android 在調度以上幾種進程時使用了一個系統(tǒng)值作為系統(tǒng)對進程的一個評估,當要結束一個進程時該值的數(shù)值越大的進程被系統(tǒng)選中并結束的概率越大。一般的,前臺進程的值為 0,這表明前臺進程不可能被系統(tǒng)選中并結束。當進程進入后臺以后,系統(tǒng)將會分配一個更高的值給該進程。 相對于 Linux 的最近最早未使 用的調度策略, Android 在其基礎上提供了一套獨特的進程管理模塊,他能讓程序員使用腳本來對內存管理進行定制。比如當內存小于某個值時可以結束這個系統(tǒng)值大于另外一個值的進程,還可以當內存小某個值時結束上面六類進程中的一類(但順序必須是空進程,內容供應節(jié)點,后臺進程,次要服務,可見進程,最后才是前臺進程)。根據(jù)這種特性 該系統(tǒng)值至少由兩部分組成,一個是基值,另一個根據(jù) LRU(最近最久未使用)調度算法產生的一個值。對于以上說的六種進程應該分別有一系統(tǒng)給其賦予的值,其大小順序應該是空進程大于內容供應節(jié)點大于后臺進程 大于次要服務大于可見進程大于前臺進程,而這個系統(tǒng)賦予的值則是基值。這樣就能保證一些這六種進程總是當一種進程被結束完了以后另外一種進程才會被結束,同時只需要根據(jù)這個系統(tǒng)值就能輕易做到對內存管理的定制。 應用程序框架層 在 Android 系統(tǒng)構架圖中可以看到,應用程序框架層是處于 Android Runtime 和庫函數(shù)層于應用程序層之間,之前的敘述中知道,該層使用開發(fā)語言的是 Java語言。應用程序框架是能夠讓開發(fā)者完全訪問核心應用程序所使用的 API( Application Programming Interface,應用程序編程接口),該框架能夠讓組件軟件重用的工做簡單化。同時該框架中的任何一個功能模塊都是等價的,任何一個應用程序都可以發(fā)布其功能模塊,該功能模塊可以替代當前的任意一個功能模塊,但前提是必須遵循框架的安全限制 [ 4] ,另外,其他的任意應用程序能夠使用這個發(fā)布的功能模塊。這樣的設計就使 Android 的構件重用率提高了。 在每一個應用程序背后,應用程序框架為其提供了一系列的服務。這些服務包括:①一個豐富并且可擴展的視圖,通過這個視圖我們可以使用它提供的一些包括按鈕、文本框、列表、網格等甚至可 嵌入的 web 瀏覽器的應用程序來構造我們的應用程序。②內容提供器( content providers),有了內容提供器,一個應用程序可以共享它自己的數(shù)據(jù)或者訪問另外一個應用程序中共享的數(shù)據(jù)。③資源管理器( resource manager),使用資源管理器,我們在應用程序中能夠訪問到一些如圖形、布局文件等一些非代 碼資源。④通知管理器( notification manager),給程序員提供了一個可以在程序狀態(tài)欄中顯示自定義提示信息的管理器。⑤活動管理器( activity manager),提供常用導航功能用來管 理應用程序生命周期的服務。通過這些應用程序框架層提供的服務程序員能夠方便的開發(fā)一個界面優(yōu)秀功能強大易于共享的的應用程序。 應用程序層 回到 Android 系統(tǒng)構架圖中,應用程序層包括了如名片管理、 Google maps、瀏覽器等本地應用程序( native apps),如 、 MSN、 QuickOffice等第三方應用程序( third part apps),以及 developer apps。同樣,該層的應用程序也都使用 Java 語言進行開發(fā)的。 Android 的應用 Android 應用的組成 任何一個 Android 應用程序,都可由四個部分組成,這四個組成部分分別是① Activity;② Intent Receiver;③ Service;④ Content Provider[ 5] 。對于一個應用程序來說,不一定這四個部分都需要。其中, Activity、Intent Receiver 和 Service 是 Android 最基本的三個組件。其實,這四個部分全部或者其中幾個的相互協(xié)調工作組成了我們平時見到的應用程序。 在 Android 中 每 個 應 用 程 序 都 需 要 一 個 XML 配 置 文 件AndroidManifest. xml,該配置文件用于定義我們的應用程序組件和組件的功能以及一些必要條件等。因此當我們使用到任何一個組件時都需要在這個配置文件中進行登記,否則就算是你在代碼中使用了這個組件,但是Android 系統(tǒng)也是找不到該組件的。 Activity Activity 是 Android 中最最基本的組件,實際應用中,通常就是一個單獨的屏 [ 6] ,也就是一個運行在前臺程序在某一時刻在屏幕中所能展示的全部內容就是一個 Activity。每一個 Activity 都是繼承于 Activity 基類的一個子類,并且該 Activity 類由幾個之前說過的應用程序框架提供的 視圖組成用戶接口,實現(xiàn)對事件的響應。絕大部分的應用都會包含多個屏幕,例如名片管理的應用,一個屏用于顯示所有的聯(lián)系人,另一個屏用于顯示其中某個聯(lián)系人的詳細信息,可能還會有用于分組信息或者用于系統(tǒng)設定的屏。對于這些,每一個屏都是一個 Activity。當一個新的 Activity執(zhí)行以后,前一個 Activity 將暫停,并保存到系統(tǒng)歷史堆棧當中,用戶可以返回到歷史堆棧中的上一個 Activity。當該 Activity 不用時可以從歷史堆棧中刪除。 Intent Receiver Intent Receiver 有的地方也叫做 Broadcast Receiver。當你希望你的應用能夠捕獲一個外部事件并作出響應時,比如手機快沒電了,收到一條新的短信息等。這時你就可以使用一個 Intent Receiver。因為 Intent Receiver 只是在一個你所關注的事件發(fā)生時,會給那些關注該事件的應用程序發(fā)送一個通知,所以它并不會生成一個 UI。同樣的 Intent Receiver也需要在 中進行注冊。當一個你所關注的時間發(fā)生時,我們的應 用不需要主動去調用 intent receiver,系統(tǒng)會在一個合適的時候去調用我們的程序的。 Service Service 是一段長生命周期的,沒有用戶界面的程序。我們舉一個播放器的例子,來說明 Service 程序。當一個播放器在前臺運行時我們會看到應用程序提供的一個屏,也就是之前說的 Activity,這個 Activity 提供給用戶一些操作播放器如播放、停止、下一曲等操作以及顯示一些歌曲和播放列表信息的功能。但是當播放器被切換到后臺以后,所有的 Activity 都放到歷史堆棧中了,而這時播放器任然 繼續(xù)進行播放,而當一首歌曲播放完了以后,還會根據(jù)播放列表中的信息播放下一首歌曲。完成這些功能的組件就是 Service。當播放器的 Activity 利用 ()方法啟動一個 Service 后,這個播放器就能夠在后臺持續(xù)的播放音樂了。還有,對于一個 Service 組件,我們可以使用 ()連接到Service 上,就能通過該 Service 提供的接口與之進行通信。 Content Provider Content Provider 提供給你 的應用程序與其他應用程序共享數(shù)據(jù)的一個功能。我們的應用程序可以通過 Content Provider 提供的一些方法來處理或者保存其他應用程序 Content Provider 中的數(shù)據(jù),這樣來達到數(shù)據(jù)的共享。 之 前 提 到 過 , 每 一 個 Android 應 用 程 序 都 包 括 了 一 個 配置文件,它對應了應用程序的說明,包括運行權限,組件的注冊等。其實 配置文件和使用 Visual Studio開發(fā)中的 很相似,但是 VS 的可視化的界面的緣故,只需進行簡單的設置,就能自動生成該文件,所以不少的 VS 程序員會忽略掉該文件的存在。但是在 Android 應用程序開發(fā)中,該文件是不可缺少的。應用程序在運行前通過 文件向系統(tǒng)提供一些必要的信息,讓系統(tǒng)知道該應用程序應該如何配置。 先舉一個 文件的例子然后從該例子中詳細描述一下這個配置文件: 01 ?xml version= encoding=utf8? Android 應用 Activity Intent Receiver Service Content Provider 圖 23 示意圖 02manifest xmlns:android= 03 package=test. hello 04 android: versionCode=1 05 android: versionName= 06application android: icon=@drawable/icon 07activity android:name=.HelloAndroidandroid:label= @string/app_name 08 intentfilter 09 action android: name= / 10 category android: name= / 11 /intentfilter 12 /activity 13 /application 14 /manifest 這是一個簡單 HelloAndroid 程序的 配置文件,從這個配置文件中我們能夠知道,該應用僅包含了一個 Activity。下面將對這個配置文件做一個詳細的描述。 第 1 行是一般 xml 文件都有的頭部信息說明,其中包括 xml 的版本和文件編碼方式。 第 2行和第 14行則是一對“ manifest”標簽,每一個 AndroidManifest配置文件中必須有且只有一對“ manifest”標簽,所有 AndroidManifest中的描述都應該包含 在這對標簽中。 第 3~5行是“ manifest”標簽的屬性,這個例子中的 package 屬性說明應用程序的入口在 這個包下面。而“ android: versionCode”和“ android: versionName”兩個可選的屬性則是說明應用程序的版本號,其中“ android: versionName”是面向用戶的版本號,而“ android:versionCode”則是開發(fā)者使用的內部版本號。 第 6 行和第 13 行是一對“ application”標簽,該標簽中定義了所有應用程序所使用的 Activity、 Intent Receiver、 Service 等。該標簽的“ android: icon”屬性定義了應用程序顯示在 Android 主界面中的圖標而@drawable/icon表示該應用程序圖標的路徑為 /res/drawable/icon。 第 7 行和第 12行是一對“ activity”標簽。在 Android 的應用程序當中所有定義好的的 Activity 都需要在 中添加一組“ activity”標簽,不然的話即使你定義了,但是 Android 應用程序也找不到。在上面給出的 例子中,僅僅有一組“ activity”標簽,這也說明了給出的例子的應用程序只有一個 Activity。緊接其后的是“ activity”標簽的屬性,“ android: name”屬性表示了 Activity 所對應的類,上述例子 中 的 類是 HelloAndroid 類, 結合 package 的 路 徑, 它 表示 的是 類。另外,在屬性中“ android: name”的值可以直接寫為“ HelloAndroi
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1