14초 화면.png

그림 1.x좌표가 비슷하도록 멀티 터치를 했을 때 x 좌표가 하나로 고정되는 현상

 

터치 두개.png

그림 2. 멀티 터치를 했을 때 실제 터치의 위치와 핸드폰에서 인식하는 위치가 엇갈리는 경우.

 

 

이 문제에 대해서 사용자끼리는 의견이 양분된걸로 알고있습니다.

이 문제에 대해서 HTC와 TGS는 소프트웨어 문제일 것이라고 추측한다고 알고 있습니다.

저는 이 문제에 대해 호기심이 발동해서 저 나름대로 테스트를 해봤습니다.

 

처음에는 소프트웨어 문제인 줄 알았습니다.

아.. 내가 좋아하는 구글이.. 이런 바보같은 프로그램을 만들다니..

...?

이런 생각에서, 구글이 프로그램을 이런식으로 만들었을리가 없잖아? 라는 생각으로 바뀌었습니다.

 

궁금하니까 테스트를 해보았어요.

제 주변에 있는 안드로이드 기기를 구해서 테스트 해보았습니다.

 

기기는 다음과 같습니다.

---기기명(안드로이드 버전)---

1. 넥서스원(2.2.1)

2. 갤럭시 플레이어(2.2.1)

3. 안드로원(2.2)

4. 이자르(2.? 이건 후배꺼 써봤는데 버전을 모르겠네요)


이렇게 총 4개의 기기를 만져봤습니다.

 

멀티 터치 테스트에 사용한 어플은 "Multitouch Visualizer Test" 입니다.

 

넥원에서는 이렇게 되죠?
http://www.youtube.com/watch?v=6O_8M71KPFE (누군가가 올려놓은 동영상..)

넥원에서는 아시다시피 터치하고 있는 가로 세로가 동일한 선상에 놓이게 되면 인식이 바보가 됩니다.

첨부한 그림을 보면, 가로둘이 2개, 세로줄이 한 개 입니다.

다시 말하면 두 개의 x좌표가 근접할 시에 아예 동일하게 인식해버리는 문제가 발생합니다.

두 개의 터치의 가로나 세로의 선이 근접할 때, 아예 붙어버려서 인식하는건 넥서스원 사용자라면 대부분 아실거예요.

 

또는 동영상의 6초에 보이는 것 처럼 (첨부 사진2), 실제로 누른 것과, 화면에 인식한게 x좌표든 y좌표든 반대가 되는 현상이 나타납니다.

뭔가 값이 꼬인것 처럼 보입니다.

 

다른 안드로이드 기기도 이런 문제가 있을까요? 궁금합니다.

그래서 이자르로 테스트 해보았습니다.

 

이자르에서도 두 개의 점까지 인식이 됩니다.

하지만 두 개의 점이 동일한 선 상에 놓이게 됐을 때 서로 간섭한다던가 하는 증상이 없습니다.

두 개의 점이 완전히 독립해서 부드럽게 인식합니다.

이자르에서는 2개의 터치를 인식하는데 문제가 없습니다.

 

오호라?

안드로원(2.2)으로 테스트해보았습니다.

 

두 개의 점까지 인식이 됩니다. 이 녀석은 두 개의 터치가 가까워지면, 움직이는 녀석이 고정되있는 점을 밀어냅니다.
마치 당구공처럼요.. -_-;

넥서스원처럼 인식이 꼬이는 상황을 방지하기위해 하드웨어에서든 소프트웨어에서든 처리를 하는 것 같습니다.


갤플로 테스트를 해봤습니다

갤플은 터치가 5개까지 지원됩니다.
두 개의 터치까지 지원되는 안드로이드의 터치 프로그램을 5개까지 인식되도록 하기 위해서는 당연히 손을 댔을겁니다.
5개의 터치가 서로 간섭없이 잘 동작합니다.


(..이건 상관없지만) 아이폰으로도 테스트 해봤습니다.
터치가 5개까지 지원되고, 서로 간섭없이 잘 동작합니다.

 

이렇게 서로 다른 안드로이드 기기 4개로 터치 테스트를 해봤습니다.
추측컨데 그 중 3개의 기기는 같은 소프트웨어를 사용했을테구요. 갤플은 특별히 손을 댔을 것입니다.

 

그럼에도 다 다른 반응을 보이는 것은 왜 일까요?

 

저는 갤플을 제외한 3개의 기기에서 사용하는 멀티터치관련 소프트웨어가 같고 하드웨어(터치패널)가 다르다 라고 가정해볼게요.


사용자가 스크린을 터치합니다. 핸드폰에서는 사용자의 정전기를 감지해서 그 위치 값을 소프트웨어에 전해줍니다.
멀티터치 테스트 프로그램은 핸드폰으로부터 전달받은 좌표 값을 프로그램에서 보여줍니다.

 

(이번에는 하드웨어, 소프트웨어 관점에서)

하드웨어로 감지한 값은 소프트웨어로 전달되고, 그 값을 이용해서 정해진 데이터 처리 과정을 수행합니다.

 

이상합니다.

소프트웨어가 같은데 결과가 다르게 나오는 듯한 느낌입니다.

왜그럴까요?
애초에 값을 전달하는 매개체인 하드웨어가 값을 제대로 전달하지 못하기 때문입니다.


하드웨어에서 소프트웨어로 값을 전달해주기 전에 사용자가 터치한 값을 제대로 인식하지 못했다라고 하는게 더 정확한 표현이 될 것 같아요.

 

넥서스원에서는 2개의 터치가 서로 근접할 때 x좌표 또는 y좌표를 헷갈려해서 그림 2와 같은 결과가 나오는 것 같습니다

왜 하필 넥서스원에서만..??


손가락으로 핸드폰을 터치했을 때 그 위치는 점으로 인식되는게 아니라 동그란 영역으로, 손가락이 직접 터치 패널에 닿는 만큼 인식이 됩니다.

넥서스원에서는 그 인식되는 부분이 X축이나 Y축에서 겹쳤을 때 위치정보가 엉망 생성되고 그 엉망인 정보가 소프트웨어로 보내진다고 생각합니다.

 

이 이론은 확인할 수 있는 방법이 있어요.


멀티 터치 테스트 프로그램에서 두 개의 터치가 서로 X축, Y축이 간섭되지 않는 위치에서 빙빙 돌려보면 손가락이 움직이는 대로 반응하는걸 확인할 수 있습니다.


이로부터 넥서스원에서 사용하는 소프트웨어는 2개의 터치 값이 제대로 전달되었을 때, 오류없이 동작하는 잘 만들어진 프로그램이라는 걸 알 수 있습니다.

 

"핀치 투 줌이니까 멀티터치는 원래 안된다" 라고 말씀하시면 별로 할 말은 없지만..


두 개의 터치가 서로 간섭이 없을 때에는 핀치 투 줌 주제에 멀티터치가 잘 되긴 합니다.

 

왜 이렇게 됐을까요.. 음..

제품을 만들기 전 테스트 기기에서 테스트를 제대로 안했을까요?


아마 샘플 기기를 만들 때와 양산과정에서 만든 기기의 터치 패널이 다르지 않았을까 라는 추측을 해봅니다.


아마도 샘플 기기에서는 문제 없이 동작했을거예요. 무리없이 통과가 됐을겁니다.

그럼 이제 제품을 팔기 위해서 양산을 할 때입니다. 이 때는 CP (Cost Performance, 가격대 성능비)를 무시할 수 없습니다.
아마도 CP 때문에 좀 더 싸구려 패널 쓰면서 사용자가 불편을 겪지 않는건가라는 추측을 해봅니다.

대충 사용해보니 잘 동작했겠지요.

넥서스원, 싱글터치는 그럭저럭 동작합니다.

(그래도 여전히 터치오류는 존재합니다.)

뭐.. 제 개인적인 추측일 뿐이예요 -_-; 진실은 저 너머에.. HTC만이 알겠지요.


마찬가지로 안드로원 말이예요.
2개의 터치가 서로 간섭될 때, 넥서스원같은 오류를 범하지 않기 위해 먼저 인식된 터치를 밀어버리는;;


그러한 처리를 터치 패널자체에서 수행하는게 아닌가..하고 생각합니다.

 

이자르는 위의 두 핸드폰보다는 조금 좋은 패널을 썼기 때문에 사용자가 터치 한 값을 제대로 소프트웨어로 전달하는게 아닐까 생각합니다.

 

그래서 전 넥서스원에서 멀티 터치가 제대로 안되는게 하드웨어 문제라고 생각합니다.

터치가 3개 4개 많이 되는건 바라지도 않아요,

두 개면 충분합니다.

그런데 이런 상태로는 뭐..

아이폰에서 흥하고 있는 TAP SONIC 같은 류의 게임..
멀티터치가 필요한 게임은 넥서스원으로 할 수 없다는 슬픈 결론이 도출되네요.

 


 

말이 기네요...;;

 

읽어주셔서 고맙습니다.

 

..htc로 메일보내볼까요?