'Android'에 해당되는 글 4건

  1. 2010/04/06 [안드로이드 이야기] 안드로이드란 무엇인가? (8)
  2. 2010/03/17 삼성전자의 안드로이드 상표권 전용, 그리고 바다 (16)
  3. 2009/09/22 Android의 3D에 대하여 (2)
  4. 2009/03/23 구글의 안드로이드(Android)에 대한 짧은 생각들 (7)

[안드로이드 이야기] 안드로이드란 무엇인가?

|
안드로이드에 대하여 익히고 공부하는 것들을 정리하기 위하여 [안드로이드 이야기]를 연재할까 합니다.
언제 얼마큼 연재할지 모르겠지만~ 제가 알고 있는 지식들을 정리하여 여러분들과 함께 나누기 위한 내용을 중점적으로 다루겠습니다.

첫번째로 안드로이드(Android)란 무엇인가에 대한 내용을 다루어 보겠습니다.



안드로이드란 무엇인가?(What is Android?)

이 질문에 대한 가장 정확한 답은 http://www.android.com/about/ 에서 찾을 수 있습니다. 공식적인 안드로이드 사이트이자 Android에 대한 가장 신뢰할 수 있는 정보를 제공하는 사이트이기 때문입니다. 아울러 http://developer.android.com/guide/basics/what-is-android.html 에서 정의된 내용을 바탕으로 안드로이드에 대한 정의를 내리는 것이 좋다고 생각됩니다.

안드로이드(Android)는 OHA(Open Handset Alliance)에서 개발된 운영체제(OS)와 미들웨어(Middleware) 및 핵심 모바일 어플리케이션을 포함한 모바일 기기를 위한 소프트웨어 스택이라고 할 수 있습니다.


안드로이드는 공개되어 있습니다.(Open)
안드로이드는 모든 핸드셋에 제공할 수 있는 멋진 모바일 어플리케이션을 개발자들이 창조할 수 있는  가장 최고의 환경을 제공하였습니다.
이러한 환경은 완전히 공개되어 있습니다.

예를들어, 사용자를 위한 더욱 응집되고 풍부한 경험이 녹아있는 어플리케이션을 창조할 수 있도록, 전화를 걸거나, 문자를 보내거나, 카메라를 사용하는 등의 핸드폰의 핵심 기능을 호출하여 사용할 수 있습니다.

안드로이드는 공개된 리눅스 커널(Linux Kernel)을 기반으로 하고 있습니다.
더욱이, 모바일 환경에서 하드웨어 리소스와 메모리 최적화를 위하여 설계된 커스텀 가상 머신을 사용하고 있습니다.

안드로이드는 오픈 소스(Open Source) 입니다.
즉, 오픈 소스를 이용하여 새로운 최신 기술들을 바탕으로 자유롭게 확장할 수 있습니다. 이를 통하여 개발자 커뮤니티들이 함께 혁신적인 모바일 어플리케이션을 구축하듯이 안드로이드 플랫폼은 지속적으로 진화할 것입니다.


어플리케이션은 동일하게 창조되었습니다.(All applications are created equal)
안드로이드는 핸드폰의 핵심 어플리케이션이든 써드파티(third-party) 어플리케이션이든 구분하지 않습니다. 광범위하게 사용자에게 제공되는 어플리케이션과 서비스들은 핸드폰의 기능에 동일하게 접근할 수 있도록 구성되어 있습니다.

안드로이드 플랫폼을 사용하는 기기에서 사용자들은 취향에 따라 모든 것들을 정의할 수 있습니다.

사용자들은 핸드폰의 홈스크린(Homescreen)과, 다이얼 스타일 및 어떠한 어플리케이션이라도 교체할 수 있습니다. 심지어 모든 사진들을 볼 때 사용하는 사진 보기 어플리케이션을 선호하는 것으로 변경할 수 있습니다.


어플리케이션의 경계가 존재하지 않습니다.(Breaking down application boundaries)
안드로이드는 새롭고 혁신적인 어플리케이션을 구축할 수 있는 경계가 존재하지 않습니다.
예를 들어, 개발자들은 핸드폰에 있는 사용자의 연락처, 일정, 위치 정보등과 같은 개인적인 정보를 웹에서 조합하여, 사용자에게 더욱 유용한 경험을 제공할 수 있습니다. 즉 안드로이드 하에서, 개발자는 사용자의 친구가 주변에 있다면 만날 수 있는 기회를 제공하기 위하여 알려주는 어플리케이션을 구축할 수 있습니다.


빠르고 쉬운 어플리케이션 개발(Fast & easy application development)
안드로이드는 풍부한 어플리케이션을 구축하는데 사용할 수 있는 광범위한 유용한 라이브러리들을 제공합니다.
예를 들어, 안드로이든 기기의 위치를 알 수 있또록 지원하여, P2P 기반으로 통신할 수 있는 풍부한 Social 어플리케이션을 지원합니다.

덧붙이면, 안드로이드는 높은 생산성과 깊은 통찰력을 바탕으로 개발자들이 어플리케이션을 제작할 수 있는 최상의 플랫폼이며, 이를 위한 툴들을 포함하고 있습니다.




이상으로 안드로이드의 정의가 끝났습니다.

흠~ 너무 안드로이드에 장점만 설명하는 정의입니다.
개인적으로 안드로이드는 풍부한 UX/UI 프레임워크가 부족하며, 아직 개발자들에게 풍부하고 생산성 높은 개발을 하기 위한 지원이 부족하다고 생각합니다.

안드로이드의 버전이 숨가쁘게 올라간 이유를 가만히 들여다 보면, 안드로이드가 그 만큼 안정성과 풍부한 라이브러리를 지원하지 못하였기 때문이라고 보입니다.

그런 면에서 아직도 안드로이드는 갈길이 멀은 스마트폰 OS 라고 판단됩니다. 다만 잠재력은 어느 스마트폰 OS 보다 높다고 판단됩니다. 아이폰의 아성을 넘을 수 있으려면, 나름 기다려야 할듯하지만요~ 아직도 컵케이크 속에 있는 안드로이드 처럼요~ (지금은 컵케이크 속에서 나왔습니다~ ^^)



다음에는 안드로이드의 주요 기능을 살펴보겠습니다.

혹시 궁금하신 점이나 부족한 점이 있으시면~ 언제든지 댓글 부탁드립니다. :-)
저작자 표시 비영리
Trackback 0 And Comment 8

Trackback http://blog.java2game.com/trackback/424 관련글 쓰기

  1. cofcat 2010/04/07 02:30 address edit & del reply

    안드로이드에 대한 좋은 정보 감사드려요^^
    안드로이드가 계속 발전하고 이제 아이폰을 따라잡을 수준까지 온 것 같네요^^
    이번에 열리는 tac 공모전에서 좋은 어플이 많이 나온다면 조금 더 따라잡지 않을까
    기대중입니다^^

    • Favicon of http://blog.java2game.com 장선진 jangsunjin 2010/04/08 13:43 address edit & del

      네~ 앞으로 안드로이드가 팍팍 달려나갈 것 같습니다.
      iPhone 과의 한판승~ 저는 두편다 응원하겠습니당~ ;-)

  2. 2010/04/12 16:52 address edit & del reply

    비밀댓글입니다

    • Favicon of http://blog.java2game.com 장선진 jangsunjin 2010/04/13 10:30 address edit & del

      하이바네님 :-)
      깊이 있는 질문 감사드립니다.

      우선 안드로이드가 Linux Kernel을 이요한 것은 원래 Google이 안드로이드 사를 인수하기 전부터 Linux Kernel을 이용한 것으로 알고 있습니다.

      이 점은 여러가지 장점이 있는데요~ 여차하면 Linux의 다양한 라이브러리를 이용할 수 있고~ 안정적인 Linux Kernel을 통하여 다양한 하드웨어를 잘 컨트롤 할 수 있기 때문입니다.

      즉, Linux의 성능이 Linux Kernel에서 나오는 것 처럼 안드로이드의 진정한 성능도 Linux Kernel에서 나온다고 할 수 있습니다.

      하지만, 모바일 프로그램은 데스크탑 Linux 어플리케이션과 다른 특성을 가지고 있습니다.

      즉, 적은 메모리, 낮은 CPU 성능, 그리고 배터리 성능 등으로 인하여 모바일 프로그램만의 특성을 담을 수 있는 그릇이 필요하게 되었습니다.

      이러한 점은 구글은 달빅이란 VM을 통하여 해결하였습니다.

      이미 Java는 JavaME를 통하여 전 세계 핸드폰에서 돌아가고 있으며, 그만큼 안정성이 입증되어 있습니다.

      즉 Java의 태생이 그러하듯이 모바일 환경에 많은 적합성을 가진 언어라는 것입니다. 이러한 점을 간파한 Google에서 한가지 문제를 삼은것은 말씀하신 성능입니다.

      부족한 성능을 끌어 올릴 수 있는 방법이 필요하게 된 것입니다.

      이에따라 기존 JavaVM을 사용하는 대신 자체 JavaVM을 만들었습니다. 사실 라이센스 문제도 한몫했구요~

      따라서 ARM 기반의 CPU에 더 적은 Instruction으로 구동할 수 있는 VM을 만들어 달빅이란 이름을 붙였습니다. 점 엉뚱한 이름이긴 합니다~ ㅎㅎ

      여튼 이에따라 기존 JavaME의 성능보다는 높은 성능을 갖추게 되었습니다. 물론 말씀하신대로 iPhone 보다는 낮은 성능을 가지고 있지만 나름 장점이 있습니다.

      우선 Java 개발자를 바로 끌어 댕길 수 있습니다. Java와 문법이 같기 때문이죠~ 그리고 오픈 소스 진영의 Java 라이브러리를 마음껏 이용할 수 있습니다.

      개발하는 쪽에서 볼때 상당히 좋은 조건입니다.

      저도 Object C를 조금 알지만~ 어려운 면이 있거든요~ 개발 장비 문제도 있구요~

      하지만 안드로이드 프로그래밍의 경우 일반 IBM PC를 통해서도 쉽게 개발이 가능합니다.

      마지막으로 성능을 계속 좋아질 것 입니다. 그것이 iPhone이건 Android이건 Windows Phone이건~

      이제 모바일 기기의 하드웨어 성능에서 더 이상 메모리 문제와 CPU 문제가 많이 언급되지 않고 있습니다. 물론 한계가 있습니다. 배터리 소모 문제도 있지만~

      더 저 전력에 더 높은 클럭을 갖춘 CPU와 더 낮은 메모리를 소비하는 RAM과 더 긴 시간을 자랑하는 배터리가 채용되고 있습니다.

      따라서 모바일 기기의 성능은 어느 순간~ 대략 내년 말쯤~ 넷북의 성능을 추월할 것 같습니다. 저장 공간 역시 SDHC의 발전 속도를 볼때 곧 128G를 갖춘 고급 스마트폰도 나올 기세입니다.

      사실 그렇게 하지 않으면 하드웨어 제조사 나름의 장점을 갖추기 힘듭니다. 이미 소프트웨어 전쟁에서 뒤쳐졌다고 보여집니다.

      여튼 저는 Android도 좋아하고 iPhone도 좋아하는 사람의 입장에서 마무리 한다면~ 성능의 문제 보다는 더 좋은 모바일 소프트웨어가 진화할 수 있는 체계를 갖춘쪽이 더 성공할 가능성이 높아 보입니다.

      결국 소비자는 좋은 소프트웨어를 바라보기 때문이죠~ 원하시는 답변이 되었는지 모르겠네요~ :-)

  3. Favicon of http://www.chszard.com 하이바네.P 2010/04/13 17:42 address edit & del reply

    심도있는 답변 감사드립니다. 아무래도 하드웨어-소프트웨어-판매사가 하나인 애플에 비해 안드로이드라는 생태계를 만들어 놓은 구글이라는 회사가 뭔가 보여줘야 할 때인 것 같네요. 이번 4월의 발표회때 잡스씨가 언급한 내용중에 팜프리나 블랙베리쪽이 맡아왔던 기업형 소프트웨어에 대한 지원까지 늘린다고 하는걸 보니, 애플의 차근차근 단계를 밟아가는 모습에 비해 안드로이드의 두드러진 모습이 없어서 아쉽습니다. 그래도 미래가 기대되네요.^^

    • Favicon of http://blog.java2game.com 장선진 jangsunjin 2010/04/14 01:59 address edit & del

      아네~ 하이바네님 :-)
      덕분에 저도 많은 생각을 하게 되었습니다. 좋은 질문 종종 올려주세용~

      굳이 안드로이드와 아이폰을 비교하지 않아도 좋을 것 같습니다. 추구하는 바가 너무도 틀립니다.

      완벽한 미와 기능성을 추구하는 아이폰과 공개되고 조금 정리가 되지 않았어도 개방성을 추구하는 안드로이드는 사실 서로 태생부터 다르며, 추구하는 바가 너무도 다릅니다.

      안드로이드 역시 Linux가 그랬던것처럼 Linux 엔진을 달고 개방성을 향해 나아가는 스마트폰 플랫폼이며, 아이폰의 경우 애플이란 회사가 독점권을 가지고 만들어가는 스마트폰 플랫폼입니다.

      당근 한 회사에서 만들면 추진력도 점있고 전체적으로 통일감도 있는 반면~ 개방성에서 떨어지구요~
      여러회사가 연합되어 있는 안드로이드의 경우 개방성은 좋아서 많이 사용되지만 너무 개방적이기 때문에 약간의 혼선과 대응이 느린 부분이 있습니다.

      모두 필요한 특성이자 부분이라는 생각이 드네요~ :-)

  4. Favicon of http://lemonflavor.tistory.com 레몬에이드 2010/04/19 16:01 address edit & del reply

    컵케이크 속 안드로보이 귀여운걸요 ^^
    좋은 정보 감사드려요!

삼성전자의 안드로이드 상표권 전용, 그리고 바다

|
삼성전자가 벤처업체인 티플렉스로부터 지난해말 "안드로이드" 상표권에 대한 전용 사용권 설정계약을 맺었다고 합니다. 이에따라 앞으로 삼성전자는 앞으로 출시되는 휴대폰과 무선전화기 등 하드웨어에 "안드로이드"란 명칭을 독점적으로 사용할 수 있다고 합니다.

전용 사용권 설정 계약은 계약 기간에 소유권과 동일한 효력을 내며 침해받을 경우 민사상 손해배상과 형사 고발도 가능하다고 합니다.

참고로 티플렉스는 2009년 6월 안드로이드에 대한 상표권 등록을 마쳤으며 삼성전자와의 계약기간은 오는 2014년 10월 30일까지라고 합니다. 따라서 이번 전용 사용권 계약으로 '안드로이드' 다섯 글자 가운데 네 글자 이상을 이용해 제품명을 지으면 삼성전자의 상표권을 침해한 것으로 간주된다고 합니다.

사실 이 로고 조차 마음대로 쓸 수 있습니다.


사실 이 뉴스를 접하면서 우리가 느끼고 있는 "안드로이드(Android)"란 용어와 삼성전자가 바라보는 "안드로이드(Android)"란 용어의 상당한 격차를 확인하였습니다.

아시다시피 많은 개발자들에게 "안드로이드(Android)"란 용어는 새로운 기회의 시장이요 공개되어 있고 평등한 새로운 모바일 플랫폼의 대명사로 알려져 있었습니다. 즉 바르고 공정한 플랫폼이라는 이미지가 "안드로이드(Android)"란 용어에 들어가 있었습니다.

이러한 공정함은 아래의 내용으로 확인하실 수 있습니다.

모든 어플리케이션은 동일하다. 안드로이드는 폰의 기본 어플리케이션이나 제3자의 어플리케이션을 차별하지 않는다. 그것이 다이얼하는것이든 또는 홈 스크린이든 교체가 가능하다.
All applications are equal. Android does not differentiate between the phone's basic and third-party applications -- even the dialer or home screen can be replaced.

출처: http://adamac.blogspot.com/2007/12/replacing-android-home-screen.html


하지만, 삼성에서 느끼는 "안드로이드(Android)"란 용어는 그저 또 하나의 마케팅 용어일 뿐이며 독점해서 사용해야 할 대상일 뿐입니다.
앞으로 커질 스마트폰 시장에서 "안드로이드(Android)"란 용어가 원래 가지고 있는 공정함과 상관 없이 그저 자신들의 이익을 독점하기 위하여 "안드로이드(Android)"란 용어를 독점할 뿐입니다.

우리나라 최고의 IT 기업이자 세계적인 기업에서 원래 의미를 생각하지 않고 자신들만의 이익을 위하여 "안드로이드(Android)"란 용어를 독점하는 행태를 보면서 과연 삼성전자가 바르고 공정한 기업인지에 대한 의구심을 품지 않을 수 없습니다.

이미 삼성전자는 AM OLED(Active Matrix Organic Light-Emitting Diode)란 기술적인 용어를 "아몰레드(AMOLED)"로 독점하면서 반사 이익을 본 적이 있습니다. AM OLED란 용어는 사실 백 라이트를 가지고 있는 LCD와 달리 자체적으로 빛을 발하는 디스플레이 기술을 총칭하는 용어입니다. 따라서 사실 독점의 대상으로 보기 어렵습니다.

하지만, 삼성전자는 이미 "아몰레드(AMOLED)"라고 선전함으로써 자신들만이 AM OLED 기술을 가지고 있는양 떠들었습니다. 웃기는 일이 아닐 수 없습니다.

이번에도 삼성전자는 "안드로이드(Android)"란 용어의 전용 사용권 설정계약을 통하여 "아몰레드(AMOLED)"와 같은 효과를 누리려고 하는 것 같습니다.
사실 삼성전자는 "안드로이드(Android)"란 모바일 플랫폼에 대하여 독점할 위치에 서있지 않음에도 불구하고 말입니다.

만약 Google이 "안드로이드(Android)"란 용어의 전용 사용권 설정계약을 하였다면, 일리있는 행동이 될 것입니다. 자신들이 만든 새로운 모바일 플랫폼에 대한 보호차원이라고 생각할 수 있습니다. 하지만 Google은 "안드로이드(Android)"란 용어를 독점하지 않았습니다. 더욱 공정하고 자유롭게 모바일 플랫폼을 공유하려는 의도라고 저는 생각합니다.

이러한 Google의 의도와 상관없이 어느 벤처기업의 웃기는 상표권 등록을 시작으로 삼성전자의 전용 사용권 설정계약까지 원래 "안드로이드(Android)"란 모바일 플랫폼이 추구하는 바와 상관없는 일들이 우리 눈앞에 펼쳐지고 있습니다.


과연 바다에 뛰어들 마음이 드나요?

만약 삼성전자가 새로 만드는 "바다(Bada)"란 모바일 플랫폼을 미국에서 누군가 상표권 등록을 이미 마쳤다면 어떠한 일이 벌어질까요? 아마 이미 삼성전자에서 했겠지만, 어느 국가에서는 "바다(Bada)"란 용어가 이미 누군가 상표권을 가졌다면 "바다(Bada)"의 의미는 어떻게 변할까요?


사실 전 삼성전자에서 새로 만든다는 "바다(Bada)"란 모바일 플랫폼에 그리 큰 기대를 하지 않습니다.
앞으로 모바일 플랫폼은 오픈소스를 기반으로 기본적으로 공정하고 평등해야만 살아 남을 수 있다고 생각합니다. 공정하고 평등한 모바일 플랫폼이 공정하보 평등한 에코시스템(Ecosystem)을 자연스럽게 만들 수 있으며, 사용자들과 많은 개발자들에게 인정을 받을 수 있다고 생각합니다.

이런 면에서 이미 삼성전자는 공정하지 못한 일들을 벌이고 있습니다.
공정하지 못한 기업에서 만드는 새로운 모바일 플랫폼인 "바다(Bada)"가 우리에게 어떤 의미로 다가올지 지켜볼 일입니다.

어느 한 기업이 주도하여 모바일 플랫폼이 성공하기란 사실상 어려운 것이 새로운 모바일 플랫폼 시장의 원칙이라고 생각되며, 그러한 원칙을 바탕으로 모바일 플랫폼을 확장해 나가야 성공할 수 있다고 생각합니다.

앞으로 별 관심을 가지진 않겠지만, "바다(Bada)"가 어떠한 모습이 될지 한번 지켜봅시다. :-(
저작자 표시 비영리
Trackback 0 And Comment 16

Trackback http://blog.java2game.com/trackback/403 관련글 쓰기

  1. Favicon of http://blog.naver.com/cucudas70 쿠크다스 2010/03/17 14:03 address edit & del reply

    직원 강매의 힘을 보여 주세요.

  2. 이형사.. 2010/03/17 15:35 address edit & del reply

    구구절절히 맞는 말씀이에요.. 삼성이 하는 짓을 보니 구글이 위대해 보이네요..

    그리고 쿠쿠다스님은 뭔 말씀이신지..

    • Favicon of http://blog.java2game.com 장선진 jangsunjin 2010/03/17 19:20 address edit & del

      네~ 감사합니다~ 이형사님~
      소프트웨어를 바라보는 기업의 문화 차이가 너무 큰 것 같습니다. 하드웨어 중심의 IT 기업의 한계가 얼마 남지 않았는데.. 참 거시기 하네요~ ;-)

  3. Favicon of http://www.wiseant.net 와이즈앤트 2010/03/17 16:14 address edit & del reply

    좋은 글 읽고 갑니다.
    그래서 제 블로그에도 소개합니다.
    감사합니다^^

    • Favicon of http://blog.java2game.com 장선진 jangsunjin 2010/03/17 19:21 address edit & del

      아네~ 소개 감사합니다. 와이즈앤트님~
      마음 놓고 소개해주세용~ :-)

  4. cofcat 2010/03/17 22:20 address edit & del reply

    안드로이드가 산으로 가는 건가요????
    이상한 쪽으로 싸우네요....ㅜㅜ
    좋은 어플을 많이 내놓기 위해서 좀 싸워줬으면 하는데.....
    안드로이드가 좋은 쪽으로 발전하길,,,

    • Favicon of http://blog.java2game.com 장선진 jangsunjin 2010/03/18 10:17 address edit & del

      그러게요~ cofcat님~ :-)
      여러모로 이상한 모양이 되었네요~ 이런 부분으로 안드로이드에서 우위를 점하기 보다는 안드로이드용 킬러 어플을 만들어서 경쟁했으면 좋겠습니다.

  5. 음.. 2010/03/18 00:00 address edit & del reply

    글쎄요. 삼성입장에서는 상표 사용권을 구입한 건 너무나도 당연한 것 같은데요.
    안드로이드폰을 준비하면서 안드로이드라는 이름을 사용할 수 있나 확인을 하였겠고,
    확인해보니 다른 업체에세 그 이름을 갖고 있어서 사용을 할 수가 없다면
    당연히 사용권을 구입하는 게 맞는 거죠.
    무단으로 이름을 사용하였다가 나중에 소송에 걸리면 그게 더 바보 같은 짓 아닌가요?

    LG는 이번 안드로이드폰 이름을 안드로이드-1이라고 하려고 했다가
    상표권 등록되어 있는 걸 출시 바로 전에 알고 이름을 바로 안드로-1으로 바꿨다죠.
    LG 같이 아무런 준비도 안하고 있다가 나중에 쓰고 싶어도 못쓰는 바보 같은 짓을 범하느니
    미리 준비하는 건 당연한 거라고 봅니다.

    그리고 삼성에서 그리 일찍 준비한 것도 아닌데요.
    작년 12월인가 그렇다던데, 다른 기업에서 충분히 먼저 상표 사용권을 구입할 수 있었습니다.
    하지만 아무도 안했던 겁니다.

    • Favicon of http://blog.java2game.com 장선진 jangsunjin 2010/03/18 10:28 address edit & del

      안녕하세요~ 삼성쪽에서 생각하시는 분이시군요~ ㅎㅎㅎ
      안드로이드 용어에는 무단이라는 개념이 없었는데~ 우리나라에서 새로 만들어진거죠~
      앞으로 바다(Bada)가 나오면 상표권 등록을 한 쪽에서 모두 바다를 사용하지 못하도록 하는게 당연한지 모르겠네요~
      삼성쪽 논리에 따르면 우리가 알고 있는 푸른 바다를 바다라고 부르지 못하는 상황이 벌어질지도 모르겠군요~ 이것이 참 웃기는 일이라는 겁니다.

      안드로이드는 원래 사람과 유사한 지능을 갖춘 로봇등을 의미하는 단어입니다. 그런 면에서 구글이 안드로이드라는 용어를 만든것도 아닙니다.

      사실 안드로이드(Android)라는 용어의 기원은 Philip K. Dick가 쓴 Do Androids Dream of Electric Sheep? 라는 1968년에 출간한 소설입니다. 즉 안드로이드란 용어의 저작권은 Philip K. Dick한테 있는 것이지 구글이나 삼성에 있는것은 아닙니다.

      사실 이러한 사실을 근거하여 바라볼때 삼성전자의 행동은 다분히 Philip K. Dick의 소설속의 안드로이드의 의미나 구글이 추구한 안드로이드라는 모바일 플랫폼의 의미와는 상관없이 마케팅적인 처사라고 볼 수 있습니다.

      이것이 삼성전자와 같이 큰 기업에서 본래의 의미를 생각하지 않고 자신들의 이익만을 추구하기 위한 웃기는 일이라는 것입니다.

  6. Favicon of http://www.YHKim.com drvoss 2010/03/23 08:35 address edit & del reply

    안드로이드는 원래 작은 중소기업이 가지고 있었는데, 삼성이 돈주고 샀습니다.

    이걸 사건을 보고 느낀건, 구글/애플이 내는 플랫폼이나 개념(?) 이름은 일단 상표 등록을 해둬야 나중에 피해를 안입겠구나 했어요.



    그럼 여기서 퀴즈!
    구글의 검색기술로 널리 알려진 페이지랭크의 특허는 누가 가지고 있을까요?

    정답은,..
    (21) 출원번호 10-2004-0073658
    (22) 출원일자 2004년09월15일
    (30) 우선권주장 10/663,933 2003년09월16일 미국(US)
    (71) 출원인 마이크로소프트 코포레이션
    미국 워싱턴주 (우편번호 : 98052) 레드몬드 원 마이크로소프트 웨이
    >> PageRank는 훨씬 가장 잘 알려진 질의-독립적인 링크-기반 순위매김 알고리즘이고, 그 원리가 여기에서 진술된다. PageRank는 재귀 계층을 시스템에 추가함으로써...


    특허나 상표권이라는게 다 이런거죠 모. ㅎㅎ

    • Favicon of http://blog.java2game.com 장선진 jangsunjin 2010/03/24 01:18 address edit & del

      ^^ 아네~ 그렇군요~
      페이지 랭크는~ 정말 쑈킹한데요~ 역시 선점하는 사람이 임자인가요~
      두 회사는 비슷한 점이 있군요~ ^^~

  7. Favicon of http://lemonflavor.tistory.com 레몬에이드 2010/03/30 09:24 address edit & del reply

    [사실 이 로고 조차 마음대로 쓸 수 있습니다.] -> 없습니다 아닌가요 ^^;;

    삼성 입장에서는 최선의 선택이었을지도 모르겠지만
    추세를 점점 거스르는 퇴보하는 모습 같아서 참 안타깝습니다

    그런데 안드로이드는 구글이 제작한 플래폼인데
    다른 회사에서 상표권을 선점 할 수도 있군요
    하긴... 세상이 다 그렇긴 하네요 ^^;;

    • Favicon of http://blog.java2game.com jangsunjin 2010/04/02 11:16 address edit & del

      아네~ 원래 안드로이드 봇 이미지는 다 가져다 쓰실 수 있습니다. 참고로 http://www.android.com/branding.html 에 가보시면 안드로이드 로봇에 대한 정책을 확인하실 수 있습니다.

      즉, 이 이미지를 사용하거나 수정하거나 재생산하는 것은 마케팅을 위해서는 자유롭게 가능하다라는 의미입니다.

      참 자유로운 발상이며, 안드로이드를 진정으로 생각하는 정책이라고 생각합니다. :-)

  8. cofcat 2010/04/12 16:47 address edit & del reply

    안드로이드... 안드로보이 캐릭터는 참 마음에 드는데요....
    구글의 open 정책도 마음에 들고요 대기업들이.. 끼여들면서 그러한 정책이
    흐려지는 느낌입니다.
    계속해서 유지 되었으면 하는 바램입니다만....
    안드로이드 어플도 계속 증가 추세이고 tac공모전으로 어플도 더 나올 것 같고...
    안드로이드가 계속 발전해 줬음 좋겠네요^^

    • Favicon of http://blog.java2game.com 장선진 jangsunjin 2010/04/13 10:36 address edit & del

      아~ TAC 때문에 고민이 많네요~
      요즘 회사일이 많아져서리~ 제가 사실 많이 진도를 나가지 못하고 있었거든요~ 저희 팀원들도 많이 바뻐서요~
      여튼 이러한 공모전은 참 좋은 것 같습니다.

      한가지 더 말씀드리면~ 대기업들의 참여가 꼭 나쁜 것은 아닙니다. 우리나라에 S 모사나 K 모사가 있는게 어쩌면 축복입니다.

      왜냐하면~ 만약 여러분들이 미국에 있다면 전 세계와 경쟁을 하셔야 합니다. 하지만 우리나라라는 특성 때문에 통신회사인 S 모사나 K 모사 등이 중간 역할을 해 주고 있는 것입니다.

      즉, Tstore에 올려서 검증한 후에 전세계 Android Market에 올려서 수익을 올릴 수 있는 것입니다.

      Tstore를 통하여 국내 수익이 발생되는 것이고 전세계 수익도 원하시면 얻을 수 있기 때문에 우리나라 개발자들은 2개의 시장을 가지고 있는 것입니다.

      따라서 그런 대기업들이 꼭 나쁜 것은 아닙니다.

      다만 상표권 가지고 장난치면 안되겠죠~ ^^;

Android의 3D에 대하여

|


최근 Google Android에 많은 관심을 기울이고 있습니다. 기본적인 처리는 J2ME와 비슷하지만, 달빅 VM을 사용하고 기본적으로 SQLite나 ContentProvider 등을 통하여 다양한 리소스를 활용할 수 있다는 장점이 있습니다.

Android SDK 1.6까지 나와서 걸음을 재촉하고 있으니 조만간 모바일 플랫폼의 강자로 확실히 군림할 것 같습니다.

최근에는 3D에 대한 관심을 많이 가지고 있는데요~ 위의 동영상은 Android에서 쉽게 3D를 구현할 수 있도록 지원하는 Rokon이란 Game Engine입니다. 언뜻봐서도 그리 성능이 떨어져 보이지 않습니다.

물론 더 테스트는 해봐야하겠지만, 장래성이 충분해 보이기도 하네요~

저처럼 Android 기반에서 가볍게 3D를 구현하고자하는 분들이라면 한번 Rokon을 째려보셔도 좋을듯합니다. 저역시 마찬가지구요~ Rokon Game Engine에 대한 자세한 정보는 http://rokon-android.blogspot.com/에서 보실 수 있습니다.

혹시 Android하에서 3D에 관심있으신 분들이 계시면 댓글 부탁드려요 ;-)
저작자 표시 비영리
Trackback 0 And Comment 2

Trackback http://blog.java2game.com/trackback/333 관련글 쓰기

  1. Favicon of http://raimsoft.com 라임 2010/01/30 02:14 address edit & del reply

    헛.. 제가 알기로는 Rokon은 2D 엔진으로 알고있는데 3D 레퍼런스도 있나요?

    • Favicon of http://blog.java2game.com 장선진 jangsunjin 2010/01/31 12:22 address edit & del

      아 제가 잘못 알고 있었습니다.
      말씀하신대로 2D게임엔진이 맞습니다. 제가 3D로 즉 OpenGL ES로 구현되어 텍스쳐를 구성하는줄로 착각했습니다. 좋은 지적 감사합니다.

      좀더 파본후에 포스트를 수정해야 겠습니다.^^

구글의 안드로이드(Android)에 대한 짧은 생각들

|
지난 10회 자바 컨퍼런스에서 "Dolphin-4 Android Run-time (Dalvik VM & Core Lib) 분석"이란 주제로 안드로드이에 관한 세션을 들었습니다.

예전에 모바일 관련 어플리케이션을 개발한 경험이 있는 관계로 임베디드 환경에 상당히 많은 관심을 가지고 있었습니다. 지금은 오래된 일이지만, 아직도 임베디드 환경에서 개발하던 예전 시절을 생각하며, 임베디드 환경에 맞는 어플리케이션을 개발하고 싶은 꿈을 가지고 있었습니다.

마침 들풀이란 닉네임으로 유명하신 양정수님께서 자바 컨퍼런스에서 구글(Google) 안드로이드(Android)의 핵심이라고 볼 수 있는  "Dolphin-4 Android Run-time (Dalvik VM & Core Lib) 분석"에 관한 세션을 진행하셔서 안드로이드에 관한 좋은 설명을 듣게 되었습니다.

역시 구글의 정밀함과 기술력을 확실히 알 수 있는 좋은 세션이었습니다. 몇가지 감명깊에 들은 이야기를 정리하면 다음과 같습니다.



안드로이드의 사상입니다. 모든 플랫폼에서 가장 중요한 것이 사상인것 같습니다. 사상이 바르고 공정해야 그 플랫폼 위에서 움직이는 어플리케이션이 바르고 안정적으로 움직일 수 있습니다.

안드로이드가 뛰어난 플랫폼이라고 생각되는 부분이 바로 이 바르고 공정한 플랫폼이라는 점입니다.
모든 어플리케이션은 동일하다. 안드로이드는 폰의 기본 어플리케이션이나 제3자의 어플리케이션을 차별하지 않는다. 그것이 다이얼하는것이든 또는 홈 스크린이든 교체가 가능하다.
All applications are equal. Android does not differentiate between the phone's basic and third-party applications -- even the dialer or home screen can be replaced.

출처: http://adamac.blogspot.com/2007/12/replacing-android-home-screen.html

안드로이드를 처음 구동하면 홈 스크린(Home Screen)이란 것을 구동합니다. 즉 바탕화면 관리자 정도 되나요? 여튼, 이 홈 스크린을 통하여 다른 어플리케이션에 접근할 수 있습니다. 바탕화면에서 아이콘을 통하여 자신이 원하는 어플리케이션에 접근하는 개념이란 동일하죠..

헌데, 이 홈 스크린도 구글이 제공해주는 것을 사용할 수도 있고, 여러분들이 만든 것을 사용할 수 있습니다.

출처: http://www.jco.or.kr/c?mc=conference&sc=pds 중 "[2009, 10회] Dolphin-4 Android Run-time (Dalvik VM & Core Lib) 분석" 에서


이 스크린 샷이 컨퍼런스에서 본 화면인데요~ 잘 보시면 홈을 선택하게 되어 있습니다. 홈 스크린은 나름대로 중요한 위치에 있는 어플리케이션입니다. 홈 스크린이 고정되어 있다면, 사실 여러분들이 쓰고 싶지 않은 어플리케이션도 홈 스크린에 존재한다는 이유로 써야할 수 있습니다.

대표적으로 원도우스(Windows)에 기본 탑재되었던 인터넷 익스플로러(Internet Explorer)입니다. 이 인터넷 익스플로어는 제 기억에 분명히 넷스케이프보다 성능이 떨어지는 웹 브라우져 어플리케이션이었습니다. 하지만 성능이 떨어져도 기본 탑재되어 있기 때문에 자연스럽게 사용하기 시작했습니다. 넷스케이프는 다시 깔아서 써야 했기 때문이죠. 그 덕분에 인터넷 익스플로러가 세계에서 가장 많이 사용되는 웹 브라우져가 된 것입니다.

홈 스크린에 어플리케이션을 자연스럽게 껴서 넣는다면 자연스럽게 어플리케이션 사용율이 높아질 것이고 해당 분야에 세계 최고의 어플리케이션이 될 수도 있는 것입니다.

하지만, 구글은 역시 구글답게 홈 스크린도 선택하도록 하였습니다. 여러분들이 좋아하는 어플리케이션을 구동하기 쉽도록 재 구성한 홈 스크린을 사용할 수 있다는 것입니다. 아... 얼마나 구글다운 오픈 마인드(Open Mind)입니까?

사실 전 이 사실 하나만으로도 안드로이드의 장래가 매우 밝다고 생각합니다. 모든 것을 열어놓고 시작하는 이 정신이 안드로이드의 가치를 빛나게 해줍니다.



두번째로 재미있는 개념이 Zygote란 개념입니다.

출처: http://www.jco.or.kr/c?mc=conference&sc=pds 중 "[2009, 10회] Dolphin-4 Android Run-time (Dalvik VM & Core Lib) 분석" 에서



상기 그림에서도 설명이 나와 있는데요, 미리 Fork된 프로세스이지만, 마치 빈 껍대기 정도의 상태로 존재하는 프로세스입니다. 그리고 어플리케이션의 Run될때 바로 이 Zygote를 통해서 안드로이드 기반의 프로세스를 바로 실행시키는 구조입니다. 아~ 멋집니다.

미리 공통적으로 필요한 라이브러리들을 탑재한 상태로 반쯤 생성된 프로세스에 실제 핵심이 되는 어플리케이션의 로직을 태워, 해당 어플리케이션을 구동시키는 방법이라고 할 수 있습니다. 당근 어플리케이션 구동 속도가 엄청 빨라지겠죠~

사실 안드로이드에 관심있는 분이라면 한번쯤 들어보셨을 것입니다. 저도 들어는 봤었지만, 정확한 개념이해가 되지 않았는데, 이번 세션을 통하여 명확하게 이해할 수 있었습니다. 아싸~ 하나 건졌다 :-)



또 하나의 재미있는 부분이 달빅(Dalvik)이란 가상머신(Virtual Machine)에 관한 개념입니다.
달빅 자체는 매우 아래와 같은 환경을 고려한 Bytecode Interpreter입니다.
  • Slow CPU (250-500 MHz)
  • RAM Usage : Low-level : 20M, High-level : 24M (system library : 10M)
  • Little RAM (64MB) : Available RAM : 20M
  • Bus speed : 100MHz
  • Data Cache : 16~32K
  • No swap space,  Battery power

역시 혹독한 임베디드 환경을 고려하고 있네요.. 제가 모바일 어플리케이션을 작성할때 환경보다는 조금 나아졌습니다. 8 Gray 폰이나 16Gray 폰에 64Kbyte짜리 어플리케이션을 짜던 환경말이죠..

이러한 느린 CPU위에 돌아간다는 가정하에 달빅이란 가상머신을 돌리기 위한 최적화의 노력이 눈물겹습니다.


상기 Java 코드를 Bytecode로 변환하였을 경우에 Java VM과 Dalvik VM의 차이입니다.
Dalvik VM의인스트럭션이 상당히 적습니다. 즉 CPU가 처리해야 할 일이 그만큼 적다는 의미입니다.

일반적인 Java VM은 스택에 인스트럭션을 쌓아서 하나 하나씩 처리하는 반면, Dalvik VM은 ARM 프로세서에 최적화하여 인스트럭션 수를 줄였습니다. 즉 이터레이션(Iteration)을 한다는 의미인데요, 이터레이션을 할때 스택에 쌓을 것들을 변수로 처리하여, CPU의 연산횟수를 줄이는대신 인자는 늘어나게 됩니다. 결과적으로는 CPU의 처리 사이클이 줄어들게되지만, 스택대신 이터레이션을 사용하므로 Dalvik VM이 각 CPU 프로세서에 최적화되어 있어야 가능합니다.

이런 일들을 멋지게 처리해 놓았습니다. 앞으로 안드로이드의 성능도 좋을 것 같습니다.
이 외에도 여러 재미있는 이야기들을 들었습니다. 깊이있는 내용을 차근 차근히 잘 설명해주신 양정수님에게 감사드립니다.

참고로 양정수님은 Korea Adroid(http://www.kandroid.org)의 운영자이시기도 합니다.

Korea Adroid(http://www.kandroid.org) 에서 2009 제3회 Korea Android 세미나를 준비중이십니다. 이번주 금요일에 있으시니 관심있으신 분들은 언릉 신청하세요~ 저도 가고 싶은 마음은 굴뚝인데.. 회사에 매인 몸이라.. 어떻게 될지 모르겠네요~ :-)
선착순 300명에게는 구글 T셔츠도 준다고 하네요~ 아마 국내 최고의 안드로이드 관련 세미나가 될 것 같습니다.

혹시 다녀오시면 후기도 점 부탁드립니다. ;-)
감사합니다.
저작자 표시
Trackback 1 And Comment 7

Trackback http://blog.java2game.com/trackback/234 관련글 쓰기

  1. Subject pengu♪의 생각

    Tracked from pengu's me2DAY 2010/03/02 10:35 delete

    안드로이드 zygote 달빅 가상머신에 이은 또 하나의 재미있는 아이 'zygote' ㅋㅋ

  1. Favicon of http://greenfrog7.egloos.com greenfrog 2009/03/25 08:10 address edit & del reply

    이제 갓 1년차 개발자로 어려운 내용들이 많아 잘 이해하지는 못하지만 "모든 플랫폼에서 가장 중요한 것이 사상"이라는 말씀이 가슴 깊이 남네요.
    언제나 좋은 내용의 포스팅 잘 보고 갑니다 ^^ 선진님 좋은 하루되세요 ~~~

    • Favicon of http://blog.java2game.com 장선진 jangsunjin 2009/03/25 13:07 address edit & del

      안녕하세요~ greenfrog님 :-)

      제글이 조금이나마 도움이 되셨다니 다행입니다. 좋은 사상을 가지고 계신다면 분명히 좋은 프로그래밍을 하실 수 있으실거라 생각됩니다.

      greenfrog님도 좋은 하루 되시구요~ 언제나 들려주셔서 감사합니다. ;-)

  2. Favicon of http://shinlucky.tistory.com shinlucky 2009/09/13 19:05 address edit & del reply

    zygote찾아보다가 들렸습니다. ^_^
    추가로 이런저런 좋은 정보 잘 보고 갑니다. 감사합니다.~~!

    • Favicon of http://blog.java2game.com 장선진 jangsunjin 2009/09/14 09:30 address edit & del

      안녕하세요~ 도움이 되셨다니 다행입니다.
      앞으로도 종종 놀러와주세요 ;-)

  3. 항기오빠 2010/03/04 09:35 address edit & del reply

    좋은자료라 잘봤습니다 ^^

    궁금한게 있는데요 zygote 프로세스 두번째 그림 화살표의 관계 설명좀 해주실수있나요

    너무궁금해서... 제가 좋은자료라고 다른분들께 소개드렸더니 오히려 저에게 물어보고있어서...ㅎㅎㅎ

    부탁드려요 서비스 매니저라든지 화살표 관계, 바인더 ... 까지 ..좀 ^^;; 가능할까요?

    • Favicon of http://blog.java2game.com 장선진 jangsunjin 2010/03/05 10:06 address edit & del

      안녕하세요~ 장선진입니다. :-)
      사실 본 자료는 들풀 양정수님께서 작성하신 부분이라 제가 설명하는것이 의도에 맞는지 정확히 모르겠습니다.

      제가 아는 수준에서 말씀드리겠습니다.

      아시다피시 Android는 Linux Kernel을 기반으로 만들어진 스마트폰 플랫폼이라고 볼 수 있습니다. 즉, 전체적으로 Linux의 풍부한 라이브러리를 사용하지 않고 Kernel을 바탕으로 기본적으로 필요한 부분만 사용하고 있다고 생각하면 좋을것 같습니다.

      Zygote는 미리 포크된 프로세스입니다. 이 프로세스가 Kernel에서 관리하는 다양한 자원에 연결하거나 프로세스간 연결해서 사용해야 할 부분들이 있을 경우 IPC(Inter Process Communication)를 통하여 지원합니다. 즉 Binder를 관리해야 하구요~ 이러한 Binder를 관리하는 역활이 ServiceManager라고 볼 수 있습니다.

      즉 Zygote라는 프로세스에서 다른 프로세스간 연결을 중간에서 제어하는 역활을 하는 것입니다.

      아마 양정수님께서도 이러한 부분때문에 Zygote에 ServiceManager를 연결하고 Kernel에 Binder Driver를 연결하신 것 같습니다.

      사실 그게 맞구요~

      여튼 대략적인 부분은 다음과 같습니다.

      http://androidenea.blogspot.com/2009/07/system-server-in-android.html 도 참고해보시기 바랍니다.

      그럼 좋은 하루 보내세요~ ;-)
      SystemServer나

    • Favicon of http://blog.java2game.com 장선진 jangsunjin 2010/03/05 10:09 address edit & del

      아~ 그리고 http://makelinux.com/kernel_map 에 있는 리눅스 커널의 관계를 아시면 더 좋습니다~

prev | 1 | next