Android ADK란?
Android ADK(Accessory Development Kit)
저는 구글 개발자 세미나인
‘Google I/O 2011'에서 흥미로운 주제 중 하나인 ADK에 대해서 이야기 하고자 합니다.
안드로이드폰에서 사용하는
주변기기들을 개발하는 Open Accessory Development Kit(이하 ADK)이다. 다시 말해 ADK는 안드로이드 운영체제를 탑재한 장치의 주변장치를 만들 수 있는
하드웨어 및 소프트웨어를 말합니다.
구글의 오픈 액세서리
API와 개발 키트를 활용하면
USB 인터페이스를 활용한
안드로이드 액세서리를 개발할 수 있게 된다. 이를 위해 구글은 새롭게 공개한 허니콤 3.1과 진저브레드 2.3.4
USB 호스트 기능을 추가했으며, 앞으로는 USB 외에도 블루투스 페어링
기능도 추가될 예정입니다.
Android ADK Robot
http://www.youtube.com/watch?v=Ub7newiu930&feature=player_detailpage
http://www.youtube.com/watch?v=GHQjRjJYc-Q&feature=player_detailpage
Android ADK를 이용한 미로 찾기 게임
http://www.youtube.com/watch?v=zLUmH479Cqc&feature=player_embedded#t=0s
위와 같이 수십 개의
모터를 연결하여 거대한 미로 게임을 안드로이드 태블릿을 기울기로 조절하는 장면을 보면, 단순히 게임에 적용뿐만 아니라 가정 곳곳에서도 사용 할 수 있을
것 같습니다.
모토로라에서는 자체적으로
웹톱 애플리케이션(Webtop Application)과 랩탑 독(dock)이라는 도킹 스테이션 개념을 탑재하여 많은 인기를 얻은 바 있습니다.
구글의 오픈 액세서리
API와 개발 키트를 활용하여
이를 지원하는 모든 안드로이드 폰에서 호환되는 안드로이드 액세서리를 만나게 될 것입니다.
안드로이드폰이나 태블릿은
PC와 동기화시키기 위해
USB 연결 포트를 사용합니다. 이 연결 포트를 사용해
손쉽게 다른 장치를 연결할 수 있습니다. 하지만 여기서 주목해야 할 것은 이러한 연결 장치를 개발할 때도 구글은 오픈(Open)이라는 방법을 사용했다는 것입니다.
안드로이드가 오픈소스로
공개되듯 주변장치를 개발할 때 필요한 각종 하드웨어 및 소프트웨어 정보를 다 공개해 자유롭게 개발할 수 있습니다. 라이센스 비용의 문제로
이러한 구글의 오픈정책은 안드로이드의 부가 장치를 만드는 업체에게 안드로이드폰이나 태블릿을 하나의 제어장치로서 쉽게 사용할 수 있게 만드는 것입니다.
여기서 생각할 점은
USB에서 악세서리가 USB 호스트 기능을 하고
안드로이드 단말이 USB 디바이스로 연결되는 구조라는 것입니다.
따라서 아두이노를 안드로이드에
장착하기 위해서는 아두이노에 USB 호스트 실드가 장착되어 있어야 하며, 보통 ADK 개발을 위한 보드들이 점점 많아지고 있습니다.
또한 아두이노를 안드로이드에서
사용하기 위해서는 구글의 안드로이드 부가 장치 통신 프로토콜(Android accessory
communication protocol)을
통하여 안드로이드 운영체제를 탑재한 장치에서 USB 호스트를 탑재하거나 ADK와 연결되어 동작하는 모드에서 사용할 수 있는 API 클래스를 지원하고 있습니다.