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

正文內(nèi)容

畢業(yè)設(shè)計-面向android系統(tǒng)的測試工具(文件)

2025-02-04 01:36 上一頁面

下一頁面
 

【正文】 })。 } })。大大加強(qiáng)了 Service 的靈活性、可操作性。 PC 機(jī)上運(yùn)用 Eclipse 編輯程序代碼以及對程序代碼進(jìn)行調(diào)試,利用 Android 模擬器進(jìn)行程 序的測試。 學(xué)習(xí)如何在一個新的API 上創(chuàng)建應(yīng)用的過程都是類似的,即便平臺本身存在很大差異性。那不是一個高效率的過程 。響應(yīng)及時以及無縫。 速度快 Android 應(yīng)用應(yīng)該是快速的。 摩爾定律沒有如同應(yīng)用于桌面和服務(wù)器應(yīng)用一樣真正地應(yīng)用于移動設(shè)備。在嵌入式界的趨勢是利用這種晶體管密度的增加來造出更小、更節(jié)能的芯片,從而使手機(jī)更小,電池待機(jī)時間更長。 這就是為什么需要寫高效的代碼:你不能假設(shè)手機(jī)與桌面系統(tǒng)和服務(wù)器一樣提速。編寫高效的 Android 代碼 , 雖然如此說,但似乎并沒有什么好的辦法: Android 設(shè)備是嵌入式設(shè)備。這些設(shè)備并沒有那么快,并且受電池電量的制約。 有些人可能馬上會跳出來,把本節(jié)的大部分內(nèi)容歸于 “草率的優(yōu)化 ”(xing:參見 [The Root of All Evil]),不可否認(rèn)微優(yōu)化 (microoptimization。 Android 的成功依賴于你的程序提供的用戶體驗。如果大家都按照這些規(guī)則去做,駕駛就會很順暢,但是如果你不這樣做,你可能會車毀人亡。 ),下面提到的這些 原則都是成立的。雖然 GC 為每個線程都建立了臨時對象池,可以使創(chuàng)建對象的代價變得小一些,但是分配內(nèi)存永遠(yuǎn)都比不分配內(nèi)存的代價大。這樣你就有一個新的 String 對象,它與原始數(shù)據(jù)共享一個 char 數(shù)組。同理,這試用于所有基本類型的組合。當(dāng)然在 API 的內(nèi) 部,你仍要盡可能的提高代碼的效率 ) 總體來說,就是避免創(chuàng)建短命的臨時對象。 假設(shè)你有一個 HashMap 對象,你可以將它聲明為 HashMap 或者 Map: Map myMap1 = new HashMap()。調(diào)用一個接口的引用會比調(diào)用實(shí)體類的引用多花費(fèi)一倍的時間。 虛方法執(zhí)行的更快,因為它可以被直接調(diào)用而不需要一個虛函數(shù)表。 在 Android 上,這就不是個好主意了。 i ? 。 大連海洋大學(xué)本科畢業(yè)論文(設(shè)計) 第 5 章 設(shè)計思想 24 ? for (int i = 0。如下面方法所示,在每次循環(huán)的時候都會調(diào)用 getCount()方法,這樣做比你在一個 int 先把結(jié)果保存起來開銷大很多。 ?? if (size= 0) { ?? size = mScrollBarSize。 ?? } ?? } 這里有 4 次訪問成員變量 mScrollBar,如果將它緩存到本地, 4 次成員變量訪問就會變成4 次效率更高的棧變量訪問。 必以其會生成一個叫做的初始化類的方法,當(dāng)類第一次被使用的時候這個方法會被執(zhí)行。 ?? static final String strVal = “Hello, world!”。舉例說,如果編譯器知道一個 ”getter”方法不會被重載,那么編譯器會對其采用內(nèi)聯(lián)調(diào)用。你最好使用 foreach 處理 ArrayList對象,但是對其他集合對象, foreach 相當(dāng)于使用 iterator。 ?? for (int i = 0。 ?? Foo[] localArray = mArray。 i++) { ?? sum += mArray[i].mSplat。 ?? static Foo mArray[] = new Foo[27]。使用 ”final”只能使本地變量看起來更清晰些 (但是也有些時候這是必須的,比如在 使用匿名內(nèi)部類的時候 )(xing:原文是 or you have to, . for use in an anonymous inner class) 謹(jǐn)慎使用 foreach 可以用在實(shí)現(xiàn)了 Iterable 接口的集合類型上。用到 intVal 的代碼被直接替換成 42,而使用 strVal 的會指向一個字符串常量,而不是使用成員變量。當(dāng)以后要用到這些值的時候,會在成員變量表中查找到他們。 使用常量 讓我們來看看這兩段在類前面的聲明: ?? static int intVal = 42。 ?? ( ?? puteHorizontalScrollRange(), ?? puteHorizontalScrollOffset(), ?? puteHorizontalScrollExtent(), false)。 i ()。 i++) dumpItems(items[i])。 再好改成這樣: ? int count = 。在通用的接口定義中,可以依 照 OO 的方式定義 getters 和 setters,但是在一般的類中,你應(yīng)該直接訪問變量。 不用 getter 和 setter 在很多本地語言如 C++中,都會使用 getter(比如: i = getCount())來避免直接訪問成員變量 (i = mCount)。如果有些地方你不能確定,先避免使用 Map,剩下的交給 IDE 提供的重構(gòu)功能好了。 哪個更好呢 ? 按照 傳統(tǒng)的觀點(diǎn) Map 會更好些,因為這樣你可以改變他的具體實(shí)現(xiàn)類,只要這個類繼承自 Map 接口。 當(dāng)你在處理字串的時候,不要吝惜使用 (), ()等特殊實(shí)現(xiàn)的方法 (specialty methods)。 (也有例外的情況,就是當(dāng)你建立一個 API,讓別人調(diào)用它的時候。 一個更極端的例子是,把多維數(shù)組分成多個一維數(shù)組。 所以,除非必要,應(yīng)盡量避免盡力對象的實(shí)例。所以不要寄希望于編譯器可以拯救你的程序。 當(dāng)我們開門見山、直擊主題之前,還必須要提醒大家一點(diǎn):不管 VM 是否支持實(shí)時(JIT)編譯器 (xing:它允許實(shí)時地將 Java 解釋型程序自動編譯成本機(jī)機(jī)器語言,以使程序執(zhí)行的速度更快。因為所有的程序都運(yùn)行在同一個設(shè)備之上,都在一起,這就如果在同一條路上行駛的汽車。但是在手持設(shè)備上,你別無選擇。 大連海洋大學(xué)本科畢業(yè)論文(設(shè)計) 第 5 章 設(shè)計思想 25 對于占用資源的系統(tǒng),有兩條基本原則: 不要做不必要的事 不要分配不必要的內(nèi)存 。但是,即使是 “最快 ”的手持設(shè)備,其性能也趕不上一臺普通的臺式電腦。在面向?qū)ο蟮男g(shù)語中,很多類似情況都是發(fā)生在方法級,關(guān)于實(shí)際的代碼順序,循環(huán)等。對于嵌入式設(shè)備而言,摩爾定律意味著更多特性和更好的電池壽命 。對于轉(zhuǎn)面和服務(wù)器應(yīng)用而言,由于性能的提高,這意味著你可以在一塊差不多大小的芯片中得到更高的速度?,F(xiàn)在,在計算界中有一個趨勢,該趨勢假設(shè)摩爾定律可以最終解決所有問題。然而,每個平臺實(shí)現(xiàn)它們的方法不同 。盡管 Android 團(tuán)隊已經(jīng)構(gòu)造了一個強(qiáng)健的內(nèi)核系統(tǒng),但用戶更多的體驗是來自于與你應(yīng)用的交互。然后, 注意 平臺的細(xì)微差別。 . 操作流程 運(yùn)行程序,在 Test 程序中按下 SelectFile 鍵,程序獲取 AP 信息,獲取之后自動化測試開始執(zhí)行,測試結(jié)束,測試結(jié)果在測試畫面顯示。 對于復(fù)雜的應(yīng)用 bindService () 方式,雖然帶來的更多的編碼,但同時也帶來了更好的可操作性,使其使用起來更 方便。 2. 控制方式 :前者的控制方式需要使用固定的方法,對 Service 進(jìn)行單一的操作。 } })。 ()。 btnBind = (Button) findViewById()。 binder = () service。 private Button btnGetData。 import 。 import 。 } } MainActivty package 。 (onDestory)。 // 啟動一條線程修改成員變量屬性 new Thread() { Override public void run() { while (!quit) { try { (1000)。 // 新建一個 Binder 對象用于提供給客戶端 public class MyBinder extends Binder { public int getCount() {大連海洋大學(xué)本科畢業(yè)論文(設(shè)計) 第 3 章 測試工具介紹 17 return count。 import 。再在這個類里聲明一個 Ibinder 的子類對象用于提供于客戶端,同時可以定義一些成員變量,客戶端可以獲取到這個成員變量屬性 在 文件中注冊這個 Service 在 Activity 里通過 bindService 綁定 Service 示例代碼: package 。 } })。 ()。 setContentView()。 import 。 (intent, startId)。 ()。 import 。即使 Service 被系統(tǒng)終止了,在系統(tǒng)資源恢復(fù)后 Service 也將自動恢復(fù)運(yùn)行狀態(tài),因此可以認(rèn)為 Service 是在系統(tǒng)中永久運(yùn)行的組件。有很多情況需要使用 Service,典型的例子就是: MP3播放器。 ”和 “重為輕根,靜為躁君。 最后談一點(diǎn)點(diǎn)感悟,老子曾經(jīng)曰過: “持而盈之,不如其已 。 目前框架中有很多地方硬編碼 ()去等待一個 View 加載完成,避免對空的View 進(jìn)行操作,或者是對一個 view 進(jìn)行 set 操作后,也需要等待一段時間讓操作生效。 TMTS 框架主要思想就是通過反射機(jī)制調(diào)用 Android 框架層 API 拿到當(dāng)前 Activity 的所有 View,在此基礎(chǔ)上返回需要獲得的 View 對象,對獲得的 View 通過 Instrumentation封裝一些此 View 常用的操作,最后返回,這就是 TmtsView 及其子類。 TMTS 立項時還試圖著重解決另一個問題,就是 Instrumentation 框架下 testapp 和 app運(yùn)行在一個進(jìn)程中 , app crash 會導(dǎo)致 testapp 一并 crash。 ,目前框架中有很多地方硬編碼 ()去等待一個 View 加載完成,避免對空的 View 進(jìn)行操作,或者是對一個 view 進(jìn)行 set 操作后,也需要等待一段時大連海洋大學(xué)本科畢業(yè)論文(設(shè)計) 第 3 章 測試工具介紹 11 間讓操作生效。 Bug 的定位離不開日志,因而日志系統(tǒng)也是一個測試框架重要的組成部分, Android的 Log 類中提供了一系列的靜態(tài)方法可以在 IDE 中打印日志。 這種方式缺點(diǎn)也很明顯,對每個從 繼承來的子類,如果其中有特殊的操作,就需要封裝出一個對應(yīng)的 TmtsView 子類。當(dāng)時和士敦一起研究了Instrumentation、 Activity 的啟動流程,甚至想去研究一下 dalvik 是如何解析 Manifest 文件的,最后也沒有想到好的方法,收獲就是了解了 android 更底層一些的細(xì)節(jié),這個問題現(xiàn)在先擱置了起來。 但是 Robotium 目前的缺點(diǎn)也很明顯,無法對 WebView 進(jìn)行操作,這對大量使用WebView 的淘寶 Android 客戶端來說無疑是很大的限制。 Instrumentation 與 Activity 均位于 包下 , 這 個 包 內(nèi) 還 有 諸 如ActivityManagerNative 這種不對 App 層開放的類,通過查看 Android 源碼發(fā)現(xiàn) Activity 類中諸如 startActivity(Intent intent) 這樣重要的方法都是通過 Instrumentation 實(shí)現(xiàn),Instrumentation 中也提供了一系列對 Activity 生命周期控制的方法。 Sun 公司對 Java 編程語言的解釋是: Java 編程語言是個簡單、面向?qū)ο?、分布式、解釋性、健壯、安全與系統(tǒng)無關(guān)、可移植、高性能、 多線程和動態(tài)的語言。 與傳統(tǒng)程序不同, Sun 公司在推出 Java 之際就將其作為一種開放的技術(shù)。 Java 不同于一般的編譯執(zhí)行計算機(jī)語言和解釋執(zhí)行計算機(jī)語言。就在 Oak 幾近失敗之時,隨著互聯(lián)網(wǎng)的發(fā)展,Sun 看到了 Oak 在計算機(jī)網(wǎng)絡(luò)上的廣闊應(yīng)用前景,于是改造了 Oak,以 “Java”的名稱正式發(fā)布。 嵌入式富客戶端平臺( eRCP):計劃將 Eclipse 富客戶端平臺擴(kuò)展到嵌入式設(shè)備上。 Eclipse 通訊框架( ECF):專注于在 Eclipse 平臺上創(chuàng)建通訊應(yīng)用程序的工作。 Eclipse 建??蚣埽?EMF):依據(jù)使用 XMI 描述的建模規(guī)格,生成結(jié)構(gòu)化數(shù)據(jù)模型的工 具和其他應(yīng)用程序的代碼。 Eclipse Web 工具平臺計劃 ( WTP):用 Java 企業(yè)版 Web 應(yīng)用程序開發(fā)工具來擴(kuò)展Eclipse 平臺。 Eclipse 由各種不同的計劃組成。插件架構(gòu)能夠支持將任意的擴(kuò)展加入到 現(xiàn)有環(huán)境中,例如配置管理,而決
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1