2010-08-02 70 views
3

我有一個Web應用程序託管在Android設備上。我目前正在使用android sdk提供的模擬器。我的應用程序將同時提供靜態數據和動態數據。我目前使用jetty版本6.1.22。我想問問什麼是更好的選擇。 1.剝離代碼的Jetty網絡服務器。 2. I-Jetty。I-Jetty或Jetty

我的應用程序使用以下特性 -

  • ResourceHandler服務靜態資源。
  • 一個用於提供同步數據請求的通用servlet。
  • CometServlet用於提供異步數據請求的擴展。

我期待以下標準進行比較。

  • 應用程序大小。 apk的大小將包含代碼。
  • 在30個請求/秒的最大負載下的內存和CPU使用率。這些是在應用程序生命週期中發生很少次的短陣陣。平均負載約爲5個請求/秒。
  • 易於維護。包括Jetty在應用程序中的重要升級。
  • 我可能錯過了任何其他副作用。
+0

30請求/秒!這不是要燒電池嗎? – ankitjaininfo 2010-08-02 19:21:53

+0

更新了問題。我的意思是30個請求/秒的最大負載,而不是平均負載。 – 2010-08-02 19:50:19

回答

6

我也一直在尋找關於在應用程序中嵌入i-Jetty服務器的信息。像原始海報一樣,我需要爲靜態和動態資源提供服務。我發現下面的職位是一個有益的開端:

http://puregeekjoy.blogspot.com/2011/06/running-embedded-jetty-in-android-app.html

我注意到,在搜​​索關於Android應用中,很多反應,而不是提供一個有用的答案,斥責原來嵌入Web服務器的答案想要在電話中做這樣的事情的海報。然後他們着手給出所有理由不要。除了手機外,還有更多的Android設備。我的項目只涉及這樣一個設備。感謝這個網站和其他網站上的所有有用答案,這些網站引導了我的努力。我希望我提供的鏈接可以幫助其他搜索者。

2

我有一個Web應用程序到Android設備上託管 。

爲什麼?它不可用,除了可能在WiFi局域網上。它將無法運行很長時間,因爲服務不能永遠運行。等等

無論你認爲在Android上使用Web服務器解決什麼技術問題,都可以通過其他方式更好地解決。

我想問問什麼是更好的 選項使用。 1.碼頭網絡服務器 帶有剝離代碼。 2. I-Jetty。

可以說「既不是」,不僅是因爲技術問題,而且Greg Wilkins(碼頭的創造者)does not like Android much。然而,在這兩者中,i-jetty至少經常在Android上測試。

內存和CPU使用率最大爲 負載爲30請求/秒。這些是在應用生命週期中發生很少 次的短陣發。平均負載大約爲5 個請求/秒。

運行時,電池壽命將會縮短,因爲您將一直保持CPU和WiFi運行以支持Web服務器,更不用說負載了。

+0

「無論您認爲通過使用Android上的Web服務器解決的技術問題,都可以通過其他方式更好地解決。」你能幫我指出一些嗎? 保持電池壽命不討論,你可以拋出一些其他方面的光。這基本上是一個連續供電的設備。 – 2010-08-03 09:44:17

+1

@Tushar Tarkas:「你能幫我指出一些嗎?」不,因爲我不知道你認爲通過在Android上使用Web服務器解決了什麼技術問題。 – CommonsWare 2010-08-03 09:56:12

3

在您的應用中嵌入Web服務器有很好的理由。可能不是最好的方式,但是當Android綁定你的手時你必須這樣做。例如,您想在運行時即時解密視頻並使用媒體播放器播放視頻。 Android媒體播放器不允許我將其作爲來自解密管道的內存流。

在這種情況下,一個解決方案(幫助我認爲別人請!)是嵌入一個Web服務器,將提供流 - 因爲Android確實接受來自URL的流!

另一種解決方案是將一些本地庫移植到其上併爲其寫入一個JNI接口。太多的工作和充其量不穩定。

重點是,有足夠有效的理由。

2

您需要解密視頻或提供內容,您可以考慮自己編寫一個簡單的Web服務器,它可以專門處理您的應用程序的需求而不會出現任何臃腫。添加現有的Web服務器或Web容器可能超過您的需要。儘管如此,它非常依賴於您的應用程序的需求。