2017-01-31 19 views
0

我正在編寫一個需要用戶文本輸入的「Android Studio」中的移動應用程序,它使用「jsoup」(用於網頁爬行的Java庫等)獲取一些數據並將其呈現給用戶。問題是我遇到性能問題。如何將計算卸載到服務器並在移動應用程序上檢索結果

在仿真的nexus 5硬件上查找和檢索數據平均需要大約9秒的時間。我正在使用AsyncTask類來執行計算而不阻塞主線程。

我的問題是

「我可以通過用戶輸入參數到服務器並運行計算繁重的代碼段有與所獲取的數據返回到移動應用?我將如何處理這?」

後續問題是「這種方法會提供更好的性能嗎?」

我已經考慮到目前爲止太使用PHP EXEC()的函數,在Web服務器上運行的功能,但我不知道怎麼過,從移動應用傳遞參數到網絡服務器和如何返回輸出到移動應用程序。

我也考慮過使用另一個庫來進行網絡抓取/抓取,比如Scrapy(Python)或者使用JavaScript(比如node-webcrawler)。

我打開任何建議,但應用程序的核心必須寫成一個移動應用程序在Java中。

+0

我不明白你爲什麼不試試所有。將一些數據發送到php scripr然後讓它計算somering(爲什麼要使用exec()?)是非常困難的。然後返回結果。只需做一些測試,看看使用PHP比在Android設備上做所有事情更快。 – greenapps

+0

'我不知道如何將移動應用程序的參數傳遞給網絡服務器,以及如何將輸出返回給移動應用程序。幾乎每一天你都可以閱讀stackoverflow上顯示的內容。將一些參數值發佈到php腳本中,然後閱讀腳本返回的內容。每天! – greenapps

+0

我以某種方式不考慮發送POST到服務器,可能是因爲我對移動應用程序開發並不熟悉,並不知道Java支持它。我會嘗試。 我正在考慮使用exec()的原因是在計算機硬件上運行該功能,而這會更快。林不知道如果它更快,然後使用PHP webscraper但我嘗試兩個。 – edn

回答

0

我會先嚐試在真實設備中運行您的應用程序,以查看延遲是否仍然過多。如果是這種情況,那麼實現REST API的簡單服務器應用程序可能是一個不錯的選擇。如果你想使用Python,Scrapy和/或BeautifoulSoup是不錯的選擇,不知道你到底想幹什麼。如果您需要與服務器進行實時通信,則可以使用Tornado websockets而不是REST API。

相關問題