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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-面向android系統(tǒng)的測(cè)試工具-閱讀頁(yè)

2025-02-01 01:36本頁(yè)面
  

【正文】 。 import 。 private Button btnUnBind。 binder。 } // 當(dāng)客戶端與 Service 建立連接時(shí) Override public void onServiceConnected(ComponentName name, IBinder service) {大連海洋大學(xué)本科畢業(yè)論文(設(shè)計(jì)) 第 3 章 測(cè)試工具介紹 19 (onServiceConnected)。 } }。 setContentView()。 btnUnBind = (Button) findViewById()。 final Intent intent = new Intent()。 (new () { Override public void onClick(View v) { // 綁定 Service bindService(intent, conn, BIND_AUTO_CREATE)。 (new () { Override public void onClick(View v) { // 解除綁定 unbindService(conn)。 //獲取數(shù)據(jù) (new () { Override public void onClick(View v) { // 獲取數(shù)據(jù) (,大連海洋大學(xué)本科畢業(yè)論文(設(shè)計(jì)) 第 3 章 測(cè)試工具介紹 20 Service 的 count 值為 + (), ).show()。 } } 點(diǎn)擊 ” 獲取 Service 里的數(shù)據(jù) ”按鈕 點(diǎn)擊 “unBindService”按鈕 所以也可以通過(guò)上圖知道 bindService 的生命周期 bindService 會(huì)經(jīng)歷 onCreate()onBind()onUnbind()onDestory 如何去理解這種通信方式? 我的理解是 bindService 這一方我們可以看作是客戶端,然后客戶端調(diào)用bindService()方法去綁定一個(gè) Service, Service 給我們返回一個(gè) Binder 對(duì)象用于客戶端與Serivce 通信,而這個(gè) Binder 對(duì)象我們可以在客戶端的 ServiceConnection 對(duì)象里的一個(gè)onServiceConnected()方法取到這個(gè) Binder 對(duì)象,這樣我們就也能取到 Service 里的數(shù)據(jù)了 所以總結(jié): bindService 與 startService 的區(qū)別: 1. 生命周期 : startService() 方式啟動(dòng) , Service 是通過(guò)接受 Intent 并且會(huì)經(jīng)歷大連海洋大 學(xué)本科畢業(yè)論文(設(shè)計(jì)) 第 3 章 測(cè)試工具介紹 21 onCreate()和 onStart() .當(dāng)用戶在發(fā)出意圖使之銷(xiāo)毀時(shí)會(huì)經(jīng)歷 onDestroy () ,而 bindService () 方 式啟動(dòng) ,與 Activity 綁定的時(shí)候 ,會(huì)經(jīng)歷 onCreate() 和 onBind () ,而當(dāng) Activity 被銷(xiāo)毀的時(shí)候, Service 會(huì)先調(diào)用 onUnbind () 然 后是 onDestroy () 。而后者由于與 Activity 綁定 ,不用考慮其生命周期問(wèn)題 ,并且從發(fā)送 Intent 的被動(dòng)操作 ,變?yōu)榭梢灾鲃?dòng)對(duì) Service 對(duì)象進(jìn)行操作,我們甚至可以建立一個(gè) Handler 類(lèi),對(duì)Service 進(jìn)行相關(guān)的操作。 總結(jié) : 對(duì)于簡(jiǎn)單的應(yīng)用 startService() 啟動(dòng)方式能帶來(lái)更少的代碼 , 簡(jiǎn)單的操作 。 大連海洋大學(xué)本科畢業(yè)論文(設(shè)計(jì)) 第 3 章 測(cè)試工具介紹 22 第 4章 總體設(shè)計(jì) . 概述 . 程序說(shuō)明 本項(xiàng)目主要通過(guò) Android 自動(dòng)化測(cè)試工具對(duì) AP 進(jìn)行手動(dòng)設(shè)定,自動(dòng)執(zhí)行的測(cè)試工作。 編譯成功后即可在 Android 模擬器上運(yùn)行程序,進(jìn)行 TestCase 的壓入,手動(dòng)設(shè)定,進(jìn)而執(zhí)行程序,輸出結(jié)果。 整體處理流程示意圖: 圖 操作流程流程示意圖 壓下這 SelectFile 測(cè)試的結(jié)果在TestSoEasy 畫(huà)面顯示 StartTest 鍵按下, AP 是 Copy 項(xiàng) 自動(dòng)測(cè)試開(kāi)始執(zhí)行 大連海洋大學(xué)本科畢業(yè)論文(設(shè)計(jì)) 第 3 章 測(cè)試工具介紹 23 . 構(gòu)成 項(xiàng)目中模塊為 TestSoeasy 及 SmartPanel 兩 部分,其中主要的類(lèi)為 CommonActivity,ApplicationServiceProxy, AutoTestToolActivity 類(lèi)與 ApplicationService 類(lèi) . 類(lèi)一覽 類(lèi)名 功能 CommonActivity 需要測(cè)試的 AP ApplicationServiceProxy 發(fā)送消息數(shù)據(jù) AutoTestToolActivity 自動(dòng)化測(cè)試部分 ApplicationService 連攜 AP 與測(cè)試部分,啟動(dòng)測(cè)試 表 類(lèi)一覽 大連海洋大學(xué)本科畢業(yè)論文(設(shè)計(jì)) 第 5 章 設(shè)計(jì)思想 24 第 5章 設(shè)計(jì)思想 . 設(shè)計(jì)思想 概述 一個(gè)聲明解釋一些對(duì) Android開(kāi)發(fā)者有用的技術(shù)思想和觀點(diǎn) 。通常, 要明白 如何使用 API 來(lái)做你想做的事情 。 正確構(gòu)建應(yīng)用 ——通常需要花費(fèi)更長(zhǎng)的時(shí)間,并且通常意味著犯錯(cuò)誤并從錯(cuò)誤中學(xué)習(xí)。 成功地應(yīng)用會(huì)提 供出色的終端用戶體驗(yàn)。 出色的用戶體驗(yàn)有三個(gè)特征:速度快 。當(dāng)然從早期計(jì)算機(jī)到現(xiàn)在的計(jì)算機(jī),每個(gè)平臺(tái)都曾不只一次地引用過(guò)這三個(gè)特征。下面的信息解釋了你的應(yīng)用如何能夠在 Android 上實(shí)現(xiàn)這些特征。更準(zhǔn)確的說(shuō)他應(yīng)該是高效的。然而對(duì)于嵌入式應(yīng)用而言, Moor 定律會(huì)變得有些復(fù)雜。摩爾定律實(shí)際上是關(guān)于晶體管密度的定律,它是說(shuō)每隔一段時(shí)間后,你可以在給定的芯片上部署更多電路。對(duì)于類(lèi)似手機(jī)這樣的嵌入式應(yīng)用而言,摩爾定律通常被用于造出更小的芯片。象手機(jī)這樣的嵌入式設(shè)備在不斷增加,速度遠(yuǎn)遠(yuǎn)要慢于桌面系統(tǒng) 。而速度則是次要因素。一般來(lái)講,寫(xiě)快速的代碼意味著要是內(nèi)存分配最小化,代碼緊湊,并且避免可能影響性能的語(yǔ)言和編程習(xí)慣。 關(guān)于如何寫(xiě)高效的 Android 代碼的文章將會(huì)給你提供寫(xiě)快速、高效 Android 代碼的所有信息。現(xiàn)代的手持設(shè)備,與其說(shuō)是電話,更像一臺(tái)拿在手中的電腦。 這就是為什么我們?cè)跁?shū)寫(xiě) Android 應(yīng)用程序的時(shí)候要格外關(guān)注效率。這意味著,設(shè)備沒(méi)有更多的能力,我們必須把程序?qū)懙谋M量有效。 . 設(shè)計(jì) 原則 所有 設(shè)計(jì) 的內(nèi)容都遵照這兩個(gè)原則。 xing:代碼優(yōu)化,相對(duì)于結(jié)構(gòu)優(yōu)化 )的確會(huì)帶來(lái)很多問(wèn)題,諸如無(wú)法使用更有效的數(shù)據(jù)結(jié)構(gòu)和算法。假如你認(rèn)為 Android 虛擬機(jī)的性能與臺(tái)式機(jī)相當(dāng),你的程序很有可能一開(kāi)始就占用了系統(tǒng)的全部?jī)?nèi)存 (xing:內(nèi)存很小 ),這會(huì)讓你的程序慢得像蝸牛一樣,更遑論做其他的操作了。而這種用戶體驗(yàn),部分依賴(lài)于你的程序是響應(yīng)快速 而靈活的,還是響應(yīng)緩慢而僵化的。而這篇文檔就相當(dāng)于你在取得駕照之前必須要學(xué)習(xí)的交通規(guī)則。這就是為什么這些原則十分重要。有些 JVM 包含 JIT 編譯器。假如我們有目標(biāo)完全相同的兩個(gè)方法,在解釋執(zhí)行時(shí) foo()比 bar()快,那么編譯之后, foo()依然會(huì)比 bar()快。 原則一 世界上沒(méi)有免費(fèi)的對(duì)象。 如果你在用戶界面循環(huán)中分配對(duì)象內(nèi)存,就會(huì)引發(fā)周期性的垃圾回收,用戶就會(huì)覺(jué)得界面像打嗝一樣一頓一頓的。下面的例子將幫助你 理解這條原則: 當(dāng)你從用戶輸入的數(shù)據(jù)中截取一段字符串時(shí),盡量使用 substring 函數(shù)取得原始數(shù)據(jù)的一個(gè)子串,而不是為子串另外建立一份拷貝。 如果你有一個(gè)函數(shù)返回一個(gè) String 對(duì)象,而你確切的知道這個(gè)字符串會(huì)被附加到一個(gè)StringBuffer,那么,請(qǐng)改變這個(gè)函數(shù)的參數(shù)和實(shí)現(xiàn)方式,直接把結(jié)果附加到 StringBuffer中,而不要再建立一個(gè)短命的臨時(shí)對(duì)象。 int 數(shù)組比 Integer 數(shù)組好,這也概括了一個(gè)基本事實(shí),兩個(gè)平行的 int 數(shù)組比 (int,int)大連海洋大學(xué)本科畢業(yè)論文(設(shè)計(jì)) 第 5 章 設(shè)計(jì)思想 26 對(duì)象數(shù)組性能要好很多。 如果你想用一種容器存儲(chǔ) (Foo,Bar)元組,嘗試使用兩個(gè)單獨(dú)的 Foo[]數(shù)組和 Bar[]數(shù)組,一定比 (Foo,Bar)數(shù)組效率更高。這時(shí)候你要注重對(duì) API 借口的設(shè)計(jì)而犧牲一點(diǎn)兒速度。減少對(duì)象的創(chuàng)建就能減少垃圾 收集,進(jìn)而減少對(duì)用戶體驗(yàn)的影響。這些方法都是使用 C/C++實(shí)現(xiàn)的,比起 Java 循環(huán)快 10 到100 倍。 HashMap myMap2 = new HashMap()。傳統(tǒng)的觀點(diǎn)對(duì)于傳統(tǒng)的程序是正確的,但是它并不適合嵌入式系統(tǒng)。 如果 HashMap 完全適合你的程序,那么使用 Map 就沒(méi)有什么價(jià)值。 (當(dāng)然公共 API 是一個(gè)例外:一個(gè)好的 API 常常會(huì)犧牲一些性能 ) 用靜態(tài)方法比虛方法好 如果你不需要訪問(wèn)一個(gè)對(duì)象的成員變量,那么請(qǐng)把方法聲明成 static。另外你也可以通過(guò)聲明體現(xiàn)出這個(gè)函數(shù)的調(diào)用不會(huì)改變對(duì)象的狀態(tài)。在 C++中這是一個(gè)非常好的習(xí)慣,因?yàn)榫幾g器能夠內(nèi)聯(lián)訪問(wèn),如果你需要約束或調(diào)試變量,你可以在任何時(shí)候添加代碼。虛方法的開(kāi)銷(xiāo)比直接訪問(wèn)成員變量大得多。 將成員變量緩存到本地 訪問(wèn)成員變量比訪問(wèn)本地變量慢得多,下面一段代碼: ? or (int i = 0。 i++) dumpItem([i])。 ? Item[] items = 。 i ? count。 (使用 ”this”是為了表明這些是成員變量 ) 原則二 永遠(yuǎn)不要在 for 的第二個(gè)條件中調(diào)用任何方法。 ? for (int i = 0。 i++)同樣如果你要多次訪問(wèn)一個(gè)變量,也最好先為它建立一個(gè)本地變量,例如: ? protected void drawHorizontalScrollBar(Canvas canvas, int width, int height) { ? if (isHorizontalScrollBarEnabled()) { ?? int size = (false)。 ?? } ?? (0, height ? size, width, height)。 ?? (canvas)。 另外就是方法的參數(shù)與本地變量的效率相同。 ?? static String strVal = “Hello, world!”。方法會(huì)將 42 賦給 intVal,然后把一個(gè)指向類(lèi)中常量表的引用賦給 strVal。下面我們做些改進(jìn),使用 “final”關(guān)鍵字: ?? static final int intVal = 42。 現(xiàn)在,類(lèi)不再需要方法,因?yàn)樵诔蓡T變量初始化的時(shí)候,會(huì)將常量直接保存到類(lèi)文件中。 大連海洋大學(xué)本科畢業(yè)論文(設(shè)計(jì)) 第 5 章 設(shè)計(jì)思想 26 將一個(gè)方法或類(lèi)聲明為 ”final”不會(huì)帶來(lái)性能的提升,但是會(huì)幫助編譯器優(yōu)化代碼。 你也可以將本地變量聲明為 ”final”,同樣,這也不會(huì)帶來(lái)性能的提升。 foreach 會(huì)給這些對(duì)象分配一個(gè) iterator,然后調(diào)用 hasNext()和 next()方法。 下面展示了 foreach 一種可接受的用法: ?? public class Foo { ?? int mSplat。 ?? public static void zero() { ?? int sum = 0。 i 。 ?? } ?? } ?? public static void one() { ?? int sum =
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1