系统 - System
# 系统相关函数
## 时间戳(13位) | time
- 功能
获取系统时间戳,单位:毫秒。
- 参数
无。
- 例子
```groovy
print time()
```
## 延时 | delay
- 功能
休眠一段时间,单位:毫秒。
- 参数
| 参数 | 类型 | 说明 |
| ---- | ---- | ---------------------- |
| time | int | 休眠的时间,单位:毫秒 |
- 例子
```groovy
delay 1000
```
## 延时 | sleep
同delay。
## 捕获异常代码 | tryDo
- 功能
捕获异常执行一段代码,对try-catch的封装。
- 参数
| 参数 | 类型 | 说明 |
| ------- | ------- | ------------ |
| closure | Closure | 闭包,代码块 |
- 例子
```groovy
if(tryDo {
//抛出异常
throw new Exception("我是异常")
}){
print("运行正常")
}else{
print("运行异常")
}
```
## 读取配置信息 | readConfig
- 功能
读取配置信息。
- 参数
| 参数 | 类型 | 说明 |
| ------------------ | ------ | ------------------ |
| name | String | 配置的名称 |
| defaultValue[可选] | String | 读取为空时的默认值 |
- 例子
```groovy
print readConfig("name")
print readConfig("name","张三")
```
## 保存配置信息 | saveConfig
- 功能
保存配置信息。
- 参数
| 参数 | 类型 | 说明 |
| ----- | ------ | -------- |
| name | String | 配置名称 |
| value | String | 配置内容 |
- 例子
```groovy
saveConfig("name","李四")
print readConfig("name")
```
## 执行shell | exec
- 功能
执行一段shell,返回执行输出内容。
- 参数
| 参数 | 类型 | 说明 |
| ----- | ------ | --------------- |
| shell | String | 执行的shell内容 |
- 例子
```groovy
//打印输入法id列表
print(exec("ime list -s"))
```
## 多线程 | multiThread
- 功能
多线程并行执行,等待所有线程执行完成。
- 参数
| 参数 | 类型 | 说明 |
| ------- | --------- | ------------------------------------------------------ |
| closure | Closure[] | 闭包(代码块)数组,多个闭包组成,每个闭包用一个线程执行 |
- 例子
```groovy
multiThread{
for (i in 0..<3) {
print("线程1")
sleep(1000)
}
}{
for (i in 0..<3) {
print("线程2")
sleep(1000)
}
}{
for (i in 0..<3) {
print("线程3")
sleep(1000)
}
}
```
## 启动app | runApp
- 功能
启动app。
- 参数
| 参数 | 类型 | 说明 |
| --------- | ------ | -------------------------- |
| pkgOrName | String | 包名或者应用名称,名称优先 |
- 例子
```groovy
//根据名称启动
runApp "JsDroid4"
//根据包名启动
runApp "com.jsdroid.app"
```
## 结束app进程 | killApp
- 功能
结束app进程。
- 参数
| 参数 | 类型 | 说明 |
| ---- | ------ | -------- |
| pkg | String | 应用包名 |
- 例子
```groovy
//结束JsDroid的App进程,但shell还是会运行,并且会再次自动唤醒JsDroid的App进程,可以用此代码测试JsDroid是否支持进程维持。
killApp "com.jsdroid.app"
```
## 获取app的包名 | getAppPkg
- 功能
获取app的包名。
- 参数
| 参数 | 类型 | 说明 |
| ------- | ------ | -------- |
| appName | String | 应用名称 |
- 例子
```groovy
print getAppPkg("JsDroid4")
```
## 设置屏幕亮度 | setScreenBrightness
- 功能
设置屏幕亮度。
- 参数
| 参数 | 类型 | 说明 |
| ---------- | ---- | --------------- |
| brightness | int | 屏幕亮度:0-100 |
- 例子
```groovy
//将亮度调到最低,省电费
setScreenBrightness(0)
```
## 获取屏幕亮度 | getScreenBrightness
- 功能
获取屏幕亮度。
- 参数
- 例子
```groovy
print "当前屏幕亮度:"+getScreenBrightness()
```
## 设置屏幕电源模式 | setScreenPowerMode
- 功能
设置屏幕电源模式:0表示息屏,2表示普通模式(2好像无用)
- 参数
| 参数 | 类型 | 说明 |
| ---- | ---- | ------------------------------ |
| mode | int | 屏幕电源模式:0息屏,2普通模式 |
- 例子
```groovy
//息屏,但其实手机处于亮屏运行状态,如同薛定谔的猫
setScreenPowerMode(0)
//等待3秒
sleep 3000
//按2次电源键点亮屏幕,恢复到正常状态
keyPress(26)
sleep 1000
keyPress(26)
```
## 设置剪切板文字 | setClipboardText
- 功能
设置剪切板文字。
- 参数
| 参数 | 类型 | 说明 |
| ---- | ------ | ------------------ |
| text | String | 要设置的剪切板文字 |
- 例子
```groovy
setClipboardText("http://www.jsdroid.com")
```
## 获取剪切板文字 | getClipboardText
- 功能
获取剪切板文字。
- 参数
- 例子
```groovy
setClipboardText("http://www.jsdroid.com")
print getClipboardText()
```
## 手机IMEI | getIMEI
- 功能
读取手机IMEI。
- 参数
- 例子
```groovy
print getIMEI()
```
## adb序列号 | getSerial
- 功能
读取手机的adb序列号。
- 参数
- 例子
```groovy
print getSerial()
```
## 模拟震动 | vibrate
- 功能
模拟震动一段时间。
- 参数
| 参数 | 类型 | 说明 |
| ---- | ---- | ---------------------- |
| time | int | 震动的时间,单位:毫秒 |
- 例子
```groovy
vibrate(1000)
```
## 播放音乐 | playMusic
- 功能
播放音乐,可能部分手机不支持,待修复。
- 参数
| 参数 | 类型 | 说明 |
| ---- | ------ | -------- |
| file | String | 音乐文件 |
- 例子
```groovy
def time = playMusic "/sdcard/我爱你.mp3"
sleep(time)
stopMusic()
```
## 停止播放音乐 | stopMusic
- 功能
停止播放音乐。
- 参数
- 例子
```groovy
stopMusic()
```
## 关闭屏幕 | lockDevice
- 功能
关闭屏幕。
- 参数
- 例子
```groovy
lockDevice()
```
## 点亮屏幕 | unlockDevice
- 功能
点亮屏幕
- 参数
- 例子
```groovy
unlockDevice()
```
## 获取屏幕宽度 | getScreenWidth
- 功能
获取屏幕宽度。
- 参数
- 例子
```groovy
print getScreenWidth()
```
## 获取屏幕高度 | getScreenHeight
- 功能
获取屏幕高度。
- 参数
- 例子
```groovy
print getScreenHeight()
```
## 获取屏幕旋转方向 | getRotation
- 功能
获取屏幕旋转方向。
- 参数
- 例子
```groovy
print getRotation()
```
## 获取屏幕的真实宽度 | getNaturalWidth
- 功能
获取屏幕的真实宽度,不同于getScreenWidth的是,此方法获取的是真实的宽度,而getScreenWidth获取的是当前屏幕旋转方向的宽度。
- 参数
- 例子
```groovy
print getNaturalWidth()
```
## 获取屏幕的真实高度 | getNaturalHeight
- 功能
获取屏幕的真实高度,不同于getScreenHeight的是,此方法获取的是真实的高度,而getScreenHeight获取的是当前屏幕旋转方向的高度。
- 参数
- 例子
```groovy
print getNaturalHeight()
```
## 判断当前界面是不是桌面 | isHome
- 功能
判断当前界面是不是桌面。
- 参数
- 例子
```groovy
if(isHome()){
print "在桌面"
}
```
## 获取当前顶部的Activity | getActivity
- 功能
获取当前顶部的Activity
- 参数
- 例子
```groovy
print getActivity()
```
## 启动Activity | startActivity
- 功能
启动Activity
- 参数
| 参数 | 类型 | 说明 |
| -------- | ------ | ------------------------ |
| activity | String | 要启动的activity界面的id |
- 参数重载
| 参数 | 类型 | 说明 |
| ------ | ------ | ---------------- |
| intent | Intent | 安卓的Intent意图 |
- 例子
```groovy
//启动JsDroid4主界面
import android.content.Intent
def intent = new Intent()
intent.setClassName("com.jsdroid.app","com.jsdroid.app.MainActivity")
startActivity(intent)
//启动JsDroid4主界面
startActivity("com.jsdroid.app/.MainActivity")
```
## 循环 | wait
- 功能
重复执行一段代码,默认最多执行10次,默认每次执行等待1秒,直到它返回true
- 例子
```groovy
def i = 0
wait {
i++
print(i)
return i == 2
}
wait({
i++
print(i)
return i == 10
}, 5, 500)
```