系统 - 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) ```