gpt4 book ai didi

java - Android - 模块化应用程序设计

转载 作者:太空宇宙 更新时间:2023-11-04 10:55:30 25 4
gpt4 key购买 nike

我目前正在为我的计算项目开发一个应用程序。简而言之,它通过来自计算机的 SSH session 收集信息并显示 CPU 使用率等。

我一直想在应用程序本身中添加具有多个连接的功能,但我希望对其进行设置,以便用户可以随时添加/删除连接并在它们之间切换。我想设置它,以便所有连接都可以同时处于 Activity 状态(可能最多 8 个),以便可以进行后台监控。

我不确定如何让我的应用程序像这样“模块化”。任何想法都会很棒! :D 我已经设置了 1 个连接,现在可以正常工作,拥有多个连接会增加我的应用程序的更多用途。

如果您想查看我的代码,我在 GitHub 上有一份副本。它是它的旧版本,但代码基本相同。 My ssh class

谢谢大家!

最佳答案

排序版本:使用队列连接线程。

例如,您有 9 个输入流。 8 个来自 SSH 源,1 个来自您的用户。常见的方法是使用线程。 (可能还有另一种使用 java channel 的方法,java.nio.channels,它有回调)。每个流都需要独立于其他流的输入和输出。因此,您需要某种消息队列进出每个流。这样,即使流被阻止,应用程序的其余部分也可以愉快地进行。

与大多数 UI 框架一样,Android UI 是“单线程”的。当 UI 框架说它们是“单线程”时,它们意味着一个线程用于您应用程序中的所有 UI 交互。因此,您需要一种在执行 SSH 的线程和执行 UI 的线程之间发送消息的方法。在 Android 中,您可以将消息发布到 UI 线程。另一种方法是在应用程序中进行本地广播,并在需要的地方有听众。另一种方法是使用像 Otto 这样的消息错误框架,它是应用程序中的一个全局空间,每个 Activity 或 fragment 等都在其中注册自身以获取消息。

对于您的情况,目前,我只是触发一些 Java 线程,然后调用“post”将消息发布回某个 View 。

典型的 UI“线程”是一些获取 UI 输入并调用程序代码的循环。在 Android 中,它被称为“looper”。这是一种方法的文章: https://developer.android.com/training/multiple-threads/communicate-ui.html这里有一篇更一般性的讨论文章: http://www.intertech.com/Blog/android-non-ui-to-ui-thread-communications-part-1-of-5/

您可能还只是想使用“runOnUIThread”来运行任何扰乱 UI 的代码。但是,本地广播也很好用。

沿着这条线,队列是与可笑的旧技术集成的经典方法,例如大型机,这些技术进行愚蠢的设计,如夜间批处理而不是立即处理。

关于java - Android - 模块化应用程序设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28972957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com