android.os包中一些类的使用
16lz
2021-01-23
转载自:http://yuanzhifei89.iteye.com/blog/1168544
android.os.Build
Java代码- Build.BOARD//主板
- Build.BRAND//android系统定制商
- Build.CPU_ABI//cpu指令集
- Build.DEVICE//设备参数
- Build.DISPLAY//显示屏参数
- Build.FINGERPRINT//硬件名称
- Build.HOST
- Build.ID//修订版本列表
- Build.MANUFACTURER//硬件制造商
- Build.MODEL//版本
- Build.PRODUCT//手机制造商
- Build.TAGS//描述build的标签
- Build.TIME
- Build.TYPE//builder类型
- Build.USER
- //运行结果
- /*
- board:unknown
- brand:generic
- cpuabi:armeabi
- device:generic
- display:google_sdk-eng2.1ERD7922607test-keys
- fingerprint:generic/google_sdk/generic/:2.1/ERD79/22607:eng/test-keys
- host:genki.mtv.corp.google.com
- id:ERD79
- manufacturer:unknown
- model:google_sdk
- product:google_sdk
- tags:test-keys
- time:1261185425000
- type:eng
- user:android-build
- */
Build.VERSION
- //当前开发代号
- Build.VERSION.CODENAME
- //源码控制版本号
- Build.VERSION.INCREMENTAL
- //版本字符串
- Build.VERSION.RELEASE
- //版本号
- Build.VERSION.SDK
- //版本号
- Build.VERSION.SDK_INT
- //结果
- /*
- REL
- 22607
- 2.1
- 7
- 7
- */
- //Build.VERSION.SDK_INT可与switch搭配用
- switch(Build.VERSION.SDK_INT){
- caseBuild.VERSION_CODES.BASE://1.0
- break;
- caseBuild.VERSION_CODES.BASE_1_1://1.1
- break;
- caseBuild.VERSION_CODES.CUPCAKE://1.5
- break;
- caseBuild.VERSION_CODES.CUR_DEVELOPMENT://currentdevversion
- break;
- caseBuild.VERSION_CODES.DONUT://1.6
- break;
- caseBuild.VERSION_CODES.ECLAIR://2.0
- break;
- caseBuild.VERSION_CODES.ECLAIR_0_1://2.0.1
- break;
- caseBuild.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);但是该方法会忽略InterruptedException
- SystemClock.setCurrentTimeMillis(1000);//设置时钟的时间,和System.setCurrentTimeMillis类似
- //时间间隔
- longtimeInterval=SystemClock.uptimeMillis()-lastTime;
- //dosomethingwithtimeInterval
android.os.PowerManager
PowerManager的flag的意思:
- //PowerManager的一般用法,请求和释放唤醒锁
- PowerManagerpowerMgr=(PowerManager)
- getSystemService(Context.POWER_SERVICE);
- intflags=PowerManager.SCREEN_BRIGHT_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP;
- WakeLockwakeLock=powerMgr.newWakeLock(flags,"fordebugpurposetag");
- 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的其它api
- wakeLock.acquire(1000);//获取唤醒锁,并在1000ms后释放
- wakeLock.isHeld();//当前是否持有唤醒锁
- //是否使用引用计数,默认是启用的。引用计数应该就是第一次请求为1,第二次加1,再一次再加1。
- //在释放时,只有引用计数为0时才被视为完全释放(所以要多次调用release)
- wakeLock.setReferenceCounted(true);
更多相关文章
- Android不常用代码(1)
- Android获取网页源代码
- Android - 浅谈获取时间
- android中系统日期时间的获取
- android中执行线程的部分代码
- android 学习笔记有用代码片段(3)
- Android各代码层获取系统时间的方法
- Android开发 开启闪光灯 关键代码