정보공간_1

Android ADK란? 본문

IT 놀이터/IT Storehouse

Android ADK란?

알 수 없는 사용자 2011. 10. 15. 17:47

Android ADK(Accessory Development Kit)

안녕하세요. 저는 광주멤버십 20-2기 유성기입니다.

 

저는 구글 개발자 세미나인 Google I/O 2011'에서 흥미로운 주제 중 하나인 ADK에 대해서 이야기 하고자 합니다.

 

안드로이드폰에서 사용하는 주변기기들을 개발하는 Open Accessory Development Kit(이하 ADK)이다. 다시 말해 ADK는 안드로이드 운영체제를 탑재한 장치의 주변장치를 만들 수 있는 하드웨어 및 소프트웨어를 말합니다.

 

구글이 소개 한 ADK는 주변장치와 USB를 통한 인터페이스 방법 중 하나입니다. 구글은 안드로이드 운영체제를 탑재한 장치에 USB 호스트나 USB OTG 같은 장치만 있으면 누구나 사용할 수 있는 규격을 정하고 그렇지 않은 경우에는 ADK를 사용해 구현하는 규격도 마련하였습니다.

 


 

구글의 오픈 액세서리 API와 개발 키트를 활용하면 USB 인터페이스를 활용한 안드로이드 액세서리를 개발할 수 있게 된다. 이를 위해 구글은 새롭게 공개한 허니콤 3.1과 진저브레드 2.3.4 USB 호스트 기능을 추가했으며, 앞으로는 USB 외에도 블루투스 페어링 기능도 추가될 예정입니다.

 

다음 동영상들을 통해 구글이 구글 IP 기조연설에서 시연한 데모를 통해 오픈 액세서리 API의 활용성을 가늠해 볼 수 있습니다.

 

Android ADK Robot

http://www.youtube.com/watch?v=Ub7newiu930&feature=player_detailpage


 

Android Open Accessory demonstration(Piano)

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

 

위와 같이 수십 개의 모터를 연결하여 거대한 미로 게임을 안드로이드 태블릿을 기울기로 조절하는 장면을 보면, 단순히 게임에 적용뿐만 아니라 가정 곳곳에서도 사용 할 수 있을 것 같습니다.

 

안드로이드의 경우에는 3백 개가 넘는 안드로이드폰에서 호환되는 액세서리를 만드는 것은 쉽지 않은 일입니다. 구글의 레퍼런스폰을 제외하곤 각각의 안드로이드 단말기 제조업체에서 직접 액세서리를 제공하거나 서드파티에서 일부 히트 제품에만 호환되는 액세서리를 개발하는 정도입니다.

 

 


 

모토로라에서는 자체적으로 웹톱 애플리케이션(Webtop Application)과 랩탑 독(dock)이라는 도킹 스테이션 개념을 탑재하여 많은 인기를 얻은 바 있습니다.

 

구글의 오픈 액세서리 API와 개발 키트를 활용하여 이를 지원하는 모든 안드로이드 폰에서 호환되는 안드로이드 액세서리를 만나게 될 것입니다.

 

안드로이드폰이나 태블릿은 PC와 동기화시키기 위해 USB 연결 포트를 사용합니다. 이 연결 포트를 사용해 손쉽게 다른 장치를 연결할 수 있습니다. 하지만 여기서 주목해야 할 것은 이러한 연결 장치를 개발할 때도 구글은 오픈(Open)이라는 방법을 사용했다는 것입니다.

 

안드로이드가 오픈소스로 공개되듯 주변장치를 개발할 때 필요한 각종 하드웨어 및 소프트웨어 정보를 다 공개해 자유롭게 개발할 수 있습니다. 라이센스 비용의 문제로 이러한 구글의 오픈정책은 안드로이드의 부가 장치를 만드는 업체에게 안드로이드폰이나 태블릿을 하나의 제어장치로서 쉽게 사용할 수 있게 만드는 것입니다.

 

ADK는 오픈 하드웨어 프로젝트인 아두이노 장치를 사용합니다. 아두이노는 오픈소스에 기반을 둔 전자 프로토 타이핑 플랫품으로, 하드웨어에 대하여 깊은 지식이 없어도 다양한 애플리케이션을 구축 할 수 있다는 게 가장 큰 장점입니다.

 


 

여기서 생각할 점은 USB에서 악세서리가 USB 호스트 기능을 하고 안드로이드 단말이 USB 디바이스로 연결되는 구조라는 것입니다.

 

따라서 아두이노를 안드로이드에 장착하기 위해서는 아두이노에 USB 호스트 실드가 장착되어 있어야 하며, 보통 ADK 개발을 위한 보드들이 점점 많아지고 있습니다.

또한 아두이노를 안드로이드에서 사용하기 위해서는 구글의 안드로이드 부가 장치 통신 프로토콜(Android accessory communication protocol)을 통하여 안드로이드 운영체제를 탑재한 장치에서 USB 호스트를 탑재하거나 ADK와 연결되어 동작하는 모드에서 사용할 수 있는 API 클래스를 지원하고 있습니다.

 

다음에는 이 API 클래스에 대해 알아보며, 본격적으로 안드로이드 ADK 개발키트를 활용하여 좀 더 재미난 시간이 되었으면 합니다.