安卓開發-尺寸單位+Logcat的使用+Android單元測試+安卓系統中資料的讀寫
阿新 • • 發佈:2019-01-10
知識檢視:
《一:尺寸單位》
1.px:電腦 電視上的解析度的尺寸單位。畫素是構成數碼影像的基本單元。例如300x300解析度,即表示水平方向與垂直方向上每英寸長度上的像
素數都是300,也可表示為一平方英寸內有9萬(300x300)畫素。
2.dp:過去,程式設計師通常以畫素為單位設計計算機使用者介面。例如:圖片大小為80×32畫素。這樣處理的問題在於,如果在一個每英寸點數(dpi)
更高的新顯示器上執行該程式,則使用者介面會顯得很小。在有些情況下,使用者介面可能會小到難以看清內容。由此我們採用與解析度無關的度量
單位來開發程式就能夠解決這個問題。Android應用開發支援不同的度量單位。推薦使用使用dp單位,與平時所說的dip是一樣的。(裝置獨立像
素). 不同裝置有不同的顯示效果,這個和裝置硬體有關,不依賴畫素。
3.sp: scaled pixels(放大畫素). 主要用於字型顯示best for textsize
目前市場上所有主流的機型被劃分為5種類型(120dpi的基本不再支援) DPI:dots per inch,一英寸的畫素數量 在程式碼中設定控制元件的大小 系統預設的
單位是px
《二:Logcat的使用》
原理:日誌進記憶體,方記憶體滿時,最早進去被銷燬,類似佇列
使用:
Log.v();黑色,verbose
Log.d():藍色,debug
Log.i():綠色,info
Log.w():橙色,warn
Log.e():紅色,error
等級:verbose<debug<info<warn<error,高等級的攔截器不能攔截比他低等級的日誌
《三:Android的單元測試》
1.配置:在AndroidManifest中的application中配置:
<uses-library android:name=”android.test.runner” />
在根前配置:
<instrumention android:name=”android.test.InstrumentationTestRunner” android:targetPackage=”應用包名“ />
2.書寫測試類,繼承AndroidTestCase.
3.書寫測試方法,宣告異常:throws Exception
《四:安卓下檔案的儲存》
1.安卓中資料的讀寫:
//1.建立在應用中的一個檔案
File file = new File(“/data/data/包名/檔名”);
//2.建立應用中cache資料夾中的一個檔案
File file = new File(getCacheDir(), 檔名);
//3.建立應用中files資料夾中的一個檔案
File file = new File(getFileDir(), 檔名);
//儲存資料
BufferedWriter writer = new BufferedWriter(new FileWriter(file) );
writer.write(資料);
writer.close();
//讀取資料
if(file.exists() && file.length>0){
BufferedReader reader = new BufferedReader(new FileReader(file));
String line = reader.readLine();
}
2.內外存目錄的獲取:
記憶體路徑:Environment.getDataDirectory();
外存路徑:Environment.getExtraStorageDirectory();
(不同廠商外存路徑命名有差別,/mnt/sdcard,/storage/enulated)
3.向SD卡中寫入資料:
此操作敏感,配置許可權:
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” />
String externalState = Environment.getExtraStorageDirectory();
if(externalState.equals(Environment.MEDIA_MOUNTED)){
//建立目標檔案
File parentDir = Environment.getExternalStorageDirectory();
File externalFile = new File(parentDir, “a.avi”);
//寫入檔案
OutputStream outStream = new FileOutputStream(externalFile);
byte[] data = new byte[1024*1024];
for(i= 0; i<10 ;i++){
outStream.write(data);
}
outStream.close();
}
4.內部檔案儲存的訪問模式:
pemission:十位,
1.d:是否是資料夾
2~4:rwx:使用者許可權,每個使用者都是一個應用,只允許本應用訪問
5~7:rwx:組許可權,幾個應用共同歸位一個組,組內使用者可操作
8~10:rwx:其他許可權:其他使用者均可操作
5.SharedPreferences的使用(適合輕量級資料的儲存):
//預設儲存在/data/data/包名/shared_prefs/qqinfo.xml
SharedPreferences sp = getSharedPreferences(“qqinfo”,MODE_PRIVATE);
Editor et = sp.edit();
et.putString(“password”, password);
et.commit();
//回顯資料
SharedPreferences sp = getSharedPreferences(“qqinfo”,MODE_PRIVATE);
String password = sp.getString(“password”, “\”);// \為取不到資料時的預設返回值