리눅스 안드로이드 SDK 업데이트

안드로이드 SDK는 명령창을 통해 업데이트 할 수 있다.

G:\Android\sdk\tools>android update sdk --no-ui

를 이용하면, UI를 띄우지 않고 서버에 최신 버전이 있는지 확인 후 데이터를 업데이트 한다.

명령창을 통해 SDK 업데이트 UI를 띄울 수도 있다.

G:\Android\sdk\tools>android update sdk

위와 같이 ‘–no-ui’ 옵션을 제거하면 UI를 띄울 수 있다.

참고

cannot.find.zip.align= The zipalign tool was not found in the SDK.

SDK에 Android L과 함께 build-tools와 tools도 20.x 대로 업데이트가 되었다. 최신으로 업데이트 하고 나니 아래와 같은 에러가 뜬다.

(참고로 아래 에러는 인텔리제이 13 CE에서 나온 에러다)

zipalign내용은 zipalign 툴이 SDK 안에 없다며 SDK를 최신으로 업데이트 해보거나 zipalign을 수동으로 앱에 적용하라는 거다. 폴더를 확인해보면 tools\zipalign.exe가 안보이고 build-tools\20.0.0\zipalign.exe 안에 있다.

해결은 간단한데, build-tools\20.0.0\zipalign.exe을 복사해서 tools\ 폴더 안에 넣어주면 된다.

 

왜 개발도구(SDK)를 제공해야 하는가?

이 글을 쓰는 현재 삼성의 기어 핏은 자사의 주력 플랫폼인 안드로이드 외 아이폰 등과 연동할 수 있는 개발 도구는 제공되지 않는다. 주력 플랫폼의 개발도구를 먼저 내놓는 것은 있는 일이지만, 주력 플랫폼의 개발도구‘만’ 내놓는 것이 옳은지는 전략적으로 생각할 필요가 있다.

이에 참고할만한 사례들을 보자면, 컴퓨터 역사에서 개발도구를 제대로 지원하지 못해 실패한 유닉스의 경쟁자들이 있다.

하드웨어의 성능과 컴파일러 기술이 운영체제의 코드 전부를 C로 만들 수 있을만큼 성숙되기 전까지 운영체제는 어셈블러로 만들어졌다. 이 때는 새 하드웨어가 나올 때마다 같은 기능을 가진 소프트웨어를 새로 개발(일종의 포팅)했으며 이에 대한 시간과 비용도 상당했다. 유닉스가 등장할 때 쯤 어셈블러로 작성하지 않아도 될만큼 하드웨어의 성능이 충분히 좋아졌다. 데닉스 리치(Dennis Ritchie)가 만든 C와 함께 서로 다른 하드웨어에서도 개발도구만 옮기면 같은 모습, 같은 기능을 제공할 수 있게 된 것이다. 그에 따라 유닉스가 나올 때 쯤 개발 중이던 어셈블러 기반의 기존 운영체제들은 시장을 점유하고 있었음에도 다른 플랫폼으로의 이동이 어려워 점차 사라지게 되었다.

(위의 경우는 컴파일러를 말하는 것이지만, 개발도구의 일부로 컴파일러가 포함된다는 점에서 개발도구 때문이라고 볼 만하다.) 이처럼, 개발도구를 제공하지 않는다면 소스가 다른 플랫폼으로 돌아다닐 수가 없기 때문에 사용자를 확장하기 어렵다. 물론 유닉스가 훌륭한 운영체제이기 때문에 인기가도를 달렸던 것이겠지만, 경쟁 운영체제의 이식성이 매우 떨어지는 점이 유닉스의 성장에 도움이 되었던 것은 틀림없다.

이번에는 개발도구를 제대로 지원하는 안드로이드 사례를 보자.

안드로이드는 사용자가 온라인으로 접근이 가능하도록 android.com이라는 사이트를 운영하고 있다. 이 사이트에서 개발에 관련된 문서와 개발도구, 그 외에 필요한 것들을  다운받을 수 있도록 제공한다. 이 안드로이드 개발도구는 통상의 컴파일러나 디버거 이외에도 아이콘 제작 툴, 단말 에뮬레이터, 최적화 툴, 데이터 베이스 브라우저 등도 제공한다. 그리고, 통합 개발 툴(IDE)와 개발도구(SDK)를 합친 개발환경을 제공하고 있다. IDE도 이클립스 기반과 인텔리제이 기반으로 제공하고 있어 개발자들이 자기 취향대로 개발 환경을 선택할 수 있고, 둘 다 개발도구와 잘 돌아간다. 또한, 이 개발 도구들은 주류 운영체제인 윈도우즈, 맥, 리눅스에서 모두 잘 돌아간다.

안드로이드 만큼 개발에 있어 다방면으로 지원하는 경우는 처음이지 않나 싶다. 이를 통해 현재 모바일 시장에서 절대적인 영향력을 갖고 자기들의 로드맵을 추진해나갈 수 있는 힘을 갖게되었다.

이 처럼 개발도구는 개발자를 포함한 사용자들을 얼마나 자기진영으로 끌어들일 수 있느냐에 지대한 영향을 미친다. 애플처럼 의도적으로 다른 환경에 적합한 개발환경을 확장/배포 하지 않는 전략도 있을 수 있으나, 이것은 예외적인 경우가 아닐까 싶다. 기어핏과 같이 헬스 시장에 최초 진입자로서 입지를 구축하고 싶은 경우라면 다양한 환경과 편리한 개발 도구를 제공하는 게 올바른 선택이라 생각한다.

참조

  • 오픈소스 1권 – 한빛출판사
  • d.android.com