+
+
\ No newline at end of file
diff --git a/AutoRobot/Android/Robot/.idea/migrations.xml b/AutoRobot/Android/Robot/.idea/migrations.xml
new file mode 100644
index 0000000..f8051a6
--- /dev/null
+++ b/AutoRobot/Android/Robot/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AutoRobot/Android/Robot/.idea/misc.xml b/AutoRobot/Android/Robot/.idea/misc.xml
new file mode 100644
index 0000000..b2c751a
--- /dev/null
+++ b/AutoRobot/Android/Robot/.idea/misc.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AutoRobot/Android/Robot/.idea/runConfigurations.xml b/AutoRobot/Android/Robot/.idea/runConfigurations.xml
new file mode 100644
index 0000000..16660f1
--- /dev/null
+++ b/AutoRobot/Android/Robot/.idea/runConfigurations.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AutoRobot/Android/Robot/.idea/vcs.xml b/AutoRobot/Android/Robot/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/AutoRobot/Android/Robot/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AutoRobot/Android/Robot/.kotlin/errors/errors-1756683238674.log b/AutoRobot/Android/Robot/.kotlin/errors/errors-1756683238674.log
new file mode 100644
index 0000000..44576e2
--- /dev/null
+++ b/AutoRobot/Android/Robot/.kotlin/errors/errors-1756683238674.log
@@ -0,0 +1,45 @@
+kotlin version: 2.0.21
+error message: Failed connecting to the daemon in 4 retries
+
+error message: Daemon compilation failed: Could not connect to Kotlin compile daemon
+java.lang.RuntimeException: Could not connect to Kotlin compile daemon
+ at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemon(GradleKotlinCompilerWork.kt:214)
+ at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemonOrFallbackImpl(GradleKotlinCompilerWork.kt:159)
+ at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.run(GradleKotlinCompilerWork.kt:111)
+ at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction.execute(GradleCompilerRunnerWithWorkers.kt:76)
+ at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
+ at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)
+ at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62)
+ at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)
+ at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62)
+ at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
+ at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
+ at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:210)
+ at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:205)
+ at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:67)
+ at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:60)
+ at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:167)
+ at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:60)
+ at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:54)
+ at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
+ at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59)
+ at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:174)
+ at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
+ at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:194)
+ at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:127)
+ at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:169)
+ at org.gradle.internal.Factories$1.create(Factories.java:31)
+ at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:263)
+ at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:127)
+ at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:132)
+ at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
+ at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:133)
+ at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
+ at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
+ at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
+ at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)
+ at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
+ at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
+ at java.base/java.lang.Thread.run(Thread.java:1583)
+
+
diff --git a/AutoRobot/Android/Robot/.kotlin/errors/errors-1756683240346.log b/AutoRobot/Android/Robot/.kotlin/errors/errors-1756683240346.log
new file mode 100644
index 0000000..44576e2
--- /dev/null
+++ b/AutoRobot/Android/Robot/.kotlin/errors/errors-1756683240346.log
@@ -0,0 +1,45 @@
+kotlin version: 2.0.21
+error message: Failed connecting to the daemon in 4 retries
+
+error message: Daemon compilation failed: Could not connect to Kotlin compile daemon
+java.lang.RuntimeException: Could not connect to Kotlin compile daemon
+ at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemon(GradleKotlinCompilerWork.kt:214)
+ at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemonOrFallbackImpl(GradleKotlinCompilerWork.kt:159)
+ at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.run(GradleKotlinCompilerWork.kt:111)
+ at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction.execute(GradleCompilerRunnerWithWorkers.kt:76)
+ at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
+ at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)
+ at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62)
+ at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)
+ at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62)
+ at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
+ at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
+ at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:210)
+ at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:205)
+ at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:67)
+ at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:60)
+ at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:167)
+ at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:60)
+ at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:54)
+ at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
+ at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59)
+ at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:174)
+ at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
+ at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:194)
+ at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:127)
+ at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:169)
+ at org.gradle.internal.Factories$1.create(Factories.java:31)
+ at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:263)
+ at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:127)
+ at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:132)
+ at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
+ at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:133)
+ at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
+ at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
+ at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
+ at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)
+ at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
+ at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
+ at java.base/java.lang.Thread.run(Thread.java:1583)
+
+
diff --git a/AutoRobot/Android/Robot/.kotlin/errors/errors-1757342470107.log b/AutoRobot/Android/Robot/.kotlin/errors/errors-1757342470107.log
new file mode 100644
index 0000000..31b4ddc
--- /dev/null
+++ b/AutoRobot/Android/Robot/.kotlin/errors/errors-1757342470107.log
@@ -0,0 +1,35 @@
+kotlin version: 2.0.21
+error message: Incremental compilation failed: E:\Download\Project\AutoRobot\Android\Robot\app\build\kotlin\compileDebugKotlin\cacheable\dirty-sources.txt: 另一个程序正在使用此文件,进程无法访问。
+java.nio.file.FileSystemException: E:\Download\Project\AutoRobot\Android\Robot\app\build\kotlin\compileDebugKotlin\cacheable\dirty-sources.txt: 另一个程序正在使用此文件,进程无法访问。
+ at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:92)
+ at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
+ at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
+ at java.base/sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:273)
+ at java.base/sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:104)
+ at java.base/java.nio.file.Files.delete(Files.java:1152)
+ at org.jetbrains.kotlin.incremental.RecoverableCompilationTransaction.deleteFile(CompilationTransaction.kt:198)
+ at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.doCompile(IncrementalCompilerRunner.kt:539)
+ at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:423)
+ at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.tryCompileIncrementally$lambda$9$compile(IncrementalCompilerRunner.kt:249)
+ at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.tryCompileIncrementally(IncrementalCompilerRunner.kt:267)
+ at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:120)
+ at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:675)
+ at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:92)
+ at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1660)
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+ at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
+ at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
+ at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
+ at java.base/java.security.AccessController.doPrivileged(AccessController.java:714)
+ at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
+ at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:598)
+ at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:844)
+ at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:721)
+ at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
+ at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:720)
+ at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
+ at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
+ at java.base/java.lang.Thread.run(Thread.java:1583)
+
+
diff --git a/AutoRobot/Android/Robot/.kotlin/errors/errors-1757486156318.log b/AutoRobot/Android/Robot/.kotlin/errors/errors-1757486156318.log
new file mode 100644
index 0000000..1219b50
--- /dev/null
+++ b/AutoRobot/Android/Robot/.kotlin/errors/errors-1757486156318.log
@@ -0,0 +1,4 @@
+kotlin version: 2.0.21
+error message: The daemon has terminated unexpectedly on startup attempt #1 with error code: 0. The daemon process output:
+ 1. Kotlin compile daemon is ready
+
diff --git a/AutoRobot/Android/Robot/LICENSE b/AutoRobot/Android/Robot/LICENSE
new file mode 100644
index 0000000..261eeb9
--- /dev/null
+++ b/AutoRobot/Android/Robot/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/AutoRobot/Android/Robot/README.en.md b/AutoRobot/Android/Robot/README.en.md
new file mode 100644
index 0000000..da2e264
--- /dev/null
+++ b/AutoRobot/Android/Robot/README.en.md
@@ -0,0 +1,36 @@
+# AutoBot
+
+#### Description
+安卓手机自动运行脚本
+
+#### Software Architecture
+Software architecture description
+
+#### Installation
+
+1. xxxx
+2. xxxx
+3. xxxx
+
+#### Instructions
+
+1. xxxx
+2. xxxx
+3. xxxx
+
+#### Contribution
+
+1. Fork the repository
+2. Create Feat_xxx branch
+3. Commit your code
+4. Create Pull Request
+
+
+#### Gitee Feature
+
+1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
+2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
+3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
+4. The most valuable open source project [GVP](https://gitee.com/gvp)
+5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
+6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
diff --git a/AutoRobot/Android/Robot/README.md b/AutoRobot/Android/Robot/README.md
new file mode 100644
index 0000000..907c46a
--- /dev/null
+++ b/AutoRobot/Android/Robot/README.md
@@ -0,0 +1,37 @@
+# AutoBot
+
+#### 介绍
+安卓手机自动运行脚本
+
+#### 软件架构
+软件架构说明
+
+
+#### 安装教程
+
+1. xxxx
+2. xxxx
+3. xxxx
+
+#### 使用说明
+
+1. xxxx
+2. xxxx
+3. xxxx
+
+#### 参与贡献
+
+1. Fork 本仓库
+2. 新建 Feat_xxx 分支
+3. 提交代码
+4. 新建 Pull Request
+
+
+#### 特技
+
+1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
+2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
+3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
+4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
+5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
+6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
diff --git a/AutoRobot/Android/Robot/app/.gitignore b/AutoRobot/Android/Robot/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/AutoRobot/Android/Robot/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/AutoRobot/Android/Robot/app/build.gradle.kts b/AutoRobot/Android/Robot/app/build.gradle.kts
new file mode 100644
index 0000000..33e26b1
--- /dev/null
+++ b/AutoRobot/Android/Robot/app/build.gradle.kts
@@ -0,0 +1,54 @@
+plugins {
+ alias(libs.plugins.android.application)
+ alias(libs.plugins.kotlin.android)
+}
+
+android {
+ namespace = "com.joyd.autobot"
+ compileSdk = 36
+
+ defaultConfig {
+ applicationId = "com.joyd.autobot"
+ minSdk = 24
+ targetSdk = 36
+ versionCode = 1
+ versionName = "1.0"
+
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ isMinifyEnabled = false
+ proguardFiles(
+ getDefaultProguardFile("proguard-android-optimize.txt"),
+ "proguard-rules.pro"
+ )
+ }
+ }
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_11
+ targetCompatibility = JavaVersion.VERSION_11
+ }
+ kotlinOptions {
+ jvmTarget = "11"
+ }
+}
+
+dependencies {
+
+ implementation("androidx.preference:preference:1.2.1")
+ implementation("androidx.core:core-ktx:1.10.1")
+ implementation(libs.websocketclient)
+ implementation(libs.okhttp)
+ implementation("androidx.appcompat:appcompat:1.6.1")
+ implementation(libs.material)
+ implementation("androidx.activity:activity:1.8.0")
+ implementation("androidx.constraintlayout:constraintlayout:2.1.4")
+ implementation("androidx.cardview:cardview:1.0.0")
+ // 添加 JoydLib 库依赖
+ implementation(libs.joydlibdev)
+ testImplementation(libs.junit)
+ androidTestImplementation("androidx.test.ext:junit:1.1.5")
+ androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
+}
\ No newline at end of file
diff --git a/AutoRobot/Android/Robot/app/log.txt b/AutoRobot/Android/Robot/app/log.txt
new file mode 100644
index 0000000..5660016
--- /dev/null
+++ b/AutoRobot/Android/Robot/app/log.txt
@@ -0,0 +1,447 @@
+2025-09-17 19:03:52.067 23529-23616 MainActivity com.joyd.autobot E WebSocket连接错误: failed to connect to /192.168.2.236 (port 8805) from /192.168.1.4 (port 34552) after 10000ms
+2025-09-17 19:03:52.069 23529-23529 Compatibil...geReporter com.joyd.autobot D Compat change id reported: 147798919; UID 10301; state: ENABLED
+2025-09-17 19:03:53.097 23529-23616 TrafficStats com.joyd.autobot D tagSocket(5) with statsTag=0xffffffff, statsUid=-1
+2025-09-17 19:03:53.098 23529-23616 System.out com.joyd.autobot I [com.mediatek.cta.CtaAdapter]:check permission begin!
+2025-09-17 19:03:56.225 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.236 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.253 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.273 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.296 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.309 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.310 23529-23529 MainActivity com.joyd.autobot D onPause()被调用,应用进入后台
+2025-09-17 19:03:56.330 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.331 23529-23641 libMEOW com.joyd.autobot D meow new tls: 0xb4000079a1ecd040
+2025-09-17 19:03:56.331 23529-23641 libMEOW com.joyd.autobot D applied 1 plugins for [com.joyd.autobot]:
+2025-09-17 19:03:56.331 23529-23641 libMEOW com.joyd.autobot D plugin 1: [libMEOW_gift.so]:
+2025-09-17 19:03:56.331 23529-23641 libMEOW com.joyd.autobot D meow delete tls: 0xb4000079a1ecd040
+2025-09-17 19:03:56.339 23529-23563 ViewContentFactory com.joyd.autobot D initViewContentFetcherClass
+2025-09-17 19:03:56.339 23529-23563 ContentCatcher com.joyd.autobot I ViewContentFetcher : ViewContentFetcher
+2025-09-17 19:03:56.339 23529-23563 ViewContentFactory com.joyd.autobot D createInterceptor took 1ms
+2025-09-17 19:03:56.339 23529-23529 IS_CTS_MODE com.joyd.autobot D false
+2025-09-17 19:03:56.339 23529-23529 MULTI_WINDOW_ENABLED com.joyd.autobot D false
+2025-09-17 19:03:56.340 23529-23563 ContentCatcher com.joyd.autobot I Interceptor : Catcher list invalid for com.joyd.autobot@com.joyd.autobot.SettingsActivity@98079379
+2025-09-17 19:03:56.340 23529-23563 ContentCatcher com.joyd.autobot I Interceptor : Get featureInfo from config image_pick_mode
+2025-09-17 19:03:56.340 23529-23563 ContentCatcher com.joyd.autobot I Interceptor : Get featureInfo from config pick_mode
+2025-09-17 19:03:56.340 23529-23529 DecorView[] com.joyd.autobot D getWindowModeFromSystem windowmode is 1
+2025-09-17 19:03:56.351 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.367 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.368 23529-23563 ContentCat...ListHelper com.joyd.autobot I blackList size: 13 package is com.joyd.autobot isInTaplusWhiteList: true
+2025-09-17 19:03:56.371 23529-23560 libc com.joyd.autobot W Access denied finding property "ro.vendor.display.iris_x7.support"
+2025-09-17 19:03:56.372 23529-23529 VRI[SettingsActivity] com.joyd.autobot D hardware acceleration = true, forceHwAccelerated = false
+2025-09-17 19:03:56.380 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.393 23529-23529 BufferQueueConsumer com.joyd.autobot D [](id:5be900000001,api:0,p:-1,c:23529) connect: controlledByApp=false
+2025-09-17 19:03:56.398 23529-23529 VRI[SettingsActivity] com.joyd.autobot D vri.reportNextDraw android.view.ViewRootImpl.performTraversals:3953 android.view.ViewRootImpl.doTraversal:2674 android.view.ViewRootImpl$TraversalRunnable.run:9867 android.view.Choreographer$CallbackRecord.run:1431 android.view.Choreographer$CallbackRecord.run:1439
+2025-09-17 19:03:56.399 23529-23529 VRI[SettingsActivity] com.joyd.autobot D vri.Setup new sync id=0 syncSeqId=0
+2025-09-17 19:03:56.400 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.408 23529-23560 libEGL com.joyd.autobot E pre_cache appList: com.android.calendar,com.android.contacts,com.android.fileexplorer,com.android.mms,com.android.settings,com.android.thememanager,com.miui.gallery,com.miui.notes,com.miui.player,com.miui.securitycenter,com.miui.video,com.miui.weather2
+2025-09-17 19:03:56.425 4643-5173 ActivityManagerWrapper com.miui.home E getRecentTasks: mainTaskId=31617 userId=0 baseIntent=Intent { act=android.intent.action.MAIN flag=268435456 cmp=ComponentInfo{com.joyd.autobot/com.joyd.autobot.MainActivity} }
+2025-09-17 19:03:56.429 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.429 23529-23560 BLASTBufferQueue com.joyd.autobot D [VRI[SettingsActivity]#1](f:0,a:1) acquireNextBufferLocked size=1080x2400 mFrameNumber=1 applyTransaction=true mTimestamp=143288805263693(auto) mPendingTransactions.size=0 graphicBufferId=101056285507591 transform=0
+2025-09-17 19:03:56.430 23529-23560 Parcel com.joyd.autobot W Expecting binder but got null!
+2025-09-17 19:03:56.431 23529-23529 VRI[SettingsActivity] com.joyd.autobot D vri.reportDrawFinished syncSeqId=0 android.view.ViewRootImpl.lambda$createSyncIfNeeded$4$android-view-ViewRootImpl:4021 android.view.ViewRootImpl$$ExternalSyntheticLambda1.run:6 android.os.Handler.handleCallback:942 android.os.Handler.dispatchMessage:99 android.os.Looper.loopOnce:211
+2025-09-17 19:03:56.432 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.432 23529-23529 DecorView[] com.joyd.autobot D onWindowFocusChanged hasWindowFocus false
+2025-09-17 19:03:56.437 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.448 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.453 4643-5173 ActivityManagerWrapper com.miui.home E getRecentTasks: mainTaskId=31617 userId=0 baseIntent=Intent { act=android.intent.action.MAIN flag=268435456 cmp=ComponentInfo{com.joyd.autobot/com.joyd.autobot.MainActivity} }
+2025-09-17 19:03:56.454 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.465 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.466 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.466 23529-23529 DecorView[] com.joyd.autobot D onWindowFocusChanged hasWindowFocus true
+2025-09-17 19:03:56.467 23529-23529 HandWritingStubImpl com.joyd.autobot I refreshLastKeyboardType: 1
+2025-09-17 19:03:56.467 23529-23529 HandWritingStubImpl com.joyd.autobot I getCurrentKeyboardType: 1
+2025-09-17 19:03:56.469 4041-4041 BaseInputMethodService com.sohu.inputmethod.sogou.xiaomi E onStartInput app:com.joyd.autobot restarting:false
+2025-09-17 19:03:56.481 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.484 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.497 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.499 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.514 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.516 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.531 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.533 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.541 23529-23540 om.joyd.autobot com.joyd.autobot I Compiler allocated 5099KB to compile void android.view.ViewRootImpl.performTraversals()
+2025-09-17 19:03:56.546 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.547 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.563 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.564 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.579 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.581 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.597 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.613 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.630 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.646 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.663 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.680 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.695 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.712 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.729 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.745 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.762 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.778 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.795 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.811 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.828 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.844 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.861 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.877 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.894 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.910 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.929 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:56.962 23529-23560 OpenGLRenderer com.joyd.autobot D endAllActiveAnimators on 0xb4000079bcaecb00 (RippleDrawable) with handle 0xb400007af02968a0
+2025-09-17 19:03:56.985 23529-23529 BLASTBufferQueue com.joyd.autobot D [VRI[MainActivity]#0](f:0,a:1) destructor()
+2025-09-17 19:03:56.985 23529-23529 BufferQueueConsumer com.joyd.autobot D [VRI[MainActivity]#0(BLAST Consumer)0](id:5be900000000,api:0,p:-1,c:23529) disconnect
+2025-09-17 19:03:56.987 23529-23529 MainActivity com.joyd.autobot D onStop()被调用
+2025-09-17 19:03:58.374 23529-23529 HandWritingStubImpl com.joyd.autobot I refreshLastKeyboardType: 1
+2025-09-17 19:03:58.375 23529-23529 HandWritingStubImpl com.joyd.autobot I getCurrentKeyboardType: 1
+2025-09-17 19:03:58.378 23529-23529 Compatibil...geReporter com.joyd.autobot D Compat change id reported: 163400105; UID 10301; state: ENABLED
+2025-09-17 19:03:58.378 23529-23529 InputMethodManager com.joyd.autobot D showSoftInput() view=androidx.appcompat.widget.AppCompatEditText{ce5ac87 VFED..CL. .F.P..ID 0,81-948,206 #7f080219 app:id/web_socket_url_edit_text aid=1073741824} flags=0 reason=SHOW_SOFT_INPUT
+2025-09-17 19:03:58.379 4041-4041 BaseInputMethodService com.sohu.inputmethod.sogou.xiaomi E onStartInput app:com.joyd.autobot restarting:false
+2025-09-17 19:03:58.387 4041-4041 BaseInputMethodService com.sohu.inputmethod.sogou.xiaomi E onStartInputView app:com.joyd.autobot restarting:false
+2025-09-17 19:03:58.393 23529-23560 libc com.joyd.autobot W Access denied finding property "ro.vendor.display.iris_x7.support"
+2025-09-17 19:03:58.394 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D hardware acceleration = true, forceHwAccelerated = false
+2025-09-17 19:03:58.403 23529-23529 TextView com.joyd.autobot V sendCursorInfo support:true
+2025-09-17 19:03:58.407 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:58.409 23529-23529 AssistStructure com.joyd.autobot I Flattened final assist data: 1568 bytes, containing 2 windows, 9 views
+2025-09-17 19:03:58.418 23529-23529 BufferQueueConsumer com.joyd.autobot D [](id:5be900000002,api:0,p:-1,c:23529) connect: controlledByApp=false
+2025-09-17 19:03:58.422 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D vri.reportNextDraw android.view.ViewRootImpl.performTraversals:3953 android.view.ViewRootImpl.doTraversal:2674 android.view.ViewRootImpl$TraversalRunnable.run:9867 android.view.Choreographer$CallbackRecord.run:1431 android.view.Choreographer$CallbackRecord.run:1439
+2025-09-17 19:03:58.422 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D vri.Setup new sync id=0 syncSeqId=0
+2025-09-17 19:03:58.434 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:58.434 23529-23560 BLASTBufferQueue com.joyd.autobot D [VRI[PopupWindow:18da57f]#2](f:0,a:1) acquireNextBufferLocked size=110x110 mFrameNumber=1 applyTransaction=true mTimestamp=143290810354155(auto) mPendingTransactions.size=0 graphicBufferId=101056285507594 transform=0
+2025-09-17 19:03:58.436 23529-23560 Parcel com.joyd.autobot W Expecting binder but got null!
+2025-09-17 19:03:58.436 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D vri.reportDrawFinished syncSeqId=0 android.view.ViewRootImpl.lambda$createSyncIfNeeded$4$android-view-ViewRootImpl:4021 android.view.ViewRootImpl$$ExternalSyntheticLambda1.run:6 android.os.Handler.handleCallback:942 android.os.Handler.dispatchMessage:99 android.os.Looper.loopOnce:211
+2025-09-17 19:03:58.437 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D vri.reportNextDraw android.view.ViewRootImpl.handleResized:2047 android.view.ViewRootImpl.-$$Nest$mhandleResized:0 android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:6120 android.view.ViewRootImpl$ViewRootHandler.handleMessage:6084 android.os.Handler.dispatchMessage:106
+2025-09-17 19:03:58.440 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D vri.Setup new sync id=1 syncSeqId=0
+2025-09-17 19:03:58.441 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D vri.reportDrawFinished syncSeqId=0 android.view.ViewRootImpl.lambda$createSyncIfNeeded$4$android-view-ViewRootImpl:4021 android.view.ViewRootImpl$$ExternalSyntheticLambda1.run:6 android.os.Handler.handleCallback:942 android.os.Handler.dispatchMessage:99 android.os.Looper.loopOnce:211
+2025-09-17 19:03:58.478 23529-23529 OnBackInvokedCallback com.joyd.autobot W OnBackInvokedCallback is not enabled for the application.
+ Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
+2025-09-17 19:03:58.525 23529-23529 InsetsController com.joyd.autobot D show(ime(), fromIme=true)
+2025-09-17 19:03:58.879 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:59.377 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:03:59.882 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:00.382 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:00.578 23529-23529 InputMethodManager com.joyd.autobot D showSoftInput() view=androidx.appcompat.widget.AppCompatEditText{ce5ac87 VFED..CL. .F.P.... 0,81-948,206 #7f080219 app:id/web_socket_url_edit_text aid=1073741824} flags=0 reason=SHOW_SOFT_INPUT
+2025-09-17 19:04:00.587 23529-23529 View com.joyd.autobot D [Warning] assignParent to null: this = android.widget.PopupWindow$PopupDecorView{70a9e49 V.E...... R....... 0,0-110,110 aid=1073741831}
+2025-09-17 19:04:00.587 23529-23529 BLASTBufferQueue com.joyd.autobot D [VRI[PopupWindow:18da57f]#2](f:0,a:1) destructor()
+2025-09-17 19:04:00.587 23529-23529 BufferQueueConsumer com.joyd.autobot D [VRI[PopupWindow:18da57f]#2(BLAST Consumer)2](id:5be900000002,api:0,p:-1,c:23529) disconnect
+2025-09-17 19:04:00.622 23529-23529 InsetsController com.joyd.autobot D show(ime(), fromIme=true)
+2025-09-17 19:04:00.633 23529-23560 libc com.joyd.autobot W Access denied finding property "ro.vendor.display.iris_x7.support"
+2025-09-17 19:04:00.634 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D hardware acceleration = true, forceHwAccelerated = false
+2025-09-17 19:04:00.658 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:00.673 23529-23529 BufferQueueConsumer com.joyd.autobot D [](id:5be900000003,api:0,p:-1,c:23529) connect: controlledByApp=false
+2025-09-17 19:04:00.680 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D vri.reportNextDraw android.view.ViewRootImpl.performTraversals:3953 android.view.ViewRootImpl.doTraversal:2674 android.view.ViewRootImpl$TraversalRunnable.run:9867 android.view.Choreographer$CallbackRecord.run:1431 android.view.Choreographer$CallbackRecord.run:1439
+2025-09-17 19:04:00.681 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D vri.Setup new sync id=0 syncSeqId=0
+2025-09-17 19:04:00.685 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:00.685 23529-23560 BLASTBufferQueue com.joyd.autobot D [VRI[PopupWindow:18da57f]#3](f:0,a:1) acquireNextBufferLocked size=110x110 mFrameNumber=1 applyTransaction=true mTimestamp=143293061200232(auto) mPendingTransactions.size=0 graphicBufferId=101056285507599 transform=0
+2025-09-17 19:04:00.686 23529-23560 Parcel com.joyd.autobot W Expecting binder but got null!
+2025-09-17 19:04:00.688 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D vri.reportDrawFinished syncSeqId=0 android.view.ViewRootImpl.lambda$createSyncIfNeeded$4$android-view-ViewRootImpl:4021 android.view.ViewRootImpl$$ExternalSyntheticLambda1.run:6 android.os.Handler.handleCallback:942 android.os.Handler.dispatchMessage:99 android.os.Looper.loopOnce:211
+2025-09-17 19:04:00.690 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D vri.reportNextDraw android.view.ViewRootImpl.handleResized:2047 android.view.ViewRootImpl.-$$Nest$mhandleResized:0 android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:6120 android.view.ViewRootImpl$ViewRootHandler.handleMessage:6084 android.os.Handler.dispatchMessage:106
+2025-09-17 19:04:00.692 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D vri.Setup new sync id=1 syncSeqId=0
+2025-09-17 19:04:00.694 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D vri.reportDrawFinished syncSeqId=0 android.view.ViewRootImpl.lambda$createSyncIfNeeded$4$android-view-ViewRootImpl:4021 android.view.ViewRootImpl$$ExternalSyntheticLambda1.run:6 android.os.Handler.handleCallback:942 android.os.Handler.dispatchMessage:99 android.os.Looper.loopOnce:211
+2025-09-17 19:04:01.124 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:01.638 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:02.126 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:02.191 23529-23529 InputMethodManager com.joyd.autobot D showSoftInput() view=androidx.appcompat.widget.AppCompatEditText{ce5ac87 VFED..CL. .F.P.... 0,81-948,206 #7f080219 app:id/web_socket_url_edit_text aid=1073741824} flags=0 reason=SHOW_SOFT_INPUT
+2025-09-17 19:04:02.208 23529-23529 View com.joyd.autobot D [Warning] assignParent to null: this = android.widget.PopupWindow$PopupDecorView{2a3fa67 V.E...... R....... 0,0-110,110}
+2025-09-17 19:04:02.209 23529-23529 BLASTBufferQueue com.joyd.autobot D [VRI[PopupWindow:18da57f]#3](f:0,a:1) destructor()
+2025-09-17 19:04:02.209 23529-23529 BufferQueueConsumer com.joyd.autobot D [VRI[PopupWindow:18da57f]#3(BLAST Consumer)3](id:5be900000003,api:0,p:-1,c:23529) disconnect
+2025-09-17 19:04:02.237 23529-23529 InsetsController com.joyd.autobot D show(ime(), fromIme=true)
+2025-09-17 19:04:02.638 23529-23560 libc com.joyd.autobot W Access denied finding property "ro.vendor.display.iris_x7.support"
+2025-09-17 19:04:02.639 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D hardware acceleration = true, forceHwAccelerated = false
+2025-09-17 19:04:02.663 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:02.682 23529-23529 BufferQueueConsumer com.joyd.autobot D [](id:5be900000004,api:0,p:-1,c:23529) connect: controlledByApp=false
+2025-09-17 19:04:02.688 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D vri.reportNextDraw android.view.ViewRootImpl.performTraversals:3953 android.view.ViewRootImpl.doTraversal:2674 android.view.ViewRootImpl$TraversalRunnable.run:9867 android.view.Choreographer$CallbackRecord.run:1431 android.view.Choreographer$CallbackRecord.run:1439
+2025-09-17 19:04:02.688 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D vri.Setup new sync id=0 syncSeqId=0
+2025-09-17 19:04:02.693 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:02.694 23529-23560 BLASTBufferQueue com.joyd.autobot D [VRI[PopupWindow:18da57f]#4](f:0,a:1) acquireNextBufferLocked size=110x110 mFrameNumber=1 applyTransaction=true mTimestamp=143295069356924(auto) mPendingTransactions.size=0 graphicBufferId=101056285507603 transform=0
+2025-09-17 19:04:02.694 23529-23560 Parcel com.joyd.autobot W Expecting binder but got null!
+2025-09-17 19:04:02.696 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D vri.reportDrawFinished syncSeqId=0 android.view.ViewRootImpl.lambda$createSyncIfNeeded$4$android-view-ViewRootImpl:4021 android.view.ViewRootImpl$$ExternalSyntheticLambda1.run:6 android.os.Handler.handleCallback:942 android.os.Handler.dispatchMessage:99 android.os.Looper.loopOnce:211
+2025-09-17 19:04:02.698 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D vri.reportNextDraw android.view.ViewRootImpl.handleResized:2047 android.view.ViewRootImpl.-$$Nest$mhandleResized:0 android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:6120 android.view.ViewRootImpl$ViewRootHandler.handleMessage:6084 android.os.Handler.dispatchMessage:106
+2025-09-17 19:04:02.699 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D vri.Setup new sync id=1 syncSeqId=0
+2025-09-17 19:04:02.701 23529-23529 VRI[PopupW...w:18da57f] com.joyd.autobot D vri.reportDrawFinished syncSeqId=0 android.view.ViewRootImpl.lambda$createSyncIfNeeded$4$android-view-ViewRootImpl:4021 android.view.ViewRootImpl$$ExternalSyntheticLambda1.run:6 android.os.Handler.handleCallback:942 android.os.Handler.dispatchMessage:99 android.os.Looper.loopOnce:211
+2025-09-17 19:04:03.110 23529-23616 MainActivity com.joyd.autobot E WebSocket连接错误: failed to connect to /192.168.2.236 (port 8805) from /192.168.1.4 (port 34560) after 10000ms
+2025-09-17 19:04:03.139 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:03.370 23529-23529 BufferQueueConsumer com.joyd.autobot D [](id:5be900000005,api:0,p:-1,c:23529) connect: controlledByApp=false
+2025-09-17 19:04:03.373 23529-23560 libc com.joyd.autobot W Access denied finding property "ro.vendor.display.iris_x7.support"
+2025-09-17 19:04:03.375 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:03.416 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:03.416 23529-23560 BLASTBufferQueue com.joyd.autobot D [magnifier surface#5](f:0,a:1) acquireNextBufferLocked size=297x154 mFrameNumber=1 applyTransaction=true mTimestamp=143295791965847(auto) mPendingTransactions.size=0 graphicBufferId=101056285507604 transform=0
+2025-09-17 19:04:03.416 23529-23560 Parcel com.joyd.autobot W Expecting binder but got null!
+2025-09-17 19:04:03.418 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:03.420 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:03.424 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:03.549 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:03.556 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:03.560 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:03.562 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:03.571 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:03.580 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:03.583 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:03.586 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:03.598 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:03.600 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:03.604 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:03.607 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:03.612 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:03.614 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:03.618 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:03.621 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:03.629 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:03.631 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:03.634 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:03.637 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:03.641 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:03.643 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:03.646 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:03.647 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:03.652 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:03.655 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:03.657 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:03.658 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:03.662 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.025 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.031 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.033 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.035 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.037 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.043 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.046 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.048 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.049 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.052 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.058 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.062 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.064 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.066 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.078 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.079 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.083 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.091 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.093 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.097 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.103 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.110 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.112 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.116 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.120 23529-23616 TrafficStats com.joyd.autobot D tagSocket(101) with statsTag=0xffffffff, statsUid=-1
+2025-09-17 19:04:04.120 23529-23616 System.out com.joyd.autobot I [com.mediatek.cta.CtaAdapter]:check permission begin!
+2025-09-17 19:04:04.121 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.124 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.126 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.130 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.134 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.143 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.145 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.150 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.154 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.158 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.159 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.176 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.177 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.181 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.191 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.192 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.197 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.201 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.207 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.208 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.213 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.217 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.223 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.225 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.230 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.234 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.242 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.244 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.251 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.255 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.259 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.261 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.266 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.270 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.274 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.275 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.279 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.284 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.292 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.294 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.298 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.303 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.306 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.308 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.313 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.319 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.323 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.325 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.335 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.338 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.342 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.344 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.350 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.352 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.356 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.358 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.362 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.366 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.374 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.376 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.381 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.384 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.389 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.391 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.395 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.400 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.406 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.408 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.411 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.415 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.423 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.424 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.440 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.603 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.610 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.612 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.614 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.618 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.621 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.625 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.627 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.628 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.631 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.636 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.640 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.642 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.643 23529-23560 om.joyd.autobot com.joyd.autobot E == MALI DEBUG ===eglp_winsys_populate_image_templates ==12288
+2025-09-17 19:04:04.653 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:04.931 23529-23529 BLASTBufferQueue com.joyd.autobot D [magnifier surface#5](f:0,a:1) destructor()
+2025-09-17 19:04:04.931 23529-23529 BufferQueueConsumer com.joyd.autobot D [magnifier surface#5(BLAST Consumer)5](id:5be900000005,api:0,p:-1,c:23529) disconnect
+2025-09-17 19:04:05.461 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:05.959 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:06.310 23529-23529 View com.joyd.autobot D [Warning] assignParent to null: this = android.widget.PopupWindow$PopupDecorView{38602b0 V.E...... R.....I. 0,0-110,110}
+2025-09-17 19:04:06.310 23529-23529 BLASTBufferQueue com.joyd.autobot D [VRI[PopupWindow:18da57f]#4](f:0,a:1) destructor()
+2025-09-17 19:04:06.311 23529-23529 BufferQueueConsumer com.joyd.autobot D [VRI[PopupWindow:18da57f]#4(BLAST Consumer)4](id:5be900000004,api:0,p:-1,c:23529) disconnect
+2025-09-17 19:04:06.331 23529-23529 VRI[SettingsActivity] com.joyd.autobot V [ANR Warning]Input routeing takes more than 6000ms since 1970-01-01 08:00:00.000, this = com.mediatek.view.impl.ViewDebugManagerImpl@900f529
+2025-09-17 19:04:06.331 23529-23529 VRI[SettingsActivity] com.joyd.autobot V Input event delivered to android.view.ViewRootImpl$EarlyPostImeInputStage@7368a16 at 2025-09-17 19:04:06.298
+2025-09-17 19:04:06.331 23529-23529 VRI[SettingsActivity] com.joyd.autobot V Input event delivered to android.view.ViewRootImpl$ViewPostImeInputStage@637f584 at 2025-09-17 19:04:06.298
+2025-09-17 19:04:06.332 23529-23529 VRI[SettingsActivity] com.joyd.autobot V Input event delivered to android.view.ViewRootImpl$NativePostImeInputStage@34faf97 at 2025-09-17 19:04:06.298
+2025-09-17 19:04:06.332 23529-23529 VRI[SettingsActivity] com.joyd.autobot V Input event delivered to android.view.ViewRootImpl$SyntheticInputStage@a113769 at 2025-09-17 19:04:06.326
+2025-09-17 19:04:06.333 23529-23529 VRI[SettingsActivity] com.joyd.autobot V [ANR Warning]Input routeing takes more than 6000ms since 1970-01-01 08:00:00.000, this = com.mediatek.view.impl.ViewDebugManagerImpl@900f529
+2025-09-17 19:04:06.333 23529-23529 VRI[SettingsActivity] com.joyd.autobot V Input event delivered to android.view.ViewRootImpl$EarlyPostImeInputStage@7368a16 at 2025-09-17 19:04:06.332
+2025-09-17 19:04:06.333 23529-23529 VRI[SettingsActivity] com.joyd.autobot V Input event delivered to android.view.ViewRootImpl$ViewPostImeInputStage@637f584 at 2025-09-17 19:04:06.332
+2025-09-17 19:04:06.333 23529-23529 VRI[SettingsActivity] com.joyd.autobot V Input event delivered to android.view.ViewRootImpl$NativePostImeInputStage@34faf97 at 2025-09-17 19:04:06.332
+2025-09-17 19:04:06.333 23529-23529 VRI[SettingsActivity] com.joyd.autobot V Input event delivered to android.view.ViewRootImpl$SyntheticInputStage@a113769 at 2025-09-17 19:04:06.333
+2025-09-17 19:04:06.340 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:06.837 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:07.353 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:07.847 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:08.350 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:08.443 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:08.935 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:09.448 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:09.942 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:10.451 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:10.948 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:11.445 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:11.951 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:12.366 23529-23529 Compatibil...geReporter com.joyd.autobot D Compat change id reported: 150939131; UID 10301; state: ENABLED
+2025-09-17 19:04:12.446 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:12.940 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:13.454 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:13.948 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.130 23529-23616 MainActivity com.joyd.autobot E WebSocket连接错误: failed to connect to /192.168.2.236 (port 8805) from /192.168.1.4 (port 34564) after 10000ms
+2025-09-17 19:04:14.349 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.359 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.376 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.392 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.409 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.418 23529-23529 SettingsActivity com.joyd.autobot D 保存WebSocket地址: ws://192.168.1.236:8805
+2025-09-17 19:04:14.428 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.445 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.448 23529-23563 ContentCat...ListHelper com.joyd.autobot I blackList size: 13 package is com.joyd.autobot isInTaplusWhiteList: true
+2025-09-17 19:04:14.459 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.466 23529-23529 BufferQueueConsumer com.joyd.autobot D [](id:5be900000006,api:0,p:-1,c:23529) connect: controlledByApp=false
+2025-09-17 19:04:14.467 23529-23529 VRI[MainActivity] com.joyd.autobot D vri.reportNextDraw android.view.ViewRootImpl.performTraversals:3953 android.view.ViewRootImpl.doTraversal:2674 android.view.ViewRootImpl$TraversalRunnable.run:9867 android.view.Choreographer$CallbackRecord.run:1431 android.view.Choreographer$CallbackRecord.run:1439
+2025-09-17 19:04:14.467 23529-23529 VRI[MainActivity] com.joyd.autobot D vri.Setup new sync id=1 syncSeqId=0
+2025-09-17 19:04:14.478 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.489 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.492 23529-23560 BLASTBufferQueue com.joyd.autobot D [VRI[MainActivity]#6](f:0,a:1) acquireNextBufferLocked size=1080x2400 mFrameNumber=1 applyTransaction=true mTimestamp=143306864991925(auto) mPendingTransactions.size=0 graphicBufferId=101056285507610 transform=0
+2025-09-17 19:04:14.494 23529-23529 VRI[MainActivity] com.joyd.autobot D vri.reportDrawFinished syncSeqId=0 android.view.ViewRootImpl.lambda$createSyncIfNeeded$4$android-view-ViewRootImpl:4021 android.view.ViewRootImpl$$ExternalSyntheticLambda1.run:6 android.os.Handler.handleCallback:942 android.os.Handler.dispatchMessage:99 android.os.Looper.loopOnce:211
+2025-09-17 19:04:14.497 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.499 23529-23529 DecorView[] com.joyd.autobot D onWindowFocusChanged hasWindowFocus false
+2025-09-17 19:04:14.510 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.525 23529-23529 DecorView[] com.joyd.autobot D onWindowFocusChanged hasWindowFocus true
+2025-09-17 19:04:14.526 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.528 23529-23529 HandWritingStubImpl com.joyd.autobot I refreshLastKeyboardType: 1
+2025-09-17 19:04:14.529 23529-23529 HandWritingStubImpl com.joyd.autobot I getCurrentKeyboardType: 1
+2025-09-17 19:04:14.531 4041-4041 BaseInputMethodService com.sohu.inputmethod.sogou.xiaomi E onStartInput app:com.joyd.autobot restarting:false
+2025-09-17 19:04:14.548 4643-5173 ActivityManagerWrapper com.miui.home E getRecentTasks: mainTaskId=31617 userId=0 baseIntent=Intent { act=android.intent.action.MAIN flag=268435456 cmp=ComponentInfo{com.joyd.autobot/com.joyd.autobot.MainActivity} }
+2025-09-17 19:04:14.553 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.556 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.559 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.563 4643-5173 ActivityManagerWrapper com.miui.home E getRecentTasks: mainTaskId=31617 userId=0 baseIntent=Intent { act=android.intent.action.MAIN flag=268435456 cmp=ComponentInfo{com.joyd.autobot/com.joyd.autobot.MainActivity} }
+2025-09-17 19:04:14.567 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.575 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.580 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.593 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.599 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.608 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.614 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.625 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.628 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.643 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.644 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.658 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.674 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.690 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.707 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.724 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.740 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.757 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.773 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.790 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.806 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.821 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.839 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.856 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.872 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.889 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.905 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.922 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.938 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.955 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.971 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:14.988 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:15.004 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:15.035 23529-23560 OpenGLRenderer com.joyd.autobot D endAllActiveAnimators on 0xb4000079a4dce100 (RippleDrawable) with handle 0xb4000079bc878e20
+2025-09-17 19:04:15.043 23529-23529 BLASTBufferQueue com.joyd.autobot D [VRI[SettingsActivity]#1](f:0,a:1) destructor()
+2025-09-17 19:04:15.044 23529-23529 BufferQueueConsumer com.joyd.autobot D [VRI[SettingsActivity]#1(BLAST Consumer)1](id:5be900000001,api:0,p:-1,c:23529) disconnect
+2025-09-17 19:04:15.052 23529-23529 View com.joyd.autobot D [Warning] assignParent to null: this = DecorView@5f1e3d1[SettingsActivity]
+2025-09-17 19:04:15.141 23529-23616 TrafficStats com.joyd.autobot D tagSocket(78) with statsTag=0xffffffff, statsUid=-1
+2025-09-17 19:04:15.141 23529-23616 System.out com.joyd.autobot I [com.mediatek.cta.CtaAdapter]:check permission begin!
+2025-09-17 19:04:16.042 23529-23529 MainActivity com.joyd.autobot D onPause()被调用,应用进入后台
+2025-09-17 19:04:16.070 4643-5173 ActivityManagerWrapper com.miui.home E getRecentTasks: mainTaskId=31617 userId=0 baseIntent=Intent { act=android.intent.action.MAIN flag=268435456 cmp=ComponentInfo{com.joyd.autobot/com.joyd.autobot.MainActivity} }
+2025-09-17 19:04:16.081 23529-23529 DecorView[] com.joyd.autobot D onWindowFocusChanged hasWindowFocus false
+2025-09-17 19:04:16.124 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:16.129 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:16.140 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:16.148 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:16.165 4643-5173 ActivityManagerWrapper com.miui.home E getRecentTasks: mainTaskId=31617 userId=0 baseIntent=Intent { act=android.intent.action.MAIN flag=268435456 cmp=ComponentInfo{com.joyd.autobot/com.joyd.autobot.MainActivity} }
+2025-09-17 19:04:16.171 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:16.182 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:16.195 23529-23560 gralloc4 com.joyd.autobot E Empty SMPTE 2094-40 data
+2025-09-17 19:04:16.464 23529-23529 BLASTBufferQueue com.joyd.autobot D [VRI[MainActivity]#6](f:0,a:1) destructor()
+2025-09-17 19:04:16.464 23529-23529 BufferQueueConsumer com.joyd.autobot D [VRI[MainActivity]#6(BLAST Consumer)6](id:5be900000006,api:0,p:-1,c:23529) disconnect
+2025-09-17 19:04:16.467 23529-23529 MainActivity com.joyd.autobot D onStop()被调用
+2025-09-17 19:04:21.628 23529-23541 om.joyd.autobot com.joyd.autobot W Cleared Reference was only reachable from finalizer (only reported once)
+2025-09-17 19:04:21.638 23529-23541 om.joyd.autobot com.joyd.autobot I This is non sticky GC, maxfree is 8388608 minfree is 524288
+2025-09-17 19:04:25.170 23529-23616 MainActivity com.joyd.autobot E WebSocket连接错误: failed to connect to /192.168.2.236 (port 8805) from /192.168.1.4 (port 34588) after 10000ms
+2025-09-17 19:04:26.214 23529-23616 TrafficStats com.joyd.autobot D tagSocket(78) with statsTag=0xffffffff, statsUid=-1
+2025-09-17 19:04:26.215 23529-23616 System.out com.joyd.autobot I [com.mediatek.cta.CtaAdapter]:check permission begin!
+2025-09-17 19:04:36.228 23529-23616 MainActivity com.joyd.autobot E WebSocket连接错误: failed to connect to /192.168.2.236 (port 8805) from /192.168.1.4 (port 34592) after 10000ms
+2025-09-17 19:04:37.249 23529-23616 TrafficStats com.joyd.autobot D tagSocket(78) with statsTag=0xffffffff, statsUid=-1
+2025-09-17 19:04:37.249 23529-23616 System.out com.joyd.autobot I [com.mediatek.cta.CtaAdapter]:check permission begin!
+2025-09-17 19:04:47.263 23529-23616 MainActivity com.joyd.autobot E WebSocket连接错误: failed to connect to /192.168.2.236 (port 8805) from /192.168.1.4 (port 34756) after 10000ms
+2025-09-17 19:04:48.277 23529-23616 TrafficStats com.joyd.autobot D tagSocket(78) with statsTag=0xffffffff, statsUid=-1
+2025-09-17 19:04:48.278 23529-23616 System.out com.joyd.autobot I [com.mediatek.cta.CtaAdapter]:check permission begin!
+2025-09-17 19:04:58.287 23529-23616 MainActivity com.joyd.autobot E WebSocket连接错误: failed to connect to /192.168.2.236 (port 8805) from /192.168.1.4 (port 34782) after 10000ms
+2025-09-17 19:04:59.307 23529-23616 TrafficStats com.joyd.autobot D tagSocket(78) with statsTag=0xffffffff, statsUid=-1
+2025-09-17 19:04:59.307 23529-23616 System.out com.joyd.autobot I [com.mediatek.cta.CtaAdapter]:check permission begin!
diff --git a/AutoRobot/Android/Robot/app/proguard-rules.pro b/AutoRobot/Android/Robot/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/AutoRobot/Android/Robot/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/AutoRobot/Android/Robot/app/src/androidTest/java/com/joyd/autobot/ExampleInstrumentedTest.kt b/AutoRobot/Android/Robot/app/src/androidTest/java/com/joyd/autobot/ExampleInstrumentedTest.kt
new file mode 100644
index 0000000..cea3619
--- /dev/null
+++ b/AutoRobot/Android/Robot/app/src/androidTest/java/com/joyd/autobot/ExampleInstrumentedTest.kt
@@ -0,0 +1,24 @@
+package com.joyd.autobot
+
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.ext.junit.runners.AndroidJUnit4
+
+import org.junit.Test
+import org.junit.runner.RunWith
+
+import org.junit.Assert.*
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * See [testing documentation](http://d.android.com/tools/testing).
+ */
+@RunWith(AndroidJUnit4::class)
+class ExampleInstrumentedTest {
+ @Test
+ fun useAppContext() {
+ // Context of the app under test.
+ val appContext = InstrumentationRegistry.getInstrumentation().targetContext
+ assertEquals("com.joyd.autobot", appContext.packageName)
+ }
+}
\ No newline at end of file
diff --git a/AutoRobot/Android/Robot/app/src/main/AndroidManifest.xml b/AutoRobot/Android/Robot/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..90bccbf
--- /dev/null
+++ b/AutoRobot/Android/Robot/app/src/main/AndroidManifest.xml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AutoRobot/Android/Robot/app/src/main/java/com/joyd/autobot/MainActivity.kt b/AutoRobot/Android/Robot/app/src/main/java/com/joyd/autobot/MainActivity.kt
new file mode 100644
index 0000000..552762c
--- /dev/null
+++ b/AutoRobot/Android/Robot/app/src/main/java/com/joyd/autobot/MainActivity.kt
@@ -0,0 +1,676 @@
+package com.joyd.autobot
+
+import android.Manifest
+import android.app.Activity
+import android.content.Context
+import android.content.Intent
+import android.content.IntentFilter
+import android.content.BroadcastReceiver
+import android.content.pm.PackageManager
+import android.content.SharedPreferences
+import android.media.projection.MediaProjectionManager
+import android.os.Build
+import android.os.Bundle
+import android.os.Handler
+import android.os.Looper
+import android.util.Log
+import android.view.View
+import android.widget.Button
+import android.widget.TextView
+import android.widget.Toast
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.app.ActivityCompat
+import androidx.core.content.ContextCompat
+import androidx.activity.result.contract.ActivityResultContracts
+import com.joyd.joydlib.io.WebSocketClient
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.launch
+import okio.ByteString
+import java.util.concurrent.atomic.AtomicBoolean
+import java.util.concurrent.atomic.AtomicInteger
+
+class MainActivity : AppCompatActivity(), WebSocketForegroundService.Companion.ServiceReadyCallback {
+ private val TAG = "MainActivity"
+ private val SCREENSHOT_COMMAND = "screenshot"
+ private val REQUEST_NOTIFICATION_PERMISSION = 1002
+ // 定义截图数据广播的action
+ private val SCREENSHOT_DATA_ACTION = "com.joyd.autobot.SCREENSHOT_DATA"
+ private val SCREENSHOT_DATA_EXTRA = "screenshot_data"
+ // 定义MediaProjection权限请求广播的action
+ private val MEDIA_PROJECTION_PERMISSION_REQUIRED = "com.joyd.autobot.MEDIA_PROJECTION_PERMISSION_REQUIRED"
+
+ private lateinit var connectButton: Button
+ private lateinit var connectionStatusIndicator: View
+ private lateinit var connectionStatusText: TextView
+ private lateinit var settingsButton: Button
+ private lateinit var webSocketUrl: String
+ private var webSocketClient: WebSocketClient? = null
+ private var isConnected = false
+
+ // 重连延迟常量 - 保留此常量用于连接断开后的重连逻辑
+ private val RECONNECT_DELAY_MS = 5000L // 重连延迟5秒
+
+ // 重连状态标志
+ private val isReconnecting = AtomicBoolean(false)
+
+ // 处理异步事件的Handler
+ private lateinit var handler: Handler
+
+ // UI组件引用
+ private var screenshotButton: Button? = null
+
+ // 创建截图数据广播接收器
+ private val screenshotBroadcastReceiver = object : BroadcastReceiver() {
+ override fun onReceive(context: Context?, intent: Intent?) {
+ if (intent?.action == SCREENSHOT_DATA_ACTION) {
+ val screenshotData = intent.getByteArrayExtra(SCREENSHOT_DATA_EXTRA)
+ if (screenshotData != null) {
+ Log.d(TAG, "接收到截图数据,大小: ${screenshotData.size} bytes")
+ // 发送截图数据到服务端
+ sendScreenshotData(screenshotData)
+ } else {
+ Log.e(TAG, "接收到的截图数据为null")
+ }
+ } else if (intent?.action == MEDIA_PROJECTION_PERMISSION_REQUIRED) {
+ // 接收到需要重新请求MediaProjection权限的广播
+ Log.d(TAG, "接收到需要重新请求MediaProjection权限的广播")
+ runOnUiThread {
+ Toast.makeText(this@MainActivity, "需要重新请求屏幕捕获权限以继续截图功能", Toast.LENGTH_SHORT).show()
+ requestScreenshotPermission()
+ }
+ }
+ }
+ }
+ // Activity Result API launcher for media projection
+ private val mediaProjectionLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
+ if (it.resultCode == Activity.RESULT_OK && it.data != null) {
+ Log.d(TAG, "用户授予了屏幕捕获权限")
+ WebSocketForegroundService.setMediaProjection(this, it.resultCode, it.data!!)
+ } else {
+ // 用户拒绝了屏幕捕获权限
+ Log.d(TAG, "用户拒绝了屏幕捕获权限,resultCode: ${it.resultCode}")
+ Toast.makeText(this, "需要屏幕捕获权限才能执行截图操作", Toast.LENGTH_SHORT).show()
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_main)
+
+ Log.d(TAG, "onCreate()被调用")
+
+ // 初始化Handler
+ handler = Handler(Looper.getMainLooper())
+
+ // 初始化UI组件
+ initUI()
+
+ // 从SharedPreferences获取配置的WebSocket URL
+ val sharedPreferences = androidx.preference.PreferenceManager.getDefaultSharedPreferences(this)
+ val defaultUrl = getString(R.string.web_socket_url)
+ webSocketUrl = sharedPreferences.getString(getString(R.string.pref_key_web_socket_url), defaultUrl) ?: defaultUrl
+ Log.d(TAG, "从配置获取WebSocket URL: $webSocketUrl")
+
+ // 初始化WebSocket客户端
+ initWebSocketClient()
+
+ // 检查并请求通知权限
+ checkNotificationPermission()
+
+ // 注册截图数据广播接收器
+ registerScreenshotBroadcastReceiver()
+ }
+
+ // 注册截图数据广播接收器
+ private fun registerScreenshotBroadcastReceiver() {
+ val filter = IntentFilter()
+ filter.addAction(SCREENSHOT_DATA_ACTION)
+ filter.addAction(MEDIA_PROJECTION_PERMISSION_REQUIRED)
+ ContextCompat.registerReceiver(
+ this,
+ screenshotBroadcastReceiver,
+ filter,
+ ContextCompat.RECEIVER_NOT_EXPORTED
+ )
+ Log.d(TAG, "截图数据广播接收器和MediaProjection权限请求广播接收器已注册")
+ }
+
+ // 注销截图数据广播接收器
+ private fun unregisterScreenshotBroadcastReceiver() {
+ try {
+ unregisterReceiver(screenshotBroadcastReceiver)
+ Log.d(TAG, "截图数据广播接收器已注销")
+ } catch (e: Exception) {
+ Log.e(TAG, "注销广播接收器异常: ${e.message}", e)
+ }
+ }
+ private fun initUI() {
+ connectButton = findViewById