대학교 교과목 프로젝트로 안드로이드 앱을 코딩하는 중입니다.


우선 개념증명을 위한 센서-블루투스 연계를 하고있는중인데 여기서 한가지 문제가 발생합니다.



우선 기본적으로 모든 기기는 1개의 호스트에 블루투스로 연결되어있으며 최대 6개 기기의 연결까지 호스트가 받아들입니다.


모든 기기는 센서를 이용하여 자신의 속도를 계산하고 그 값을 100밀리초마다 호스트로 전송을 하며 호스트는 마찬가지로


일정 주기로 연결된 모든 클라이언트 디바이스에 '자신이 가지고있는 모든 클라이언트의 속도 정보'를 전송합니다.


즉, 호스트 외 3개의 기기가 있다면



호스트는 - 3개의 연결 정보를 지니고있으며 일정주기로 클라이언트에서 오는 속도 정보를 ArrayList에 저장합니다. 이 값은 계속 갱신됩니다.


클라이언트 - 호스트와의 연결정보만을 지니고있으며 일정주기로 호스트에서 오는 내용을 파싱하여 ArrayList에 저장합니다.



그리고 이제 문제가 되는게 바로 저 ArrayList에 있는 값을 TextView에 표현할 떄 인데요


우선 위의 예시처럼 1+3 이라면


Device 0: ~~~~

Device 1: ~~~~

Device 2: ~~~~

Device 3: ~~~~

Device 4: Not connected

Device 5: Not connected

Device 6: Not connected


이렇게 뜨는것을 의도하였습니다.


각 줄은 하나의 TextView이니 총 7개의 TextView로 구성되어있습니다. 그리고 이론적으로라면 100밀리초마다 저 값들은


새로운 값을 받아서 갱신되야되구요.


이걸 실제 기기(미라크, 넥서스원, 갤스2, 옵큐)에 넣고 구동시킬 경우에 초반에 잠시 작동하다가 바로 에러를 내면서


튕기는데요



이 때 혹시나 해서 저 TextView를 1개의 TextView로 변경하였을 때는 에러 없이 작동하였습니다.


그래서 문듯 든 생각이 너무 많은 TextView를 하나의 화면에 넣고 급격하게 바꾸려는 경우에 문제가 발생한다고 생각되었습니다.



그렇다면 이 한계치는 기기에 따라 차이가 있나요? 아니면 안드로이드 OS자체가 가지고 있는 한계치에 따른 차이인가요?