原创 使用反射時出現java.lang.NoSuchMethodException

問題:在用反射時出現錯誤java.lang.NoSuchMethodException 原因:反射調用的方法參數列表中包含int、boolean等類型,使用反射時將這些參數對應的類寫成了Integer.class、Boolean.clas

原创 BroadcastReceiver trying to return result during a non-ordered broadcast

接收non-ordered廣播時,如果調用方法終止廣播: this.abortBroadcast();會報異常: BroadcastReceiver trying to return result during a non-ordered

原创 Access restriction: The type XXXX is not accessible due to restriction on required library

問題:Access restriction: The type XXXX is not accessible due to restriction on required library 解決辦法:在Build Path裏面把JRE Sy

原创 Eclipse AndroidManifest.xml file missing

這個問題感覺是eclipse的bug。首先工程莫名其妙的不能運行,提示"your project contains errors",但除了工程名,各個文件夾下都沒有錯誤,buildpath也沒有錯誤。開了”Problem“的view查看發

原创 Instrumentation run failed due to 'java.lang.IllegalAccessError'

運行單元測試時出現這個問題,原因是測試工程與被測工程引用了重複的jar包(或重複的工程)。將測試工程裏的引用刪除即可 點贊 1 收藏 分享 文章舉報 mingzhu_ustc 發

原创 獲取一個Activity中的實際控件並操作

一個很頭疼的問題:做單元測試時,經常遇到界面與邏輯相耦合的情況: 想調用一個私有函數,必須通過其它公有函數來完成,而公有函數(或這個私有函數)的調用又涉及到一系列變量及控件的初始化,如果強行調用/使用反射調用,就會不可避免的出現NullP

原创 android Pair

孤陋寡聞,竟然才知道android裏有Pair這個數據結構。使用起來真是太方便了,與ArrayList配合使用,完美的解決了HashMap輸出時順序錯亂的問題。 位置在android.util.Pair中(官網)。 點贊

原创 反編譯時有些類文件不在代碼中

反編譯時遇到一種情況:反編譯得到的代碼中引用了某些類,但這些類的源文件卻不在反編譯代碼中。 按理說這種情況反編譯時應該報錯,但是沒有。說明這些類能被成功的引用。那這些類的實現是在哪裏呢? 答案:在framework包中。反編譯時odex

原创 android4.4短信新特性

KitKat系統開放了短信權限,增加了“默認短信”的概念,新特性如下: 新增Intent 新增了兩個intent:SMS_DELIVER_ACTION 和 WAP_PUSH_DELIVER_ACTION,分別對應新短信和新彩信的到來。 在

原创 對自動化測試的一點思考

    我認爲,就目前階段來說,自動化測試要解決的問題其實只有一個:測試流程中的“大量、機械、重複”。     “大量、機械、重複”這三個條件其實任何一個不滿足,都不太適合進行自動化。不滿足“大量”,那自動化的成本就會高於其收益;不滿

原创 Mount與Mount Point是什麼意思

Mount與Mount Point是什麼意思 概述 我們平時經常見到“Mount”這個概念,它被譯爲“掛載”。例如在Root Explorer中,就會讓你選擇“掛載爲只讀/讀寫”,獲取root權限以後就可以將整個系統掛載爲讀寫,從而可以自

原创 Android Root原理和流程分析

預備知識 android手機的內部存儲設備分RAM和ROM,RAM是運行內存,掉電就會失去所有內容;ROM中的內容掉電後也不會丟失。 比如一臺手機的規格參數裏寫着“2G RAM,16G ROM”。理論上,RAM越大,系統運行越流暢。像大

原创 在代碼中對apk文件重簽名

廢話不說,上代碼: public static boolean signApk(String sourcePath, String targetPath, String key, String passwd, String alia

原创 反編譯odex文件

http://code.google.com/p/smali/downloads/list 下載下面4個文件。 命令行輸入命令: “java -jar baksmali.jar -x CertInstaller.odex” 注意:如

原创 重簽名工具re-sign.jar的實現原理

做一個測試工具時,需要將被測應用重新簽名。re-sign.jar用順手了,想在代碼中也調用它來進行重簽名工作,但轉念一想幹嘛不在代碼裏把它實現了呢? re-sign.jar工具可以將一個apk文件重簽名,使用的是android自帶的de