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

正文內(nèi)容

android平臺(tái)任務(wù)管理器的設(shè)計(jì)與實(shí)現(xiàn)-資料下載頁(yè)

2024-11-16 17:02本頁(yè)面

【導(dǎo)讀】應(yīng)用也在不斷更新。本文在詳細(xì)分析了任務(wù)管理器理論知識(shí)的基礎(chǔ)上,設(shè)計(jì)和開(kāi)發(fā)了基。后,設(shè)計(jì)和開(kāi)發(fā)了基于Android平臺(tái)的任務(wù)管理器系統(tǒng)。求,具有一定的可行性。

  

【正文】 oject。 AndroidAndroid Project,點(diǎn)擊 Next。 :選擇 Create new project in workspace 可以建立一個(gè)新的 Android工程,輸入工程的名字、應(yīng)用界面的類(lèi)名字、應(yīng)用程序的標(biāo)題的名字;如果選擇 Create project from existing source 可以根據(jù)現(xiàn)存的代碼建立一個(gè)工程,通過(guò)這 個(gè)選項(xiàng)可以建立Android 平臺(tái) 任務(wù)管理器系統(tǒng) 的設(shè)計(jì)與實(shí)現(xiàn) 15 并運(yùn)行現(xiàn)存的 Google 提供的 Example Application。 Finish。 系統(tǒng)開(kāi)發(fā)的難點(diǎn) 基于 Android 平臺(tái)的任務(wù)管理器的設(shè)計(jì) 與實(shí)現(xiàn) 需要解決以下幾個(gè)問(wèn)題: 權(quán)限獲取問(wèn)題 Android 默認(rèn)應(yīng)用時(shí)沒(méi)有任何權(quán)限去操作其他應(yīng)用程序或系統(tǒng)相關(guān)特性,應(yīng)用在進(jìn)行某些操作時(shí)都需要 顯式 地申請(qǐng)相應(yīng)的權(quán)限。在應(yīng)用安裝的時(shí)候, package installer 會(huì)檢測(cè)該應(yīng)用請(qǐng)求的權(quán)限,根據(jù)應(yīng)用的簽名提示用戶來(lái)分配相應(yīng)的權(quán)限; 如果權(quán)限不足時(shí),很可能引發(fā) SecurityException 異常。 我們可以在 中顯式 聲明要用到的權(quán)限,在本系統(tǒng)中用到的組件權(quán)限如下: Activity 權(quán)限(使用 Activity標(biāo)簽)限制能夠啟動(dòng)與 Activity 權(quán)限相關(guān)的組件或應(yīng)用程序, 當(dāng)用到 ()和 ()時(shí)會(huì)對(duì)其檢查,若權(quán)限不足會(huì)拋出異常。 Access_WiFi_State 權(quán)限用來(lái)限制相關(guān)的網(wǎng)絡(luò)連接的組件或應(yīng)用程序,通過(guò)它我們可以獲取當(dāng)前 WIFI 接入的狀態(tài)及 WLAN 熱點(diǎn)的信息 , 當(dāng)未定義相關(guān)權(quán)限時(shí)會(huì)拋出異常。 Restart_packages 權(quán)限允許通過(guò) restartPackage(String) 方法結(jié)束系統(tǒng)任務(wù),get_package_size 權(quán)限允許一個(gè)程序獲取任何 package 占用空間容量, get_tasks 權(quán)限允許程序獲取當(dāng)前或最近運(yùn)行的應(yīng)用, Delete_packages 權(quán)限允許程序刪除應(yīng)用。 ActivityManager 與 PackageManager 問(wèn)題 Android 系統(tǒng)提供了很多服務(wù)管理的類(lèi),包括 ActivityManager、 PowerManager、PackageManager 、 AudioManager 等 。 本系 統(tǒng) 使 用較 多 的是 ActivityManager 和PackageManager。 類(lèi) 獲取系統(tǒng)里所有正在運(yùn)行的服務(wù),具體方法如下: List getRunningServices(int maxNum) 功能:返回正在運(yùn)行的服務(wù) 。 參數(shù): maxNum 代表我們希望返回的服務(wù)數(shù)目 。 類(lèi) 封裝了對(duì)應(yīng)用 程序信息的操作,獲得應(yīng)用程序信息的方法如下: Public abstractApplicatioinInfo getApplicationInfo(String packageName,int flags) 參數(shù): packageName 包名 , Flags 通??梢灾苯淤x予 0。 Android 平臺(tái) 任務(wù)管理器系統(tǒng) 的設(shè)計(jì)與實(shí)現(xiàn) 16 功能:返回 ApplicationInfo 對(duì)象 。 Android 用戶界面構(gòu)建問(wèn)題 一個(gè)好的 Android 應(yīng)用程序要有友好的用戶界面。 Android 通過(guò)三種方式生成用戶界面:第一,通過(guò) xml 配置來(lái)生成;第二,通過(guò)自己的界面接口 來(lái)生成;第三,直接用代碼來(lái)生成。但最為常用的 是 通過(guò) xml 配置來(lái)生成,使用 xml 布局文件的好處是可擴(kuò)展、內(nèi)容與形式分離和平臺(tái)無(wú)關(guān)性 ,將應(yīng)用程序界面與控制它行為的代碼更好的分離,免去了很多時(shí)候修改程序代碼的難題。本課題設(shè)計(jì)的基于 Android 平臺(tái)的任務(wù)管理器在布局方面也很講究,用到的布局有相對(duì)布局、線性布局等。 線性布局是將子組件按照垂直或者水平方向來(lái)布局,方向控制由 Android:orientation屬性來(lái)控制,屬性值有水平 ( horizontal) 和垂直 ( vertical) 兩種。 當(dāng)用到垂直線性 布局時(shí),每一行只能放置一個(gè)控件;當(dāng)采用水平線性布局時(shí),每一列只能放置一個(gè)控件。還有一個(gè)用來(lái)控制對(duì)齊方式的屬性即 Android:gravity,其屬性值有上、下、左、右。 另外,在線性布局中還可以為單獨(dú)的子元素指定 weight,根據(jù) weight 值的大小來(lái)為元素分配相應(yīng)的空間,便于組件之間的管理。在默認(rèn)情況下,其值為 0。 相對(duì)布局是指按照組件之間的相對(duì)位置來(lái)布局 , 當(dāng)我們需要在一行(列)上顯示多個(gè)控件時(shí)就要用 RelativeLayout 來(lái)進(jìn)行相對(duì)布局, RelativeLayout 允許子元素指定它們相對(duì)于其它元素或父元素的位置(通過(guò) ID 指定)。 RelativeLayout 參數(shù)有 Width、 Height、Below、 AlignTop、 ToLeft、 Padding 和 MargingLeft。參數(shù)中的 ToLeft、 AlignTop、 Below用來(lái)指定其相對(duì)于其他子元素而言的。 資源的獲取和使用問(wèn)題 Android 中的資源是指非代碼部分,它們作為應(yīng)用程序的一部分被編譯到應(yīng)用程序當(dāng)中 , 程序中使用的圖片、音頻、動(dòng)畫(huà)和字符串等就是 Android 中的資源文件。 Android工程中的 assets 和 res 文件夾就 是用來(lái)保存資源文件的 , 前者一般用來(lái)保存一些原生的文件,且其中的資源很少使用,而后者中的資源經(jīng)常被使用到并可以通過(guò) R 資源類(lèi)直接訪問(wèn)。 工程 res 目錄下創(chuàng)建和保存的各種不同類(lèi)型的資源文件,都有一定的布局和格式, 并使用資源編譯器工具 AAPT 來(lái)編譯。 如表 所示為資源的布局和類(lèi)型。 資源文件的使用有兩種方式:第一,在代碼中使用;第二,在其它資源文件中應(yīng)用該資源文件 。 每一個(gè) Android 應(yīng)用程序都會(huì)有一個(gè) R 類(lèi),該類(lèi)包含了系統(tǒng)中使用到的所Android 平臺(tái) 任務(wù)管理器系統(tǒng) 的設(shè)計(jì)與實(shí)現(xiàn) 17 有資源文件。在代碼中使用 R 資源類(lèi)中定義 的資源文件類(lèi)型和資源文件名稱來(lái)訪問(wèn)資源文件,即 .資源文件名稱。訪問(wèn)系統(tǒng)中的資源的格式為: 文件名稱 [10],例如: int I。 I=。 I=。 在其它資源文件中應(yīng)用資源文件 TextView Android:layout_width=” fill_parent” Android:layout_height=” wrap_content” Android:text=” @string/styled_welg” Android:textSize=” dimen/sixteen_sp” / 表 41 資源的類(lèi)型和布局表 5 Android 平臺(tái) 任務(wù)管理器 系統(tǒng) 編碼 與實(shí)現(xiàn) Android 平臺(tái)任務(wù)管理器開(kāi)發(fā)環(huán)境搭建好之后,便進(jìn)入了系統(tǒng)編碼與實(shí)現(xiàn)階段。 下面依次對(duì)系統(tǒng)中包和類(lèi)、各功能模塊的實(shí)現(xiàn)進(jìn)行闡述。 功能模塊中包和類(lèi)的說(shuō)明 :該包中包括 8 個(gè)類(lèi),主要是一些程序顯示類(lèi)及主初始化類(lèi)。 : 自定義的一些 ListView 顯示方式類(lèi)。 : 一些實(shí)體,類(lèi)包括 、 和。 資源文件 類(lèi)型 res/anim XML 動(dòng)畫(huà)文件 res /drawable 一些圖文件 res /layout XML 布局文件 res /value 各種 XML 資源文件 :XML 數(shù)組文件 :XML 顏色文件 res /xml 任意的 XML 文件 res /menu XML 菜單文件 Android 平臺(tái) 任務(wù)管理器系統(tǒng) 的設(shè)計(jì)與實(shí)現(xiàn) 18 功能模塊的實(shí)現(xiàn) 本 系統(tǒng)開(kāi)始執(zhí)行后,便進(jìn)入系統(tǒng)主界面,如圖 51 所示。 分為進(jìn)程、服務(wù)、任務(wù)、系統(tǒng)程序和卸載五大功能模塊,點(diǎn)擊選項(xiàng)卡可以進(jìn)行功能模塊的相互切換。點(diǎn)擊各選項(xiàng)卡可以查看運(yùn)行中的程序數(shù)量,以及其占用內(nèi)存情況,并可進(jìn)行刷新程序、結(jié)束選中和結(jié)束全部等相關(guān)操作。 圖 51 系統(tǒng)主界面 按下 MENU菜單,有四個(gè)菜單項(xiàng),如圖 52 所示。 選擇手機(jī)信息菜單 可以查看該手機(jī)的相關(guān)信息,包括可用內(nèi)存、 SDcard 信息、 CPU 型號(hào)、手機(jī)型號(hào)、系統(tǒng)內(nèi)核和系統(tǒng)版本等相關(guān)信息;選擇幫助菜單,可以查看該系統(tǒng)軟件的相關(guān)信息;選擇關(guān)于我們菜單可 以查看該系統(tǒng)軟件的作者和用途等。選擇退出菜單,可以退出。 Android 平臺(tái) 任務(wù)管理器系統(tǒng) 的設(shè)計(jì)與實(shí)現(xiàn) 19 圖 52 菜單 界面 主界面的實(shí)現(xiàn) 在系統(tǒng)的開(kāi)始 我們使用 Main 類(lèi)來(lái)初始化系統(tǒng)界面 , 并加載菜單選項(xiàng)。在該界 面通過(guò)選項(xiàng)卡來(lái)進(jìn)行功能 之間的切換 ,不僅具有分頁(yè)的效果,而且頁(yè)面的內(nèi)容更加豐富,也更具親和力 。 因?yàn)橐褂?TabHost,所以必須首先繼承 TabActivity 類(lèi),通過(guò) TabActivity的 getTabHost()方法得到 TabHost 對(duì)象。 考慮到 TabHost 是 一種特殊的 FrameLayout 布局(幀布局), 采用原先的加載布局文件 的方式也即 setContentView()可能導(dǎo)致錯(cuò)誤, 所 以 我 們 在 Main 類(lèi)中使用 另 一 種 方 式 來(lái) 設(shè) 置 布 局 文 件 即(this).inflate(,(),true),通過(guò)該方法 來(lái)綁定 TabHost 容器的內(nèi)容 , 而后向 TabHost 中添加內(nèi)容, 主要代碼如下: (mTabHost Android 平臺(tái) 任務(wù)管理器系統(tǒng) 的設(shè)計(jì)與實(shí)現(xiàn) 20 .newTabSpec(taskListview) .setIndicator(進(jìn)程 , getResources().getDrawable()) .setContent())。 (mTabHost .newTabSpec(service) .setIndicator(服務(wù) , getResources().getDrawable()) .setContent())。 (mTabHost .newTabSpec(task) .setIndicator(任務(wù) , getResources().getDrawable()) .setContent())。 (mTabHost .newTabSpec(application) .setIndicator(系統(tǒng)程序 , getResources().getDrawable()) .setContent())。 ((uninstall) .setIndicator(卸載 , getResources().getDrawable()) .setContent())。 //增加菜單選項(xiàng) public boolean onCreateOptionsMenu(Menu menu) { // TODO Autogenerated method stub (0, 1, 1, 手機(jī)信息 )。 (0, 2, 2, 幫助 )。 (0, 3, 3, 關(guān)于我們 )。 (0, 4, 4, 退出 )。 return (menu)。 } Android 平臺(tái) 任務(wù)管理器系統(tǒng) 的設(shè)計(jì)與實(shí)現(xiàn) 21 進(jìn)程模塊的實(shí)現(xiàn) 在系統(tǒng)中使用 ProcessListView 類(lèi)來(lái)完成當(dāng)前進(jìn)程中所有運(yùn)行的程序的顯示。在Android 提供的眾多服務(wù)管理類(lèi)中, ActivityManager 類(lèi)用于獲取系統(tǒng)里所有正在運(yùn)行 的服務(wù), PackagerManager 類(lèi)則封裝了對(duì)應(yīng)用程序信息的操作,所以 在 ProcessListView 初始化時(shí)首先通過(guò) getSystemService()獲取 ActivityManager實(shí)例對(duì)象。在程序中,我們既需要獲得正在運(yùn)行的應(yīng)用,還要通過(guò) PackagerManager 來(lái)知道每個(gè)應(yīng)用的詳細(xì)信息。 Android 應(yīng)用中,當(dāng)處理下載或執(zhí)行一些比較耗時(shí)的任務(wù)時(shí),如果只是簡(jiǎn)單的把那些處理函數(shù)放在 Activity 的 onCreate()或是 onStart()中,會(huì)導(dǎo)致 Activity 在執(zhí)行過(guò)程中無(wú)響應(yīng),如果時(shí)間過(guò)長(zhǎng),還可能導(dǎo)致程序掛掉。要顯示運(yùn)行中的程序,會(huì)經(jīng)常用到刷新顯示,為了避免上述現(xiàn)象的發(fā)生,我們用到了 Handler 技術(shù)。 Handler 會(huì)開(kāi)辟一個(gè)單獨(dú)的線程來(lái)執(zhí)行那些功能,這樣就可以與 Activity 互不影響。 在耗時(shí)操作完結(jié)后發(fā)送消息給主線程,由主線程做相應(yīng)處理,這種線程之間的消息傳遞和異步處理就是通過(guò) Handler 來(lái)完 成的。 部分代碼如下: private class RefreshHandler extends Handler { @Override public void handleMessage(Message msg) { // TODO : Update your UI // getListView().setAdapter(procListAdapter)。 adapter_preocess = new MyProcessAdapter(mn, run_list)。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1