android.os包中一些類的使用(轉)

來源:互聯網
上載者:User

標籤:

android.os.Build

Build.BOARD // 主板Build.BRAND // android系統定製商Build.CPU_ABI // cpu指令集Build.DEVICE // 裝置參數Build.DISPLAY // 顯示屏參數Build.FINGERPRINT // 硬體名稱Build.HOSTBuild.ID // 修訂版本列表Build.MANUFACTURER // 硬體製造商Build.MODEL // 版本Build.PRODUCT // 手機製造商Build.TAGS // 描述build的標籤Build.TIMEBuild.TYPE // builder類型Build.USER// 運行結果/*board: unknownbrand: genericcpu abi: armeabidevice: genericdisplay: google_sdk-eng 2.1 ERD79 22607 test-keysfinger print: generic/google_sdk/generic/:2.1/ERD79/22607:eng/test-keyshost: genki.mtv.corp.google.comid: ERD79manufacturer: unknownmodel: google_sdkproduct: google_sdktags: test-keystime: 1261185425000type: enguser: android-build*/

Build.VERSION

// 當前開發代號Build.VERSION.CODENAME// 源碼控製版本號Build.VERSION.INCREMENTAL// 版本字串Build.VERSION.RELEASE// 版本號碼Build.VERSION.SDK// 版本號碼Build.VERSION.SDK_INT// 結果/*REL226072.177*/// Build.VERSION.SDK_INT可與switch搭配用switch (Build.VERSION.SDK_INT) {case Build.VERSION_CODES.BASE: // 1.0    break;    case Build.VERSION_CODES.BASE_1_1: // 1.1    break;    case Build.VERSION_CODES.CUPCAKE: // 1.5    break;    case Build.VERSION_CODES.CUR_DEVELOPMENT: // current dev version    break;    case Build.VERSION_CODES.DONUT: // 1.6    break;    case Build.VERSION_CODES.ECLAIR: // 2.0    break;    case Build.VERSION_CODES.ECLAIR_0_1: // 2.0.1    break;    case Build.VERSION_CODES.ECLAIR_MR1: // 2.1    break;}

android.os.SystemClock 
文檔中對System.currentTimeMillis()進行了相應的描述,就是說它不適合用在需要時間間隔的地方,如Thread.sleep, Object.wait等,因為可以通過System.setCurrentTimeMillis來改變它的值。 

要用時間間隔,推薦使用SystemClock中的相關方法。

SystemClock.currentThreadTimeMillis(); // 在當前線程中已啟動並執行時間SystemClock.elapsedRealtime(); // 從開機到現在的毫秒書(手機睡眠(sleep)的時間也包括在內)SystemClock.uptimeMillis(); // 從開機到現在的毫秒書(手機睡眠的時間不包括在內)SystemClock.sleep(100); // 類似Thread.sleep(100);但是該方法會忽略InterruptedExceptionSystemClock.setCurrentTimeMillis(1000); // 設定時鐘的時間,和System.setCurrentTimeMillis類似// 時間間隔long timeInterval = SystemClock.uptimeMillis() - lastTime;// do something with timeInterval

android.os.PowerManager 
PowerManager的flag的意思: 

// PowerManager的一般用法,請求和釋放喚醒鎖PowerManager powerMgr = (PowerManager)        getSystemService(Context.POWER_SERVICE);int flags = PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP;WakeLock wakeLock = powerMgr.newWakeLock(flags, "for debug purpose tag");wakeLock.acquire(); // 擷取喚醒鎖wakeLock.release(); // 釋放喚醒鎖// 在遊戲中,會將acquire放在onResume中;將release放在onPause,這樣在程式運行時就可以保持螢幕常量;在程式處在後台時,就恢複原來的設定。// PowerManager的其它api的使用powerMgr.goToSleep(SystemClock.uptimeMillis() + 100); // 100ms後進入睡眠powerMgr.isScreenOn(); // 螢幕是否亮著powerMgr.userActivity(SystemClock.uptimeMillis()+100, true); // 相當於按home鍵,會引起從睡眠啟用// WakeLock的其它apiwakeLock.acquire(1000); // 擷取喚醒鎖,並在1000ms後釋放wakeLock.isHeld(); // 當前是否持有喚醒鎖// 是否使用引用計數,預設是啟用的。引用計數應該就是第一次請求為1,第二次加1,再一次再加1。// 在釋放時,只有引用計數為0時才被視為完全釋放(所以要多次調用release)wakeLock.setReferenceCounted(true); 

 

android.os包中一些類的使用(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.