- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
关闭。这个问题需要更多focused .它目前不接受答案。
想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .
7年前关闭。
Improve this question
我写这个问题不是作为任何特定应用程序的一部分,而是作为 future 应用程序潜在用途的一部分。我知道这个问题的答案可能非常特定于应用程序,但我希望你能忍受我。我将按原样传达我的理解,希望您能通过扩展来帮助我。令人惊讶的是徒劳的,我在网上搜索了“完整”的概述,但没有找到。显然欢迎任何指向相关页面的链接。
默认情况下,Android 应用程序在单个进程中运行。默认情况下,您启动的每个 Activity 或服务甚至会在主线程中运行。用户的所有 Action 都由主线程的Looper排队,各自的回调在主线程中处理。
为了提供并发性,线程可以以多种不同的方式启动,单个或在池中。在这方面没有明确需要多个进程。不需要使用多个进程来允许设备的多个内核并行工作,因为线程也可以并行运行,甚至您的 main thread 也可以并行运行。 ?但也许它会更容易实现?
为了让 Activity 或服务在特定(可能不同)的进程中工作,您只需设置 android:process
list 文件中的属性。这么容易实现?
Android 框架是专门为移动设备构建的,移动设备通常只能使用有限的内存。因此进程可以在多种情况下被杀死,明确说明 here .只要你实现了Activity和Services的生命周期回调,比如onStop
或 onDestroy
,这应该不会带来任何实际问题。但显然,通过使用多个进程来划分应用程序的各个部分,可能会使更重要的事情保持活力。例如,后台下载服务可以保持 Activity 状态(重要性级别为 3),而具有启动此服务的初始 Activity 的进程现在在后台(级别 4)可以释放其资源。此外,您正在隔离应用程序的核心功能这一事实可能会让您的设备更好地利用其资源?
Binder 框架使 IPC 相当容易处理,您通常会使用它,而不管实际使用多个进程。我认为应用程序拥有多个进程的主要成本是访问共享资源,或在进程之间发送这些资源,不包括从 Zygote fork 进程所需的额外资源。我想知道使用多个进程是否真的会迫使您以不同的方式实现您的应用程序?
我认为从概念上讲,使用多个进程不会增加实现的便利性?
致 总结 多进程的优点:
最佳答案
Using multiple processes to allow the multiple cores of your device to work in parallel is not necessary since Threads can be run in parallel as well, maybe even your main thread?
But perhaps it will be easier to actually achieve?
For instance a background download Service could be kept alive (level 3 in importance), while the process with the initial Activity that started this Service, now in the background (level 4) could be freed for its resources.
The Binder framework makes IPC fairly easy to handle, and is something you will use generally, regardless of actually using multiple processes
I wonder whether using multiple processes will actually force you to implement your application differently?
Isolation potentially gives more lifetime protection
Parallelization performance boost?
The main use case I can think of
关于android - 在android应用程序中使用多个进程的优缺点是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19744906/
ODBC是一种连接数据库的开放标准。 ODBC(OpenDataBase Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows OpenServices Ar
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
在我最近的 javascript 程序中(主要是为了好玩和概念验证)我有很多不同种类的对象,并且每种类型我都有相当数量的“实例”。所以我想我应该为这些使用类,但是由于它们非常简单,我可以直接构造它们而
我想知道图标(Material Design 图标)使用可绘制矢量形状(XML 文件)与图像资源(png 文件)的优缺点是什么? 最佳答案 正如我所见,这个问题是指光栅(例如 jpeg、png)和矢量
优点和缺点是什么使用 Plain Old Data (POD)structs\classes in C++ ? 在什么情况下应该更喜欢使用他们在非 POD 上? 具体来说,POD 在工作时有优势吗与序
我听说 Ctypes 会导致 Python 和 Windows 崩溃(或停止错误)。我应该远离他们的使用吗?我从哪里听到的?当我试图控制窗口的各个方面、自动化之类的东西时,它又回来了。 我听说过 sw
您能否解释一下在 iPhone 上存储数据的不同方式,以及每种方式的优缺点。 我已经阅读了很多关于 UserDefaults、CoreData、XML、plist 的内容……但我有点不知所措。 目前,
但对于关闭PING值后,网站能否被百度和GOOGLE等搜索引擎收录,很多人说法不一,有些说对收录没任何影响,也有人说影响不大,其实会不会影响,我也不是很清楚,我只能从我遇到情况的来分析一下。 7月
我正在寻找一个制作平台。我读过一些关于 gnu make 的文章,它在 Windows 平台上有一些问题(从斜杠/反斜杠到 shell 确定......)所以我想听听我有什么替代品? 如果重要的话,我
我是 Ubuntu Linux 用户,我仅将 Win XP 用于我的工作目的。 最近我用 XP + Visual Studio 2008(由 kvm-quemu 提供支持)设置了一个虚拟机。 我的问题
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 5 年前。 Improv
我对使用Grails Portlets plugin在Grails上开发 Liferay portlet的可能性感兴趣。我认为引入portlet框架(例如Spring Portlet API)将使开发
作为Photon的新手,有以下问题: 看起来 VMware 正在尝试创建与 Docker 并行的容器技术。由于现阶段docker比较成熟,使用photon有什么好处/优势吗? 我知道有人可以在内部使用
我只需要一些关于此布局的建议。我不是经验丰富的 CSS 用户,所以我遇到的唯一技术是将所有内容包装到一个 div 中,设置宽度和自动左/右边距。这种方法是面向 future 的吗? 在我开始之前我应该
我正在使用 jQuery Mobile 和 Phonegap 开发 HTML5 移动应用程序。它将部署在多个平台上。 我在下面有一个横幅 png: 我的问题是: 1)直接用这张图片做背景还是用CSS动
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
这个问题在这里已经有了答案: When is it necessary or convenient to use Spring or EJB3 or all of them together? (2
我最近听说了 JavaScript 对象表示法 (JSON),在查找之后,它似乎作为可扩展标记语言 (XML) 的替代品变得相当流行。 我继续 this页面以获取更多信息,但它似乎更像是一个 XML
这个问题在这里已经有了答案: 9年前关闭。 Possible Duplicate: EF 4.1 Code-first vs Model/Database-first 我刚刚开始学习 EF 4.0 C
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我是一名优秀的程序员,十分优秀!