1. 程式人生 > >安卓開發-尺寸單位+Logcat的使用+Android單元測試+安卓系統中資料的讀寫

安卓開發-尺寸單位+Logcat的使用+Android單元測試+安卓系統中資料的讀寫

知識檢視:
這裡寫圖片描述
《一:尺寸單位》

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”, “\”);// \為取不到資料時的預設返回值