? ? ? 今天開始介紹了下px與dp還有sp,都是與像素有關(guān),個人理解px就是絕對像素,一個不可變的定值,無論在何種分辨率下都是固定大小,而dp則會根據(jù)分辨率的大小來變化,sp要用于設(shè)置字體的大小固很少用,主要用dp.
? ? ? ? 接著來了一個比較有意思的小案例,當(dāng)年風(fēng)靡全國的聊天軟件QQ,經(jīng)常出現(xiàn)密碼被盜的事情,我們就來編寫最原始的這種盜號軟件是如何實現(xiàn)盜取用戶密碼的.代碼關(guān)鍵點就是得點擊登陸button的時候通過點擊事件,將用戶填寫的賬號跟密碼通過短信形式發(fā)送給盜號的手機中,其中牽扯到發(fā)短信權(quán)限.
之后開始學(xué)習(xí)四種點擊事件:
1.內(nèi)部類實現(xiàn)onClickListener的接口。太麻煩,真實開發(fā)不使用
2.匿名內(nèi)部類實現(xiàn)onclickListener,new的是接口的實現(xiàn)類。
3.讓當(dāng)前的Activity實現(xiàn)onClickListener的接口。
4.在布局xml文件里面聲明onclick屬性="方法名"。
然后講了幾種常見測試分類
一、根據(jù)是否知道源碼
黑盒測試:不知道源碼。
白盒測試:知道源碼。
二、根據(jù)測試粒度分類
方法測試:FunctionTest,粒度最低,測試單個方法。
單元測試:JunitTest方法里面會調(diào)用其他的方法。
聯(lián)調(diào)測試:IntegrationTest后臺與前臺集成,各模塊之間的集成測試。
三、根據(jù)測試次數(shù)分類
冒煙測試:顧名思義,把設(shè)備一直測試到冒煙為止。Android下提供給我們一種冒煙測試的功能Monkey
Test猴子測試,在命令行輸入adb shell,進入Linux命令行。測試整個系統(tǒng)命令:monkey
1000(事件的數(shù)量);測試某個程序:monkey -p包名事件的數(shù)量。
壓力測試:PressureTest,給后臺用的,主體向被觀察者布置一定量任務(wù)和作業(yè),借以觀察個體完成任務(wù)的行為。
Android Junit測試
在JavaSE中我們可以使用Junit進行單元測試,Android也提供了單元測試框架供我們使用,不同的是該框架可以模擬Android上下文環(huán)境,可以在單元測試中通過getContext()方法獲取到context上下文進行使用。注意的是:需要把應(yīng)用程序部署到真實的手機或者模擬器,在dalvik虛擬機里面運行。
Logcat的使用
Android的Logcat用于顯示系統(tǒng)的調(diào)試信息,Log是android.util.Log包下的類,用于日志的輸出。日志總共有5種輸出級別,從低到高分別為:verbose、debug、info、warn、error。
Android下的數(shù)據(jù)存儲
Android系統(tǒng)中的五種數(shù)據(jù)存儲方式:
l文件存儲:以I/O流形式把數(shù)據(jù)存入手機內(nèi)存或者SD卡,可以存儲大數(shù)據(jù),如音樂,圖片或者視頻等。
lSharedPreferences:它本質(zhì)上是一個XML文件,以Map形式存入手機內(nèi)存中。常用于存儲簡單的參數(shù)設(shè)置,如QQ登陸賬號密碼的存儲,窗口功能狀態(tài)的存儲等,使用起來簡單、方便。
lSQLite數(shù)據(jù)庫:SQLite是一個輕量級,跨平臺的數(shù)據(jù)庫。數(shù)據(jù)庫所有信息都存儲在單一文件內(nèi),占用內(nèi)存小,并且支持基本SQL語法,是項目中經(jīng)常被采用的一種數(shù)據(jù)存儲方式,通常用于存儲用戶信息等。
lContent Provider:內(nèi)存提供者,Android四大組件之一,以數(shù)據(jù)庫形式存入手機內(nèi)存,可以共享自己的數(shù)據(jù)給其他應(yīng)用使用。
l網(wǎng)絡(luò)存儲:把數(shù)據(jù)存儲到服務(wù)器,不存儲在本地,使用的時候直接從網(wǎng)絡(luò)獲取,避免了手機端信息丟失以及其他的安全隱患。
內(nèi)存存儲
當(dāng)應(yīng)用安裝到Android后,系統(tǒng)會根據(jù)每個應(yīng)用的包名創(chuàng)建一個/data/data/包名/的文件夾,訪問自己包名下的目錄是不需要權(quán)限的,并且Android已經(jīng)提供了非常簡便的API可以直接去訪問該文件夾。
外部存儲SD卡
應(yīng)用程序可以把數(shù)據(jù)存儲在外部存儲設(shè)備上,也就是常見的SD卡上(該文件通常位于mnt/sdcard目錄下,不同產(chǎn)商生產(chǎn)的手機這個路徑可能不同),但是在操作sd卡的時候最好去判斷下sd卡是否可用以及剩余空間是否足夠,因為有的手機可能沒有插sd卡。
SharedPrefrerences存儲
使用SharedPrefrerences進行存儲是最方便也是最常用的,存儲的時候通過key/value鍵值對的形式保存在XML文件中,該文件位于:data/data/包名/shared_prefs文件夾中。使用的時候,通過context.getSharedPrefrences(Stringname,int mode)獲取SharedPrefrences的實例對象,在Activity中可以直接使用this代表上下文,如果不是在activity中需要使用Context上下文來獲取。
文件權(quán)限
Android是基于Linux的操作系統(tǒng),因此Android的文件權(quán)限其實就是Linux的文件權(quán)限。在Linux中一個文件一共有三個組別:用戶、群組、其它。其中每個組包含三種權(quán)限:讀r、寫w、執(zhí)行x,也就是說一個文件共有9個權(quán)限屬性.