編輯:中級開發
如果我們設計一款資源包含比較多的游戲,可能你會發現最終生成的APK文件可能高達300MB,但是APK文件很大導致android系統無法正常安裝,而這麼大其實都是游戲中用到的資源文件,我們放到SD卡上可能其他應用也可以訪問,比如說系統的圖片管理器會索引游戲中的圖片資源,而音樂播放器也會索引資源中的音樂,所以android 2.3的OBB文件(Opaque Binary Blob)可以很好的解決大文件在SD卡上分離出APK文件,同時別的程序沒有權限訪問這樣一種隔離的文件系統。
android.os.storage.StorageManager類的實例化方法需要使用getSystemService(Contxt.STORAGE_SERVICE)才可以,android開發網再次提醒這是一個API Level至少為9才能調用的類,注意SDK版本以及目標設備的固件。
String getMountedObbPath(String filename) //通過一個文件名判斷掛載的OBB文件路徑
boolean isObbMounted(String filename) //這個OBB文件是否掛載了
boolean mountObb(String filename, String key, OnObbStateChangeListener listener) //掛載一個OBB文件
boolean unmountObb(String filename, boolean force, OnObbStateChangeListener listener) //反掛載一個obb文件,這個方法是異步的,第二個參數可以強制反掛載。
我們可以看到掛載和反掛載obb文件時都有一個狀態回調的類,位於android.os.storage.OnObbStateChangeListener,OnObbStateChangeListener接口實現了一個void onObbStateChange(String path, int state) 方法來回調狀態,第二個參數state的狀態有:
int ERROR_ALREADY_MOUNTED 這個OBB已經掛載了
int ERROR_COULD_NOT_MOUNT 這個OBB不能掛在到系統.
int ERROR_COULD_NOT_UNMOUNT 這個OBB不能反掛載.
int ERROR_INTERNAL 一個內部的系統錯誤導致正在重試掛載obb
int ERROR_NOT_MOUNTED 一個反掛載調用執行時這個obb還沒有掛在過.
int ERROR_PERMISSION_DENIED 當前程序沒有使用這個obb的權限.
int MOUNTED The obb容器已經掛載好了,可以使用了.
int UNMOUNTED The OBB容易現在反掛載完成,將無法再使用.
從體而言我們看到Android 2.3系統中很多新的功能都很實用,同時Google正在吸取其他平台的優點,通過更多的實現方法更靈活的處理,而不是其他系統那樣封閉,導致了不越獄很多事情都無法做的尴尬問題,android系統既保證了安全,又處理好了靈活的功能。
本文為個人總結,不代表官方觀點。 分為幾個階段: 1、整個android的多媒體框架OpenCore 2、Player和Author的詳細介紹 2、OpenCo
有關android SDK自帶的性能分析調試工具TraceVIEw使用方法,我們在android.os.Debug調試工具使用方法 簡單的說過,有關實際使用如
簡介: Java™ 語言是 Android 開發人員所選的工具。android 運行時使用自己的虛擬機 Dalvik,這並不是多數程序開發人員使用
(2) RelativeLayout相對布局,它是依靠與父容器,同一容器中其它控件的相對位置來排列顯示的。主要常用的屬性如下:相對父容器的屬性:android:layo