基于全志A20 android4.2平台如何支援三個SD卡
做過android平台的同仁大多都知道android原生态隻支援了一個sd卡,預設的挂載點也就是/mnt/sdcard,是以在應用中使用getExternalStorageDirectory()得到的都是/mnt/sdcard,通常會symlink
到/sdcard目錄。做過全志平台的童鞋也知道全志android SDK支援2個sd卡,通常是一個内置的,一個外置的,内置的一般是從nand上或者emmc上的使用者資料區,因為現在的nand、emmc容量都比較大,存放android程式、cache、backup、download等之外,還有大量的空間剩餘,是以這部分大多都會做成一個sd卡來使用,通常挂載到/mnt/sdcard上;外置的是挂載在/mnt/extsd節點上。但是,如何在全志平台上使用三個sd卡呢?即再增加一個外置的SD卡支援。
為了多支援一個SD卡,我們有以下基本需要做:
1、
在系統配置檔案裡,打開對應的SD卡驅動支援,設定好檢測方式,如果是gpio方式的要配置好gpio引腳;筆者測試過,如果兩個外置的SD卡,都使用gpio
polling的方式,系統隻識别一個SD卡,筆者把兩個SD卡一個配置成gpio polling,另外一個配置成了GPIO IRQ中斷模式;
2、
在vold.fstab裡,需要修改一下,如下:
這三個SD卡挂載點都是可以随便交換的;
3、
如果完成了上面兩步,extsd2對應的SD卡熱插拔是可以自動挂載,如果是開機啟動前就在sd卡槽裡面的話,就不會自動識别,是以我們得明确告訴系統storage配置,配置在storage_list.xml檔案中,如下:
4、
在system/vold下面做一些處理,類似extsd處理,加上即可,如下:
完成了以上幾步,三個SD卡已經可以自動識别挂載了,mount的資訊如下: