`

android.os包中一些类的使用

阅读更多
android.os.Build
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
// 当前开发代号
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中的相关方法。
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的意思:

// 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); 


  • 大小: 15 KB
分享到:
评论
1 楼 chenjia66804610 2013-06-25  
谢谢,学习了

相关推荐

    android霓虹灯源代码

    - `android.view.View`: Android视图的基本类,所有用户界面元素的基类。 ### 二、类定义与变量声明 #### 类定义 ```java public class Main extends Activity implements Runnable { ``` - 这个类继承自`Activity...

    Android中文API合集

    Android API包括了大量的类、方法和接口,它们分布在不同的层次和包中,比如`android.os`、`android.widget`、`android.view`等。这些API涵盖了Android系统的各个层面,如用户界面、系统服务、网络通信、数据存储等...

    Android 各版本之间的差异

    - **android.os**:`AsyncTask`类的加入简化了异步任务的执行,`ResultReceiver`则优化了任务结果的传递。 - **android.preference**:偏好设置管理功能得到加强,便于创建自定义设置界面。 - **android.provider**...

    Android SDK类库

    - **android.util**:此包中的Log类用于记录日志信息,对于调试和问题定位非常有帮助。而Time类则提供了处理时间戳的功能,方便进行日期和时间的操作。 - **android.os**:Handler机制是Android中处理异步任务的关键...

    Android中常用包结构介绍

    2. **android.content**:此包中的类主要处理内容的获取和发布,包括Context、Intent、ContentResolver和BroadcastReceiver。Intent是Android中实现组件间通信的关键,而ContentResolver则用于与ContentProvider进行...

    Android中 信息的输出——Log.v的使用.doc

    `Log`类位于`android.util`包中,我们需要先导入此包才能使用。 `Log`类提供了多个静态方法,如`v()`, `d()`, `i()`, `w()`, `e()`等,它们分别对应不同的日志级别:Verbose(V)、Debug(D)、Info(I)、Warning...

    Unity调用Android系统PowerManager类功能.zip

    Android的`PowerManager`类位于`android.os.PowerManager`包中,它提供了控制设备电源状态的方法。这个类主要用于管理设备的屏幕亮度、唤醒锁等电源相关设置,以优化电池寿命和用户体验。 3. **关机和重启**: - ...

    新版Android开发教程.rar

    Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...

    LineageOS(system.new.dat.br)镜像解包.zip

    LineageOS是一款基于Android开源项目的第三方操作系统,它提供了一系列自定义功能和优化,深受许多Android用户的喜爱。在更新或自定义设备的系统时,我们可能会遇到`system.new.dat.br`这样的文件,它是LineageOS...

    安卓Android源码——FileTest.zip

    3. **Environment类**:Android提供了`android.os.Environment`类,可以获取到系统特定的目录,比如外部存储(public storage)的根目录`getExternalStorageDirectory()`,以及内部存储(private storage)的根目录`...

    Android 下拉通知效果源码.zip源码资源下载

    - 还可能涉及到Android特有的Java库,如`android.os`、`android.app`和`android.widget`等包中的类。 总之,“Android 下拉通知效果源码.zip”是一个深入了解Android通知机制的实践案例。通过学习和分析这个源码,...

    新版Android开发教程&笔记四--Dalvik ADB

    - **android.os**:包含系统服务、消息传递、进程间通信等功能。 - **android.opengl**:提供OpenGL ES支持,适用于高性能的图形渲染。 - **android.provider**:包含用于访问Android内置内容提供者的类。 - **...

    Android-APP开发入门教程.docx

    import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MyActivity extends Activity { @Override ...

    android关闭应用程序

    android.os.Process.killProcess(android.os.Process.myPid()); ``` 此方法适用于任何版本的Android,但应谨慎使用,因为它不提供优雅的关闭过程。 #### 3. 使用`System.exit()` 另一种强制关闭进程的方法是使用`...

    android 振动器的使用

    在`android.os`包中,`Vibrator`类提供了控制设备振动的能力。为了使用它,你需要获取到Vibrator服务的实例。这通常通过调用`Context`的`getSystemService`方法并传入`VIBRATOR_SERVICE`字符串来完成: ```java ...

    android 文件浏览器

    这些操作需要使用到`java.io`和`android.os`包中的类,如`FileInputStream`、`FileOutputStream`、`ParcelFileDescriptor`等。 三、实现步骤 1. 创建布局:设计UI界面,一般包括一个文件列表视图(ListView或...

    android应用源码手机震动.zip源码资源下载

    对于震动功能,我们需要使用`Vibrator`类,它位于`android.os`包中。`Vibrator`类提供了对设备震动功能的访问,允许应用在特定时刻启动或停止震动。以下是对这个源码资源可能涉及的关键知识点的详细解释: 1. **...

    Android 获取设备信息

    首先,Android提供了`Build`类,它是位于`android.os`包中的一个静态类,用于获取设备的各种构建信息。`SetBuild`可能是指设置或获取构建信息的过程。让我们逐一了解`Build`类中的一些重要字段和方法: 1. **设备...

    Android震动系统结构移植与调试的要点[借鉴].pdf

    `Vibrator.java`则位于`android.os`包中,提供了可供应用程序使用的API接口,如`vibrate(long milliSeconds)`等方法,用于控制振动器的行为。 **移植内容**: 当移植到新的硬件平台时,有两种方法: 1. **常规移植*...

    android客户端自动检测更新

    可以使用`java.io`包中的`InputStream`和`OutputStream`来读写文件,或者使用`android.os.AsyncTask`异步处理下载任务,防止阻塞UI线程。下载进度通常会展示给用户,提供取消下载的选项。 5. **安装APK** Android...

Global site tag (gtag.js) - Google Analytics