|
|
AIWROK安卓脚本对象高级实用示例
- //交流QQ群: 711841924 (群一) / 528816639 (安卓内测群)
- // AIWROK软件 - JavaScript对象高级应用实例
- // 基于面向对象思想设计的自动化任务管理系统
- // 演示如何在AIWROK中使用对象、属性和方法构建复杂应用
- /**
- * =============================================================================
- * AIWROK 自动化任务管理器 - 完整示例
- * =============================================================================
- * 本示例展示如何使用JavaScript对象封装复杂的自动化逻辑
- * 包含:任务管理、配置管理、日志系统、状态监控等模块
- *
- * 兼容性:Rhino 引擎 (ES5)
- * 平台:AIWROK 安卓自动化软件
- * =============================================================================
- */
- // =============================================================================
- // 第一部分:配置管理对象 (ConfigManager)
- // =============================================================================
- /**
- * 配置管理器对象
- * 封装AIWROK的config读写功能,提供更便捷的接口
- */
- var ConfigManager = {
- // 属性:配置文件路径
- configPath: '/sdcard/aiwrok_task_config.ini',
-
- // 属性:缓存的配置数据
- cache: {},
-
- // 方法:初始化配置
- init: function() {
- printl('配置管理器初始化...');
- this.cache = {};
- return true;
- },
-
- // 方法:读取配置(带缓存)
- get: function(key, defaultValue) {
- // 先检查缓存
- if (this.cache.hasOwnProperty(key)) {
- return this.cache[key];
- }
-
- // 从文件读取
- try {
- var value = config.getConfig(this.configPath, key, defaultValue);
- this.cache[key] = value; // 存入缓存
- return value;
- } catch (e) {
- printl('读取配置失败 [' + key + ']: ' + e);
- return defaultValue;
- }
- },
-
- // 方法:写入配置
- set: function(key, value) {
- try {
- config.setConfig(this.configPath, key, value.toString());
- this.cache[key] = value.toString(); // 更新缓存
- return true;
- } catch (e) {
- printl('写入配置失败 [' + key + ']: ' + e);
- return false;
- }
- },
-
- // 方法:批量读取配置
- loadAll: function(keys) {
- var result = {};
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- result[key] = this.get(key, '');
- }
- return result;
- },
-
- // 方法:批量写入配置
- saveAll: function(configObj) {
- var success = true;
- for (var key in configObj) {
- if (configObj.hasOwnProperty(key)) {
- if (!this.set(key, configObj[key])) {
- success = false;
- }
- }
- }
- return success;
- },
-
- // 方法:清除缓存
- clearCache: function() {
- this.cache = {};
- printl('配置缓存已清除');
- }
- };
- // =============================================================================
- // 第二部分:日志管理对象 (Logger)
- // =============================================================================
- /**
- * 日志管理器对象
- * 提供统一的日志输出接口,支持不同级别和格式
- */
- var Logger = {
- // 属性:日志级别常量
- LEVEL_DEBUG: 0,
- LEVEL_INFO: 1,
- LEVEL_WARN: 2,
- LEVEL_ERROR: 3,
-
- // 属性:当前日志级别
- currentLevel: 1, // 默认INFO级别
-
- // 属性:是否启用时间戳
- enableTimestamp: true,
-
- // 属性:日志历史记录
- history: [],
-
- // 属性:最大历史记录数
- maxHistory: 100,
-
- // 方法:设置日志级别
- setLevel: function(level) {
- this.currentLevel = level;
- printl('日志级别设置为: ' + level);
- },
-
- // 方法:DEBUG级别日志
- debug: function(message) {
- if (this.currentLevel <= this.LEVEL_DEBUG) {
- this.log('DEBUG', message);
- }
- },
-
- // 方法:INFO级别日志
- info: function(message) {
- if (this.currentLevel <= this.LEVEL_INFO) {
- this.log('INFO', message);
- }
- },
-
- // 方法:WARN级别日志
- warn: function(message) {
- if (this.currentLevel <= this.LEVEL_WARN) {
- this.log('WARN', message);
- }
- },
-
- // 方法:ERROR级别日志
- error: function(message) {
- if (this.currentLevel <= this.LEVEL_ERROR) {
- this.log('ERR', message);
- }
- },
-
- // 内部方法:统一日志输出
- log: function(level, message) {
- var timestamp = '';
- if (this.enableTimestamp) {
- var now = new Date();
- timestamp = '[' + this.formatDate(now) + '] ';
- }
-
- var logMessage = timestamp + '[' + level + '] ' + message;
- printl(logMessage);
-
- // 保存到历史记录
- this.history.push({
- time: new Date(),
- level: level,
- message: message
- });
-
- // 限制历史记录数量
- if (this.history.length > this.maxHistory) {
- this.history.shift();
- }
- },
-
- // 方法:格式化日期
- formatDate: function(date) {
- var year = date.getFullYear();
- var month = ('0' + (date.getMonth() + 1)).slice(-2);
- var day = ('0' + date.getDate()).slice(-2);
- var hours = ('0' + date.getHours()).slice(-2);
- var minutes = ('0' + date.getMinutes()).slice(-2);
- var seconds = ('0' + date.getSeconds()).slice(-2);
- return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
- },
-
- // 方法:获取最近的日志
- getRecentLogs: function(count) {
- count = count || 10;
- var start = Math.max(0, this.history.length - count);
- return this.history.slice(start);
- },
-
- // 方法:清空日志历史
- clearHistory: function() {
- this.history = [];
- printl('日志历史已清空');
- }
- };
- // =============================================================================
- // 第三部分:任务对象 (Task)
- // =============================================================================
- /**
- * 任务对象构造函数
- * 表示一个可执行的自动化任务
- */
- function Task(name, description) {
- // 属性:任务基本信息
- this.name = name || '未命名任务';
- this.description = description || '';
- this.status = 'pending'; // pending, running, completed, failed, paused
- this.startTime = null;
- this.endTime = null;
- this.duration = 0;
- this.retryCount = 0;
- this.maxRetry = 3;
-
- // 属性:任务执行函数
- this.executeFunc = null;
-
- // 属性:任务回调
- this.onComplete = null;
- this.onError = null;
- }
- // 方法:设置执行函数
- Task.prototype.setExecuteFunction = function(func) {
- this.executeFunc = func;
- return this; // 支持链式调用
- };
- // 方法:设置最大重试次数
- Task.prototype.setMaxRetry = function(count) {
- this.maxRetry = count;
- return this;
- };
- // 方法:设置完成回调
- Task.prototype.setOnComplete = function(callback) {
- this.onComplete = callback;
- return this;
- };
- // 方法:设置错误回调
- Task.prototype.setOnError = function(callback) {
- this.onError = callback;
- return this;
- };
- // 方法:执行任务
- Task.prototype.run = function() {
- if (!this.executeFunc) {
- Logger.error('任务 [' + this.name + '] 没有设置执行函数');
- return false;
- }
-
- if (this.status === 'running') {
- Logger.warn('任务 [' + this.name + '] 正在运行中');
- return false;
- }
-
- try {
- // 更新状态
- this.status = 'running';
- this.startTime = new Date();
- Logger.info('任务 [' + this.name + '] 开始执行');
-
- // 执行任务函数
- var result = this.executeFunc();
-
- // 更新状态
- this.endTime = new Date();
- this.duration = this.endTime - this.startTime;
- this.status = 'completed';
-
- Logger.info('任务 [' + this.name + '] 执行完成,耗时: ' + this.duration + 'ms');
-
- // 调用完成回调
- if (this.onComplete) {
- this.onComplete(result);
- }
-
- return true;
- } catch (e) {
- this.status = 'failed';
- this.endTime = new Date();
- this.duration = this.endTime - this.startTime;
-
- Logger.error('任务 [' + this.name + '] 执行失败: ' + e);
-
- // 重试逻辑
- if (this.retryCount < this.maxRetry) {
- this.retryCount++;
- Logger.warn('任务 [' + this.name + '] 第' + this.retryCount + '次重试');
- sleep.millisecond(1000); // 等待1秒后重试
- return this.run();
- }
-
- // 调用错误回调
- if (this.onError) {
- this.onError(e);
- }
-
- return false;
- }
- };
- // 方法:暂停任务
- Task.prototype.pause = function() {
- if (this.status === 'running') {
- this.status = 'paused';
- Logger.info('任务 [' + this.name + '] 已暂停');
- return true;
- }
- return false;
- };
- // 方法:恢复任务
- Task.prototype.resume = function() {
- if (this.status === 'paused') {
- this.status = 'running';
- Logger.info('任务 [' + this.name + '] 已恢复');
- return true;
- }
- return false;
- };
- // 方法:重置任务
- Task.prototype.reset = function() {
- this.status = 'pending';
- this.startTime = null;
- this.endTime = null;
- this.duration = 0;
- this.retryCount = 0;
- Logger.info('任务 [' + this.name + '] 已重置');
- };
- // 方法:获取任务信息
- Task.prototype.getInfo = function() {
- return {
- name: this.name,
- description: this.description,
- status: this.status,
- startTime: this.startTime ? this.startTime.toLocaleString() : null,
- endTime: this.endTime ? this.endTime.toLocaleString() : null,
- duration: this.duration,
- retryCount: this.retryCount,
- maxRetry: this.maxRetry
- };
- };
- // 方法:打印任务信息
- Task.prototype.printInfo = function() {
- var info = this.getInfo();
- printl('===== 任务信息 =====');
- printl('名称: ' + info.name);
- printl('描述: ' + info.description);
- printl('状态: ' + this.getStatusText(info.status));
- printl('开始时间: ' + (info.startTime || '未开始'));
- printl('结束时间: ' + (info.endTime || '未结束'));
- printl('耗时: ' + info.duration + 'ms');
- printl('重试次数: ' + info.retryCount + '/' + info.maxRetry);
- printl('===================');
- };
- // 辅助方法:状态文本转换
- Task.prototype.getStatusText = function(status) {
- var statusMap = {
- 'pending': '等待中',
- 'running': '运行中',
- 'completed': '已完成',
- 'failed': '失败',
- 'paused': '已暂停'
- };
- return statusMap[status] || status;
- };
- // =============================================================================
- // 第四部分:任务管理器对象 (TaskManager)
- // =============================================================================
- /**
- * 任务管理器对象
- * 管理多个任务的执行、调度和监控
- */
- var TaskManager = {
- // 属性:任务列表
- tasks: [],
-
- // 属性:当前运行的任务索引
- currentTaskIndex: -1,
-
- // 属性:是否自动执行下一个任务
- autoExecuteNext: true,
-
- // 方法:添加任务
- addTask: function(task) {
- if (!(task instanceof Task)) {
- Logger.error('添加的任务不是Task对象');
- return false;
- }
- this.tasks.push(task);
- Logger.info('已添加任务: ' + task.name);
- return true;
- },
-
- // 方法:移除任务
- removeTask: function(taskName) {
- for (var i = 0; i < this.tasks.length; i++) {
- if (this.tasks[i].name === taskName) {
- this.tasks.splice(i, 1);
- Logger.info('已移除任务: ' + taskName);
- return true;
- }
- }
- Logger.warn('未找到任务: ' + taskName);
- return false;
- },
-
- // 方法:获取任务
- getTask: function(taskName) {
- for (var i = 0; i < this.tasks.length; i++) {
- if (this.tasks[i].name === taskName) {
- return this.tasks[i];
- }
- }
- return null;
- },
-
- // 方法:执行指定任务
- executeTask: function(taskName) {
- var task = this.getTask(taskName);
- if (!task) {
- Logger.error('未找到任务: ' + taskName);
- return false;
- }
-
- this.currentTaskIndex = this.tasks.indexOf(task);
- return task.run();
- },
-
- // 方法:按顺序执行所有任务
- executeAll: function() {
- Logger.info('开始执行所有任务,共' + this.tasks.length + '个');
-
- var successCount = 0;
- var failCount = 0;
-
- for (var i = 0; i < this.tasks.length; i++) {
- this.currentTaskIndex = i;
- var task = this.tasks[i];
-
- Logger.info('执行任务 [' + (i + 1) + '/' + this.tasks.length + ']: ' + task.name);
-
- if (task.run()) {
- successCount++;
- } else {
- failCount++;
- }
-
- // 如果不是自动执行下一个,则停止
- if (!this.autoExecuteNext) {
- break;
- }
- }
-
- Logger.info('所有任务执行完成 - 成功: ' + successCount + ', 失败: ' + failCount);
- return {
- success: successCount,
- fail: failCount,
- total: this.tasks.length
- };
- },
-
- // 方法:并行执行任务(模拟)
- executeParallel: function(taskNames) {
- Logger.info('开始并行执行任务: ' + taskNames.join(', '));
-
- var results = {};
- for (var i = 0; i < taskNames.length; i++) {
- var taskName = taskNames[i];
- var task = this.getTask(taskName);
-
- if (task) {
- Logger.info('启动任务: ' + taskName);
- // 注意:在真实场景中,这里应该使用多线程
- // 由于Rhino的限制,这里只是顺序执行
- results[taskName] = task.run();
- } else {
- Logger.error('未找到任务: ' + taskName);
- results[taskName] = false;
- }
- }
-
- return results;
- },
-
- // 方法:获取所有任务状态
- getAllStatus: function() {
- var statusList = [];
- for (var i = 0; i < this.tasks.length; i++) {
- statusList.push(this.tasks[i].getInfo());
- }
- return statusList;
- },
-
- // 方法:打印所有任务状态
- printAllStatus: function() {
- printl('========== 任务管理器状态 ==========');
- printl('任务总数: ' + this.tasks.length);
- printl('当前任务索引: ' + this.currentTaskIndex);
- printl('自动执行: ' + (this.autoExecuteNext ? '开启' : '关闭'));
- printl('');
-
- for (var i = 0; i < this.tasks.length; i++) {
- var task = this.tasks[i];
- var info = task.getInfo();
- printl('[' + (i + 1) + '] ' + info.name + ' - ' + task.getStatusText(info.status));
- }
- printl('====================================');
- },
-
- // 方法:重置所有任务
- resetAll: function() {
- for (var i = 0; i < this.tasks.length; i++) {
- this.tasks[i].reset();
- }
- this.currentTaskIndex = -1;
- Logger.info('所有任务已重置');
- },
-
- // 方法:统计任务状态
- getStatistics: function() {
- var stats = {
- total: this.tasks.length,
- pending: 0,
- running: 0,
- completed: 0,
- failed: 0,
- paused: 0
- };
-
- for (var i = 0; i < this.tasks.length; i++) {
- var status = this.tasks[i].status;
- if (stats.hasOwnProperty(status)) {
- stats[status]++;
- }
- }
-
- return stats;
- }
- };
- // =============================================================================
- // 第五部分:设备信息对象 (DeviceInfo)
- // =============================================================================
- /**
- * 设备信息对象
- * 封装AIWROK的设备信息查询功能
- */
- var DeviceInfo = {
- // 属性:缓存的设备信息
- cachedInfo: null,
-
- // 方法:获取设备信息
- getInfo: function() {
- if (this.cachedInfo) {
- return this.cachedInfo;
- }
-
- try {
- var info = {};
-
- // 尝试获取屏幕信息
- try {
- info.screenWidth = screen.getScreenWidth();
- info.screenHeight = screen.getScreenHeight();
- } catch (e) {
- info.screenWidth = '未知';
- info.screenHeight = '未知';
- }
-
- // 尝试获取电池信息
- try {
- info.batteryLevel = device.getBattery();
- info.isCharging = device.isCharging();
- } catch (e) {
- info.batteryLevel = '未知';
- info.isCharging = false;
- }
-
- // 尝试获取网络信息
- try {
- info.networkType = device.getNetworkType();
- info.wifiSSID = device.getWifiSSID();
- } catch (e) {
- info.networkType = '未知';
- info.wifiSSID = '未知';
- }
-
- // 尝试获取设备信息
- try {
- info.deviceModel = device.getModel();
- info.androidVersion = device.getVersion();
- } catch (e) {
- info.deviceModel = '未知';
- info.androidVersion = '未知';
- }
-
- // 尝试获取内存信息
- try {
- info.memoryInfo = app.getMemory();
- info.memoryPercent = app.getMemoryPercent();
- } catch (e) {
- info.memoryInfo = { Total: '未知', Available: '未知' };
- info.memoryPercent = '未知';
- }
-
- // 尝试获取应用信息
- try {
- info.topPackage = app.getTopPackName();
- info.topAppName = app.getAppName(app.getTopPackName());
- } catch (e) {
- info.topPackage = '未知';
- info.topAppName = '未知';
- }
-
- // 时间信息(总是可用)
- info.timestamp = new Date().getTime();
- info.currentTime = new Date().toLocaleString();
-
- this.cachedInfo = info;
- return info;
- } catch (e) {
- Logger.error('获取设备信息失败: ' + e);
- return null;
- }
- },
-
- // 方法:刷新设备信息
- refresh: function() {
- this.cachedInfo = null;
- return this.getInfo();
- },
-
- // 方法:打印设备信息
- printInfo: function() {
- var info = this.getInfo();
- if (!info) {
- printl('无法获取设备信息');
- return;
- }
-
- printl('========== 设备信息 ==========');
- printl('屏幕分辨率: ' + info.screenWidth + 'x' + info.screenHeight);
- printl('电池电量: ' + info.batteryLevel + '%');
- printl('充电状态: ' + (info.isCharging ? '充电中' : '未充电'));
- printl('网络类型: ' + info.networkType);
- printl('WiFi名称: ' + info.wifiSSID);
- printl('设备型号: ' + info.deviceModel);
- printl('安卓版本: ' + info.androidVersion);
- printl('总内存: ' + info.memoryInfo.Total);
- printl('可用内存: ' + info.memoryInfo.Available);
- printl('内存使用率: ' + info.memoryPercent + '%');
- printl('前台应用: ' + info.topAppName + ' (' + info.topPackage + ')');
- printl('当前时间: ' + info.currentTime);
- printl('==============================');
- }
- };
- // =============================================================================
- // 第六部分:实际应用示例
- // =============================================================================
- /**
- * 示例1:创建并执行简单任务
- */
- function example1_SimpleTask() {
- printl('========== 示例1:简单任务 ==========');
-
- // 创建任务
- var task = new Task('测试任务', '这是一个简单的测试任务');
-
- // 设置执行函数
- task.setExecuteFunction(function() {
- Logger.info('正在执行测试任务...');
- sleep.second(2); // 模拟耗时操作
- Logger.info('测试任务执行完毕');
- return { success: true, message: '测试通过' };
- });
-
- // 设置回调
- task.setOnComplete(function(result) {
- Logger.info('任务完成回调: ' + JSON.stringify(result));
- });
-
- task.setOnError(function(error) {
- Logger.error('任务错误回调: ' + error);
- });
-
- // 执行任务
- task.run();
-
- // 打印任务信息
- task.printInfo();
- }
- /**
- * 示例2:使用任务管理器管理多个任务
- */
- function example2_TaskManager() {
- printl('');
- printl('========== 示例2:任务管理器 ==========');
-
- // 创建多个任务
- var task1 = new Task('数据备份', '备份重要数据');
- task1.setExecuteFunction(function() {
- Logger.info('正在备份数据...');
- sleep.millisecond(1500);
- Logger.info('数据备份完成');
- return true;
- });
-
- var task2 = new Task('清理缓存', '清理应用缓存');
- task2.setExecuteFunction(function() {
- Logger.info('正在清理缓存...');
- sleep.second(1);
- Logger.info('缓存清理完成');
- return true;
- });
-
- var task3 = new Task('同步数据', '同步云端数据');
- task3.setExecuteFunction(function() {
- Logger.info('正在同步数据...');
- sleep.second(2);
- Logger.info('数据同步完成');
- return true;
- });
-
- // 添加到任务管理器
- TaskManager.addTask(task1);
- TaskManager.addTask(task2);
- TaskManager.addTask(task3);
-
- // 打印任务状态
- TaskManager.printAllStatus();
-
- // 执行所有任务
- var result = TaskManager.executeAll();
- printl('执行结果: ' + JSON.stringify(result));
-
- // 打印最终状态
- TaskManager.printAllStatus();
-
- // 获取统计信息
- var stats = TaskManager.getStatistics();
- printl('统计信息: ' + JSON.stringify(stats));
- }
- /**
- * 示例3:使用配置管理器
- */
- function example3_ConfigManager() {
- printl('');
- printl('========== 示例3:配置管理器 ==========');
-
- // 初始化配置管理器
- ConfigManager.init();
-
- // 写入配置
- ConfigManager.set('app_name', 'AIWROK Demo');
- ConfigManager.set('version', '1.0.0');
- ConfigManager.set('debug_mode', 'true');
- ConfigManager.set('max_retry', '3');
-
- // 读取配置
- var appName = ConfigManager.get('app_name', 'Unknown');
- var version = ConfigManager.get('version', '0.0.0');
- var debugMode = ConfigManager.get('debug_mode', 'false');
-
- printl('应用名称: ' + appName);
- printl('版本号: ' + version);
- printl('调试模式: ' + debugMode);
-
- // 批量读取
- var allConfig = ConfigManager.loadAll(['app_name', 'version', 'debug_mode', 'max_retry']);
- printl('批量读取结果: ' + JSON.stringify(allConfig));
-
- // 批量写入
- var newConfig = {
- 'theme': 'dark',
- 'language': 'zh-CN',
- 'auto_update': 'true'
- };
- ConfigManager.saveAll(newConfig);
- printl('批量写入完成');
- }
- /**
- * 示例4:使用日志管理器
- */
- function example4_Logger() {
- printl('');
- printl('========== 示例4:日志管理器 ==========');
-
- // 设置日志级别
- Logger.setLevel(Logger.LEVEL_DEBUG);
-
- // 输出不同级别的日志
- Logger.debug('这是一条调试信息');
- Logger.info('这是一条普通信息');
- Logger.warn('这是一条警告信息');
- Logger.error('这是一条错误信息');
-
- // 获取最近的日志
- var recentLogs = Logger.getRecentLogs(5);
- printl('最近5条日志:');
- for (var i = 0; i < recentLogs.length; i++) {
- var log = recentLogs[i];
- printl(' [' + log.level + '] ' + log.message);
- }
- }
- /**
- * 示例5:获取设备信息
- */
- function example5_DeviceInfo() {
- printl('');
- printl('========== 示例5:设备信息 ==========');
-
- // 打印设备信息
- DeviceInfo.printInfo();
-
- // 获取原始信息对象
- var info = DeviceInfo.getInfo();
- if (info) {
- printl('屏幕宽度: ' + info.screenWidth);
- printl('屏幕高度: ' + info.screenHeight);
- printl('电池电量: ' + info.batteryLevel + '%');
- }
- }
- /**
- * 示例6:综合应用 - 自动化工作流
- */
- function example6_AutomationWorkflow() {
- printl('');
- printl('========== 示例6:自动化工作流 ==========');
-
- Logger.info('启动自动化工作流...');
-
- // 步骤1:检查设备状态
- Logger.info('步骤1:检查设备状态');
- var deviceInfo = DeviceInfo.getInfo();
- if (deviceInfo && deviceInfo.batteryLevel < 20) {
- Logger.warn('电池电量低于20%,建议充电');
- }
-
- // 步骤2:加载配置
- Logger.info('步骤2:加载配置');
- ConfigManager.init();
- var config = ConfigManager.loadAll(['app_name', 'version', 'debug_mode']);
- Logger.info('配置加载完成: ' + JSON.stringify(config));
-
- // 步骤3:创建并执行任务
- Logger.info('步骤3:创建并执行任务');
-
- var workflowTask = new Task('自动化工作流', '完整的自动化工作流程');
- workflowTask.setExecuteFunction(function() {
- Logger.info('执行工作流任务...');
-
- // 模拟多个步骤
- Logger.info(' - 步骤1:数据准备');
- sleep.millisecond(500);
-
- Logger.info(' - 步骤2:数据处理');
- sleep.second(1);
-
- Logger.info(' - 步骤3:数据保存');
- sleep.millisecond(500);
-
- Logger.info('工作流任务完成');
- return { success: true, steps: 3 };
- });
-
- workflowTask.setOnComplete(function(result) {
- Logger.info('工作流完成,结果: ' + JSON.stringify(result));
- });
-
- workflowTask.run();
-
- // 步骤4:保存执行记录
- Logger.info('步骤4:保存执行记录');
- ConfigManager.set('last_run_time', new Date().toLocaleString());
- ConfigManager.set('last_run_status', 'success');
-
- Logger.info('自动化工作流执行完毕');
- }
- // =============================================================================
- // 第七部分:主函数 - 运行所有示例
- // =============================================================================
- /**
- * 主函数:运行所有示例
- */
- function main() {
- printl('========================================');
- printl(' AIWROK JavaScript对象高级应用实例');
- printl('========================================');
- printl('');
-
- // 运行所有示例
- example1_SimpleTask();
- sleep.second(2); // 示例间延时
-
- example2_TaskManager();
- sleep.second(2); // 示例间延时
-
- example3_ConfigManager();
- sleep.second(2); // 示例间延时
-
- example4_Logger();
- sleep.second(2); // 示例间延时
-
- example5_DeviceInfo();
- sleep.second(2); // 示例间延时
-
- example6_AutomationWorkflow();
-
- printl('');
- printl('========================================');
- printl(' 所有示例执行完成!');
- printl('========================================');
- }
- // 执行主函数
- main();
复制代码
|
|