[問題] 長時間的藍芽接收與繪圖
小弟最近寫APP遇到了嚴重瓶頸
來此版尋求各位的協助
最近在寫一個APP是關於藍芽接收與繪圖
目的要讓此應用程式長時間執行(5小時)
但在程式執行大約在20分鐘(時間不一定)會發生應用程式不正常關閉
這個問題困擾一個多月了一直找不出答案
詳細內容如下
目的:長時間由Android智慧型手機透過藍芽接收遠端硬體資料並繪圖
遠端硬體有兩個傳輸模組:
1. 每秒傳送250個封包,每個封包15個Bytes
2. 每秒傳送60個封包,每個封包7個Bytes
其中透過MCU使其由一個Serial Port送至藍芽模組發送
而在後端接收是由智慧型手機接收
藍芽接收方面
是用AsyncTask加上While迴圈去讀取藍芽接收buffer的資料並存入預設的buffer
接著會透過While以及Switch找標頭檔並將資料做分離再分別存入不同的buffer
當buffer滿了以後會從頭開始存,所以不會有overflow的問題
繪圖方面
是用View中的ondraw去畫的(有在裡面做一些簡單的計算)
並由Handler去觸發invalidate()讓畫面可以更新
再透過一個AsyncTask去控制線程睡眠時間(畫面更新速率)
內容大致如上
程式一開始執行並在15~20分鐘內執行一切正常
但大約在20分鐘左右繪圖畫面顯示的資料就像是被壓縮了一樣
過沒多久就會當掉,發生應用程式不正常關閉
一直找不出問題,如果各位有甚麼想法都可以提出給小弟參考
拜託各位幫忙了> <...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.84.167
→
03/25 18:48, , 1F
03/25 18:48, 1F