我想在同一個DalvikVM中運行兩個進程。這意味着我想運行第一個應用程序,然後這個應用程序啓動第二個應用程序。我希望這兩個應用程序在同一個DalvikVM中運行。我認爲如果第一個應用程序爲第二個應用程序分配一個進程是可能的。但我不確定我該怎麼做。 謝謝Android:如何創建新進程
回答
我想在同一個DalvikVM中運行兩個進程。
根據定義,這是不可能的。
這意味着我想運行第一個應用程序,然後該應用程序啓動第二個應用程序。我希望這兩個應用程序在同一個DalvikVM中運行。
根據定義,這是不可能的。
我認爲如果第一個應用程序爲第二個應用程序分叉一個進程是可能的。
對不起,但是您的定義是什麼意思? – Aprel
@Aprel:虛擬機只能在一個進程中。多個進程意味着多個虛擬機。 – CommonsWare
但是有很多Android模擬器,你可以在模擬器中運行遊戲或程序。這意味着Linux內核 - > Dalvik vm - > Android - > Emulator - > VM - >遊戲。我不會僅僅在原始dalvikVm – Aprel
我非常懷疑你真正想要做的是去挖掘過程的具體細節(如果你這樣做,我會質疑爲什麼)。在任何情況下,Android都會故意讓您靠近流程變得非常困難,因爲平臺提供了足夠的機制來實現幾乎所有功能流程而無需執行。
我懷疑你究竟是什麼意思,你需要啓動一個新的Android 任務(有它自己的回棧,功能上像一個單獨的應用程序運行)。
閱讀開發指南中的Tasks and Back Stack文檔,特別是有關任務的部分。您可能要查看的內容是使用Intent
中的FLAG_ACTIVITY_NEW_TASK標誌開始新活動。
謝謝,但我真的想這樣做,我不明白爲什麼它應該是可能的說合理分叉一個新的過程,但具有相同的dalvikvm – Aprel
@Aprel - 你實際上可以讓zygote給你一個不同的過程活動或服務,如果你指定它應該在你的AndroidManifest中有一個,或者你可以讓底層Linux克隆你現有的進程(至少爲了有限的非Android目的)。但是另一個進程將包含一個帶有自己狀態的* distinct * VM *,而不是「同一個」。但是他們仍然可以通過諸如AIDL風格的服務連接之類的進程間通信進行交談。 –
- 1. 如何限制創建新進程的進程?
- 2. QApplication exec()創建新的線程/進程?
- 3. 創建一個不是創建過程的子進程的新進程
- 4. Android創建新進程而不是返回到後臺活動
- 5. 在Android中使用Runtime.getRuntime()創建新進程
- 6. 在android中創建一個deamon進程
- 7. 如何在Android中創建新行?
- 8. 創建新進程並期待輸出
- 9. shell腳本:創建新的bash進程
- 10. Powershell啓動進程創建新變量
- 11. 防止Java創建新進程
- 12. Python:創建一個新進程
- 13. 錯誤創建新的進程C++
- 14. 用COM創建新的Excel進程(pywin32)
- 15. 如何在Android應用程序中創建進度對話框?
- 16. 如何在Android進程崩潰時創建崩潰日誌
- 17. 如何在Android應用程序中創建進度對話框
- 18. 如何在Windows下創建C++代碼中的新進程?
- 19. 如何在Linux內核中創建新進程?
- 20. 如何獲得由CreateProcess創建的新進程的HWND
- 21. 如何在C#(.Net4)中創建新的進程?
- 22. 如何在linux中創建進程
- 23. 如何在C中創建進程鏈?
- 24. WP7:如何創建後臺進程?
- 25. 如何用Java創建一個進程
- 26. 我如何創建多個進程
- 27. 如何創建一個進程棧?
- 28. 在C中創建新進程和子進程的區別(Windows)
- 29. Android新應用程序創建
- 30. Android應用程序:如何創建一個新窗口?
我很好奇號,什麼是想這樣做的原因。 –