android.os包中一些类的使用

android.os.Build
Java代码 收藏代码
  1. Build.BOARD//主板
  2. Build.BRAND//android系统定制商
  3. Build.CPU_ABI//cpu指令集
  4. Build.DEVICE//设备参数
  5. Build.DISPLAY//显示屏参数
  6. Build.FINGERPRINT//硬件名称
  7. Build.HOST
  8. Build.ID//修订版本列表
  9. Build.MANUFACTURER//硬件制造商
  10. Build.MODEL//版本
  11. Build.PRODUCT//手机制造商
  12. Build.TAGS//描述build的标签
  13. Build.TIME
  14. Build.TYPE//builder类型
  15. Build.USER
  16. //运行结果
  17. /*
  18. board:unknown
  19. brand:generic
  20. cpuabi:armeabi
  21. device:generic
  22. display:google_sdk-eng2.1ERD7922607test-keys
  23. fingerprint:generic/google_sdk/generic/:2.1/ERD79/22607:eng/test-keys
  24. host:genki.mtv.corp.google.com
  25. id:ERD79
  26. manufacturer:unknown
  27. model:google_sdk
  28. product:google_sdk
  29. tags:test-keys
  30. time:1261185425000
  31. type:eng
  32. user:android-build
  33. */
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 cpu abi: armeabi device: generic display: google_sdk-eng 2.1 ERD79 22607 test-keys finger print: 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
Java代码 收藏代码
  1. //当前开发代号
  2. Build.VERSION.CODENAME
  3. //源码控制版本号
  4. Build.VERSION.INCREMENTAL
  5. //版本字符串
  6. Build.VERSION.RELEASE
  7. //版本号
  8. Build.VERSION.SDK
  9. //版本号
  10. Build.VERSION.SDK_INT
  11. //结果
  12. /*
  13. REL
  14. 22607
  15. 2.1
  16. 7
  17. 7
  18. */
  19. //Build.VERSION.SDK_INT可与switch搭配用
  20. switch(Build.VERSION.SDK_INT){
  21. caseBuild.VERSION_CODES.BASE://1.0
  22. break;
  23. caseBuild.VERSION_CODES.BASE_1_1://1.1
  24. break;
  25. caseBuild.VERSION_CODES.CUPCAKE://1.5
  26. break;
  27. caseBuild.VERSION_CODES.CUR_DEVELOPMENT://currentdevversion
  28. break;
  29. caseBuild.VERSION_CODES.DONUT://1.6
  30. break;
  31. caseBuild.VERSION_CODES.ECLAIR://2.0
  32. break;
  33. caseBuild.VERSION_CODES.ECLAIR_0_1://2.0.1
  34. break;
  35. caseBuild.VERSION_CODES.ECLAIR_MR1://2.1
  36. break;
  37. }
// 当前开发代号 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) { 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中的相关方法。
Java代码 收藏代码
  1. SystemClock.currentThreadTimeMillis();//在当前线程中已运行的时间
  2. SystemClock.elapsedRealtime();//从开机到现在的毫秒书(手机睡眠(sleep)的时间也包括在内)
  3. SystemClock.uptimeMillis();//从开机到现在的毫秒书(手机睡眠的时间不包括在内)
  4. SystemClock.sleep(100);//类似Thread.sleep(100);但是该方法会忽略InterruptedException
  5. SystemClock.setCurrentTimeMillis(1000);//设置时钟的时间,和System.setCurrentTimeMillis类似
  6. //时间间隔
  7. longtimeInterval=SystemClock.uptimeMillis()-lastTime;
  8. //dosomethingwithtimeInterval
SystemClock.currentThreadTimeMillis(); // 在当前线程中已运行的时间 SystemClock.elapsedRealtime(); // 从开机到现在的毫秒书(手机睡眠(sleep)的时间也包括在内) SystemClock.uptimeMillis(); // 从开机到现在的毫秒书(手机睡眠的时间不包括在内) SystemClock.sleep(100); // 类似Thread.sleep(100);但是该方法会忽略InterruptedException SystemClock.setCurrentTimeMillis(1000); // 设置时钟的时间,和System.setCurrentTimeMillis类似 // 时间间隔 long timeInterval = SystemClock.uptimeMillis() - lastTime; // do something with timeInterval


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

Java代码 收藏代码
  1. //PowerManager的一般用法,请求和释放唤醒锁
  2. PowerManagerpowerMgr=(PowerManager)
  3. getSystemService(Context.POWER_SERVICE);
  4. intflags=PowerManager.SCREEN_BRIGHT_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP;
  5. WakeLockwakeLock=powerMgr.newWakeLock(flags,"fordebugpurposetag");
  6. wakeLock.acquire();//获取唤醒锁
  7. wakeLock.release();//释放唤醒锁
  8. //在游戏中,会将acquire放在onResume中;将release放在onPause,这样在程序运行时就可以保持屏幕常量;在程序处在后台时,就恢复原来的设置。
  9. //PowerManager的其它api的使用
  10. powerMgr.goToSleep(SystemClock.uptimeMillis()+100);//100ms后进入睡眠
  11. powerMgr.isScreenOn();//屏幕是否亮着
  12. powerMgr.userActivity(SystemClock.uptimeMillis()+100,true);//相当于按home键,会引起从睡眠激活
  13. //WakeLock的其它api
  14. wakeLock.acquire(1000);//获取唤醒锁,并在1000ms后释放
  15. wakeLock.isHeld();//当前是否持有唤醒锁
  16. //是否使用引用计数,默认是启用的。引用计数应该就是第一次请求为1,第二次加1,再一次再加1。
  17. //在释放时,只有引用计数为0时才被视为完全释放(所以要多次调用release)
  18. wakeLock.setReferenceCounted(true);
// 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的其它api wakeLock.acquire(1000); // 获取唤醒锁,并在1000ms后释放 wakeLock.isHeld(); // 当前是否持有唤醒锁 // 是否使用引用计数,默认是启用的。引用计数应该就是第一次请求为1,第二次加1,再一次再加1。 // 在释放时,只有引用计数为0时才被视为完全释放(所以要多次调用release) wakeLock.setReferenceCounted(true);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值