2013-07-08 105 views
1

我有三個android設備,三星Galaxy Note 10 HTC Desire C和索尼Xperia E.以及我有一個服務,在這些設備上的特定TCP端口上偵聽。我的所有設備的WIFI策略都設置爲「始終打開」,我的服務也獲得了WIFI_MODE_FULL和PARTIAL_WAKE_LOCK,因此CPU和WIFI總是在那裏。經過一段時間,當我想從服務器連接到這些設備時,發生了一些不好的事情。Android奇怪的跨設備行爲

  • Samsung Galaxy Note設備的行爲正常。
  • HTC慾望變得不可訪問
  • 索尼裝置也可達

我Ping探測這些設備以查看它們是否是有或沒有。結果是:

  • 三星設備總是立即正常響應ping請求。
  • 宏達電和索尼設備在一段時間內無法訪問,有時它們會作出響應,但即使其屏幕處於開啓狀態(ping的時間列有時大約爲5000毫秒)也會有很長的延遲。

我知道有一些問題與WIFI政策:

但是,爲什麼平時間是這樣的?即使在屏幕上?我知道屏幕熄滅時CPU時鐘會減少,即使您持有喚醒鎖。這會導致處理TCP連接的服務代碼中出現問題嗎?

回答

1

製造商希望能夠吹噓有最長的電池壽命。爲此,他們會將現有的功能發揮到極致,以延長電池續航時間。

是的,它可能會導致問題,它確實會導致問題,但這是你應該防守編程的許多原因之一。換句話說,請確保您的應用程序已準備好處理丟棄的數據包和可能更長的延遲。

希望你的問題不是完全修辭,而是你真的想要一個答案。

+0

但這並不回答我爲什麼會發生這種情況的問題?由於CPU頻率的變化? (或者有其他原因)。 CPU頻率是否會導致服務器代碼無法正常工作? – gst

+0

不,CPU頻率不應導致本地服務器代碼無法正常工作。再次,我認爲這主要是電池保護優化問題。例如,在打開屏幕時降低CPU時鐘的情況下,我相信這是用於屏幕的電池電量,它將從CPU中轉移出去。 –

+0

如果是因爲節省電池,爲什麼即使在HTC和索尼設備中打開屏幕,ping時間也總是很糟糕? Ping是一個IO綁定的活動,並且不會佔用CPU,但即使在Xperia和HTC設備上屏幕始終處於ping時間時,它也非常高!這很奇怪。這可能是由於Wifi假脫機模式,但在正常情況下以及打開屏幕時此模式不應啓用。無論如何謝謝你的迴應。 – gst