关于线程的Android/Java决策
好的,我在玩了一点Android SDK之后,决定开发一个完整的应用程序。不一定要在商店里发布(我真的没有可以使用的工具来进行适当的QA,因此感觉不对劲;我只能在我的一台个人设备上进行测试),它主要只是一个个人项目,用于娱乐和学习。最后,我决定使用一个摄像头应用程序,因为我经常使用我的摄像头,所以如果我成功的话,这是我最终实际使用的应用程序,也是因为我对Android L中新的Camera2 API的功能感到非常兴奋,并想尝试一下 无论如何,我一直在思考应用程序的设计/体系结构有一段时间了,我遇到了一个我自己无法真正解决的潜在问题,因为我不仅对这种性质的GUI编程非常熟悉,而且对Java和Android SDK也不是100%熟悉。他们都不在我的日常工作范围之内 现在我知道我真的需要将我的UI线程与其他线程分开,但我不确定的是,首先,我应该在哪些方面投入额外的线程(我正在考虑一个处理图像捕获和存储,另一个处理设置?也许这已经结束了)以及是否有UI线程通过事件与之通信的后台线程,或者只是在需要时生成线程。可能是一个中间后台线程,在UI线程和任何需要完成的后台处理之间进行仲裁?我想问的是,我如何决定这些事情?是否有一般/最佳做法关于线程的Android/Java决策,java,android,multithreading,user-interface,Java,Android,Multithreading,User Interface,好的,我在玩了一点Android SDK之后,决定开发一个完整的应用程序。不一定要在商店里发布(我真的没有可以使用的工具来进行适当的QA,因此感觉不对劲;我只能在我的一台个人设备上进行测试),它主要只是一个个人项目,用于娱乐和学习。最后,我决定使用一个摄像头应用程序,因为我经常使用我的摄像头,所以如果我成功的话,这是我最终实际使用的应用程序,也是因为我对Android L中新的Camera2 API的功能感到非常兴奋,并想尝试一下 无论如何,我一直在思考应用程序的设计/体系结构有一段时间了,我遇
我真的这么问是因为我想把这件事做好,并事先彻底计划好应用程序,因为在过去,我发现如果我直接投入其中,我会很容易感到困惑,最终失去信心,放弃项目。我希望有人能帮忙。这不是一个问题,我很容易找到这样的方式,谷歌将提供令人满意的结果。 < P>我想你可能会考虑这样想:< /P> UI线程是运行大多数东西的地方。它有时也被称为“主”线程,因为它是,嗯。。。主线 除非您的程序非常复杂,否则您可能不需要担心线程的体系结构。所有你需要担心的是从UI线程中得到慢的东西。就这样。你不在乎它们去哪里,只是不在乎UI线程 如果你买了它,有一些不错的选择:
…和“慢”应该包括所有I/O:数据库、文件系统、网络等,以及主要计算。
< P>我想你可以这样考虑: UI线程是运行大多数东西的地方。它有时也被称为“主”线程,因为它是,嗯。。。主线 除非您的程序非常复杂,否则您可能不需要担心线程的体系结构。所有你需要担心的是从UI线程中得到慢的东西。就这样。你不在乎它们去哪里,只是不在乎UI线程 如果你买了它,有一些不错的选择:…和“慢”应包括所有I/O:数据库、文件系统、网络等,以及主要计算。您希望使事情尽可能简单。您不需要线程来设置设置,也不需要中间线程。这些事情只会造成不必要的麻烦。您只需要从UI线程中删除长时间运行的操作 首先看一下Android框架为简化多线程而提供的结构。这将有助于简化您的应用程序。这些措施包括和。如果这些不能满足您的需求,请查看包装。使用原始线程通常是不可取的
另一个可能派上用场的图书馆是图书馆。这将防止使用AsyncTask时可能发生的内存泄漏。您希望使事情尽可能简单。您不需要线程来设置设置,也不需要中介线程