2013-01-10 92 views
1

我想從android設備遷移進程到電腦,通過我的電腦執行進程並返回到android設備。是否有可能在Android設備和計算機之間遷移進程?流程遷移

更多細節:我將開發一個應用程序來完成某種任務(比如按照升序對5000個數字進行排序)。該任務將在Android設備上的功能A中執行。現在,我想要做的是在服務器上執行該功能(運行時)。服務器將不會提前獲得功能代碼。因此,在Android設備上調用函數時,函數(進程)將遷移到服務器(代碼+輸入數據),在服務器上執行,然後將已排序的列表返回給android設備。希望你能得到我的問題。

+2

難道你不能只是發送一個請求到您的計算機上的服務器做些什麼,然後將其返回到您的設備上的客戶端? – syb0rg

+0

是的,其實我正在做一些研究並希望實施所有可能的解決方案。所以我真的想實現這個:) – atta

+0

你真的想做什麼?流程遷移對於不存在的指甲類型是一個錘子。 –

回答

1

你不能「發送進程」。一般來說,您將開始在手機上執行進程,然後向服務器發送請求,然後使用ether push或pull獲取服務器上的執行結果,然後您可以恢復手機上的邏輯。像REST協議和在您的Android應用程序中使用HttpClient將是可能的解決方案

+0

HTTP請求非常慢。更多細節:我將開發一個應用程序來完成某種任務(比如按照升序對5000個數字進行排序)。該任務將在Android設備上的功能A中執行。現在,我想要做的是在服務器上執行該功能(運行時)。服務器將不會提前獲得功能代碼。因此,在Android設備上調用函數時,函數(進程)將遷移到服務器(代碼+輸入數據),在服務器上執行,然後將已排序的列表返回給android設備。希望你能得到我的問題。 – atta

0

Android沒有內置的支持來暫停進程,使其可以作爲別的進程恢復。

你能修改你想遷移的進程嗎?或者你是否試圖針對任意Android流程?

Android確實支持原始的,應用程序感知的「暫停」和「恢復」(一個表現良好的Android應用程序應該保持其狀態,以便它可以透明地「恢復」,即使它被殺死 - 見Android Process Lifecycle)。如果您控制有問題的應用程序,則可以用平臺中立的方式編寫saveStateInstance,然後在桌面上使用它來「恢復」該進程,反之亦然。根據您對「流程遷移」的定義,這可能或可能不會計算在內。

從理論上來說,阻止向Android添加更強大的流程遷移(遷移基於Java的流程應該更容易一些),但您會遇到all the standard process migration issues(網絡標識,本地資源使用情況,而開放的網絡連接是標準的絆腳石)。

+0

更多細節:我將開發一個應用程序來完成某種任務(比如說按升序對5000個數字進行排序)。該任務將在Android設備上的功能A中執行。現在,我想要做的是在服務器上執行該功能(運行時)。服務器將不會提前獲得功能代碼。因此,在Android設備上調用函數時,函數(進程)將遷移到服務器(代碼+輸入數據),在服務器上執行,然後將已排序的列表返回給android設備。希望你能得到我的問題。 – atta