Android/정리2009. 5. 6. 11:40
1. 안드로이드란?
 안드로이드는 모바일디바이스들을 위한 SW Stack으로써, OS, Middleware, Key application을 포함하고 있다.

 안드로이드SDK는 Java language를 사용하여 안드로이드플랫폼상의 application 개발에 필요한 API들과 도구들을 제공한다.

2. Features
 애플리케이션 프레임워크 : 컴포넌트의 재사용과 대체(replacement)를 가능하게 함.
 달빅(Dalvik) 가상머신 : 모바일 디바이스에 최적화됨.
 통합(Integrated) 브라우저 : 오픈 소스 Webkit 엔진 기반임.
 최적화된 그래픽 : 구글이 만든 2D 그래픽 라이브러리를 사용함.
 OpenGL ES 1.0 스펙에 기반한 3D 그래픽을 사용함 (하드웨어 가속은 선택사항임)
 SQLite : 정형화된 데이터 저장공간을 위한 것임.
 미디어 지원 : 일반적인 오디오, 비디오, 그리고 정지(still) 이미지 포맷들을 지원
                    (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
 GSM과 CDMA 텔레포니(Telephony) (하드웨어 의존적)
 블루투스, EDGE, 3G, WiFi (하드웨어 의존적)
 카메라, GPS, 나침반, 그리고 가속도계 (하드웨어 의존적)
 풍부한 개발 환경 : 디바이스 에뮬레이터, 디버깅 도구, 메모리 및 성능 프로파일링 그리고 Eclipse
 IDE를 위한 플러그인을 포함함 

3. Architecture

3.1 Applications
 안드로이드가 기본적으로 제공하는 Java Applications

3.2 Application Framework
 자바기반의 프레임웍으로 대부분 native C/C++코드로 작성되어 JNI로 자바와 인터페이싱되어 있다.
 코어시스템서비스와 하드웨어 서비스로 구성되어 있다.
 Core System Services
  - Activity Manager
  - Package Manager
  - Resource Manager
  - Content Provierss
  - Window Manager
  - View System
 Hardware services
  - low-level access to hw device
  - Location Manager
  - Telephony Manager
  - Blutooth service
  - Wifi service
  - USB service
  - Sensor service

3.3 Libraries
 안드로이드가 내장하고 있는 기본적인 라이브러리는 Bionic Libc, Function Library, Navive Service, Hardware Abstraction Library로 구성된다.
 - Bionic Libc : 임베디드에 최적화된 구글에서 직접 구현한 libc이다. 이를 직접 구현한 이유는 GPL를 피하여 일부 라이선스 프리를 보장하기 위한것과, 개별프로세스마다 포함되어야 하고 빨라야 하기 때문이다. 따라서 가볍고 빠른 libc를 목표로 작성된 Libc이다.
 - Function Library : Webkit, OpenCORE, SQLite들이 있다.
 - Native server : Surface flinger, Audio flinger가 있다. 이는 시스템 전반에 걸친 화면과 소리를 담당하는 서버라고 보면된다.
 - Hardware Abstraction Layer : OS로 사용하고 있는 리눅스운영체제가 다수의 드라이버개발모델을 가지고 있어 이를 통합하고자 하는 의도가 보이는 대목이다. 이를 이용하여 안드로이드플랫폼을 하드웨어인터페이스로부터 분리할수 있다. GPL을 피할수 있으며 안드로이드가 별도의 하드웨어 요구사항을 정의하고 있다.
 - 안드로이드 런타임 라이브러리 : Dalvik가상머신과 Core라이브러리들로 구성된다.

3.4 안드로이드 런타임 라이브러리
 - Dalvik 가상머신 : 안드로이들에서는 자바 가상머신을 사용하지 않는다. 이유는 여러가지가 있는데 속도와 안드로이드 프레임웤구조때문이다. 달빅가상머신은 프로세스별로 생성되어 어플리케이션간의 청정영역(clean-room)을 제공한다.
    - Register 기반의 가상머신 (no JIT, interpreter-only)
    - Optimized for low memory requirements
    - Designed to allow multiple VM instances to run at one
    - Relying on underlying OS for process isolation,
       memory management and threading support
    - Executes Dalvik Executables (DEX) files which are zipped into
an Android Package (APK)
 - Core라이브러리 : 강력하지만 단순하고 익숙한 개발 플랫폼을 제공하는 자바언어를 위한 Core API들을 포함하고 있다. Application개발시 필요한 거의 모든 자바Core API들이 있다고 보면된다. Data structure, Utility, File access, Network access, graphic, ...
    - Bundled in android.jar
    - Android platform library: android.*.
       XML Parser implementations included (DOM, SAX, XMLPullParser)
    - Apache Harmony (Standrard Java Library implementation)
    - Several popular Open Source projects available out-of-the-box.
        Apache Commons (HttpClients 2/4, Codec), BouncyCastle JCE providers, SQLite, JUnit 3.8.x
    - GData APIs partly included as wireless version(com.google.wireless.gdata)

4. 리눅스 커널
 - 리눅스커널을 기반으로 하고 있으나 리눅스는 아니다.
    X-Windows내장하지 않음, Glibc지원하지 않음, 표준리눅스유틸리티 전체를 포함하지 않는다.
 - 리눅스커널 버전 2.6.23, 2.6.24, 2.6.25, 2.6.27를 사용해왔으며 안드로이드지원을 위해 패치를 포함한다.
 - 리눅스를 사용하는 이유
    - 메모리 및 프로세스관리
    - Permission기반의 보안모델
    - 검증된 드라이버모델
    - 공유라이브러리 지원
    - 오픈소스기반 등의 장점을 이용함.
 - 확장된 리눅스커널영역
    - Alarm, Ashmem, Binder, Power Management, Low memory killer, Kernel debugger, logger
 - http://git.android.com에서 배포
Posted by 삼스
흥미있는 뉴스2009. 5. 5. 20:42

로이터 | 입력 2009.04.28 17:57 

  

It's never too early to twitter. Thanks to a new device, babies who aren't even born can let the world know they're alive and kicking. Called the Kickbee, the device is strapped over a pregnant woman's belly and within seconds of a baby's kick, a message, or "tweet" is posted on Twitter.

'소리를 내는 데(twitter)' 너무 이른 나이란 있을 수 없다. 새로 발명된 장치 덕에 태아도 자기가 살아서 발길질을 하고 있다는 것을 알릴 수 있게 됐다. 임신부가 '킥비(Kickbee)'라는 이름의 이 장치를 배에 차면 태아가 발길질을 한 뒤 몇 초도 지나지 않아 '트위터(Twitter)'라는 이름의 기계에 메시지가 뜬다.

It was created by New York University (N.Y.U.) student Corey Menscher.

뉴욕 대학교 재학생 코리 멘셔 씨가 이 장치를 개발했다.

SOUNDBITE Corey Menscher, Inventor of Kickbee, saying (English):"It's an elastic band that the mother wears and it contains a couple of vibration sensors. The vibration sensors detect a kick and they send it to a microcontroller, which does some further processing to filter out kicks from movement and then it sends it to a java application that I wrote over wireless network, which then updates twitter."

[코리 맨셔/ '킥비' 발명가]

"임신부는 진동 센서 몇 개가 장착된 탄력밴드를 착용한다. 태아가 발길질을 하면 진동 센서가 이를 감지해 마이크로컨트롤러로 보낸다. 이곳에서 태아의 움직임 가운데 발길질하는 동작만 잡아내는 과정을 거친다. 그 다음 그 신호는 무선네트워크를 통해 글자로 변환하게끔 개발된 자바 응용 프로그램으로 보내진 뒤 '트위터'에 나타난다."

The tweet says "I kicked Mommy Really Hard!" and indicates the exact time that the sensor detected a kick. Menscher who is completing his masters degree came up with the idea after his wife got pregnant.

트위터에는 "내가 엄마 배를 세게 찼다!"는 글이 뜨고 센서가 발길질을 감지한 시간이 정확하게 표시된다. 박사 과정을 밟고 있는 멘셔 씨는 아내가 임신을 한 뒤 이 아이디어를 생각해 냈다고 말했다.

Not wanting to miss out on the joy of feeling his baby's kicks while he attended classes, he found a way to stay connected through technology. He said Twitter's interface made it easy to do.

수업 중 그의 아기가 아내의 배를 찰 경우 그것을 만져보는 기쁨을 놓치기 싫어 그는 기술을 통해 뱃속 아기와 연결될 수 있는 방법을 찾아냈다. 그는 '트위터' 인터페이스 덕분에 이런 일이 쉽게 가능해졌다고 말했다.

SOUNDBITE Corey Menscher, Inventor of Kickbee, saying (English):"The application I wrote actually talks to Twitter through Twitter's A.P.I. or Application Programming Interface. It's an easy way for developers to send updates to Twitter through any application they write. All the Kickbee does is detect kicks and then send a kick event to my application."

[코리 맨셔/ '킥비' 발명가]

"내가 만든 응용 프로그램은 '트위터'의 응용 프로그래밍 인터페이스를 통해 '트위터'에게 메시지를 전달한다. 이 방법을 이용하면 개발자들은 어떤 응용 프로그램을 이용하느냐에 상관없이 트위터에 정보를 업데이트 할 수 있다. 킥비가 하는 일이라고는 태아의 발길질을 포착해 내가 개발한 응용프로그램에 보내 주는 것이다."

Menscher says that as families are increasingly forced to live apart technology has a greater role to play in keeping families connected. Karina Huber. Reuters, New York.

멘셔 씨는 떨어져 사는 가족들이 늘어나면서 가족 구성원들을 하나로 묶어주는 데 기술이 더 큰 역할을 하게 됐다고 말한다.

번역: 이화영 동아닷컴 기자 likeindians@donga.com 

 

 

아이뉴스24

'구글 왕국'이 현실로 다가온다

기사입력 2009-05-02 10:15


'구글 왕국'이 조금씩 가시화되고 있다. 검색 업체로 첫 발을 내디뎠던 구글이 인터넷 황제로 변신한 데 이어 이젠 세상의 지배자를 향해 전진하고 있다.

이 같은 거대한 야심의 중심에 서 있는 것은 구글이 지난 해 선보인 '안드로이드'라는 모바일 운영체제(OS)다.

모바일 OS로 소개되긴 했지만 구글 안드로이드는 단순한 휴대폰 플랫폼이 아니다. 구글의 궁극적인 목적은 인간이 사용하는 모든 기기에 '안드로이드'를 탑재하겠다는 것.

안드로이드를 인류 삶을 지배하는 플랫폼으로 만들어 '구글 왕국'을 세우겠다는 거대한 야망을 드러내고 있는 것이다.

이런 야심이 실현될 경우 하루 종일 구글과 함께 생활하게 될 지도 모른다.

이를 테면 회사에서 구글 PC로 작업을 하고, 구글 사무용 전화기으로 거래처와 통화를 하고, 업무를 마친 후 회식자리에서 구글 전자 메뉴판으로 음식을 주문해 식사를 한 뒤 2차로 '구글 노래방'에서 친목을 다질 지도 모를 일이다. 그러다 병원에 가면 구글 의료기기를 통해 진료를 받는다.

구글이 지배하는 거대한 세상이 다가오고 있는 것이다.

◆구글 폰 이어 구글 PC 나온다

2008년 10월 출시된 첫 안드로이드 휴대폰 'T모바일 G1'이미국에서만 100만대 판매를 돌파하며 큰 인기를 얻으면서 '구글폰'에 대한 관심이 세계적으로 높아지고 있다.

한국의 삼성전자를 비롯한 다수의 글로벌 휴대폰 업체들이 올해 안에 안드로이드 기반 스마트폰을 출시할 예정이다. 시장조사기관 인스탯은 안드로이드 기반 휴대폰이 연 300%의 성장률을 기록하게 될 것이라고 전망했다.

안드로이드를 앞세워 모바일 시장을 노크했던 구글은 예상보다 훨씬 빠른 속도로 자신들의 영역을 구축하는 데 성공했다.

하지만 구글의 야심이 모바일 영역에서 머물지는 않을 전망이다. 이젠 PC 영역으로 안드로이드 바람을 확산시키려 하고 있다.

올해 안드로이드OS를 탑재한 '구글 넷북'이 나올 것이라는 소문이 조금씩 현실화되고 있는 것. 최근 아수스와 휴렛패커드가 구글 넷북을 출시를 고려하고 있다고 밝힌데 이어, 중국의 스카이톤이라는 업체가 올 3분기에 안드로이드를 탑재한 넷북 '알파680'을 출시할 것이라고 발표했다. 또 우리나라의 삼보컴퓨터도 구글 넷북을 개발하고 있다.

구글은 지난 해 하반기 PC용 웹 브라우저 '크롬'도 공식 출시했다. 또 웹에 접속해야만 사용할 수 있었던 이메일 서비스 ‘지메일’과 문서작업 솔루션 ‘구글독스’의 오프라인 버전도 내놨다. 인터넷에서만 사용했던 지메일을 마이크로소프트(MS) 아웃룩처럼, 구글독스를 MS오피스처럼 오프라인 상태에서도 사용할 수 있게 만든 것이다.

이렇게 되면 마이크로소프트(MS) 윈도-인터넷익스플로러-MS 아웃룩-MS오피스로 구성된 MS기반 PC처럼, 안드로이드-크롬-지메일-구글독스로 구성된 구글 기반 PC 탄생이 예고된다.

구글은 일단 넷북으로 PC 시장에 진출하지만 향후 데스크톱용 OS로도 손색이 없는 안드로이드를 개발할 계획이다. 게다가 안드로이드는 MS의 윈도와 달리 무료이기 때문에 가격 경쟁력 면에서 우세하다. PC 시장을 장악하고 있는 MS에 구글이라는 강력한 도전자가 등장한 것이다.

◆집안 구석구석 구글의 흔적

하지만 구글이 궁극적으로 노리는 것은 일상 생활 속의 모든 기기에 안드로이드를 심는 것이다. 휴대폰과 PC 뿐 아니라 집전화와 TV 셋톱박스, 디지털 액자에도 안드로이드가 탑재하겠다는 것이 구글의 야심이다.

미국의 주요 통신사인 T모바일은 앞으로 안드로이드를 탑재한 인터넷 집전화를 공급할 예정이다. 최근 국내외 통신사들이 의욕적으로 출시하고 있는 인터넷 집전화는 음성통화 및 화상통화 외에 이메일·음악·동영상·뉴스 등 온라인 콘텐츠를 전송해주며 간이 컴퓨터 역할을 하고 있다.

T모바일이 공급하게 될 안드로이드 기반 인터넷 집전화도 이와 유사한 제품이다. 이미 비슷한 기능의 안드로이드 기반 사무실용 인터넷 전화기도 있다.

또 구글은 TV 셋톱박스에도 눈독을 들이고 있다. 안드로이드가 탑재될 TV 셋톱박스는 TV와 웹이 혼합된 서비스를 구현하며, 소셜 네트워킹 서비스(SNS) 기능도 제공하게 된다. TV를 보면서 SNS에 접속해 있는 친구들과 메시지를 주고받을 수 있으며, 영화 등의 온라인 콘텐츠들을 다운받을 수 있다. 또 티켓 예매 등의 전자상거래도 할 수 있다.

이미 MS와 애플도 각각 '미디어룸', '애플TV'라는 이름으로 인터넷TV 사업을 하고 있지만, 이들은 자사의 솔루션으로만 구성된 폐쇄적인 서비스를 제공하고 있다. 하지만 구글의 안드로이드는 어느 하드웨어에도 적용될 수 있는 플랫폼이라는 게 경쟁력이 될 것으로 보인다.

또 구글은 안드로이드가 탑재된 디지털 액자를 선보일 계획이다. 이 액자는 디지털 사진 뷰어 기능 외에도 인터넷 기능 일부를 담는다. 이런식으로 집안 구석구석이 구글의 텃밭이 된다.

◆회식 후 2차는 ‘구글노래방’에서

심지어 노래방에도 구글이 침투한다. 구글은 조만간 안드로이드가 탑재된 노래방 기기도 선보일 예정이다.

안드로이드가 탑재된 노래방 기기는 단순 반주 기기에서 벗어나 네트워크와 연결되고 지능화된 만능 엔터테인먼트 기기로 업그레이드된다. 예를 들면 노래방 기기에 저장돼 있지 않은 곡도 바로 웹에 접속해 다운받거나 스트리밍으로 재생하는 게 가능해진다. 안드로이드를 만나 디지털화된 ‘구글 노래방’이 탄생할 수 있게 된다.


노래방 기기 뿐 아니라 DVD플레이어, 게임기 등에도 안드로이드를 탑재해 지능화된 인터넷 기반 엔터테인먼트기기로 재 탄생시키는 게 충분히 가능하다. 즉 디지털 콘텐츠나 정보를 전달하는 모든 기기에 안드로이드가 스며들 수 있다. 그럼 구글 노래방 뿐 아니라 구글 비디오방, 구글 비디오 게임방도 나올 수 있다는 얘기다.

이처럼 안드로이드를 채택하는 기기가 무한 늘어날 수 있는 가장 큰 이유 중 하나는 안드로이드가 오픈소스 기반의 무료 플랫폼이기 때문이다. 애초에 구글은 안드로이드를 다양한 하드웨어에 쉽게 탑재할 수 있도록 설계한 것이다.

사람들에게 친숙한 수많은 하드웨어에 스며들어가 ‘구글 왕국’을 짓겠다는 구글의 꿈이 실현되는 것은 사실 아직 먼 얘기고 꼭 이뤄진다고 장담할 수도 없다.

이미 웹과 하드웨어 시장을 선점하고 있는 MS와 애플 등의 경쟁자들이 구글의 습격을 앉아서 당하고만 있지는 않을 것이다. 또 아직은 소비자들이 위에 언급한 모든 하드웨어들로 웹 서비스를 누리고자 하는 수요도 크게 가지고 있지는 않은 상황이다.

하지만 구글은 경쟁사를 견제하고, 소비자의 수요를 창출할 방법을 꾸준히 연구하며 구글 왕국 건설을 향해 끊임없이 달려가고 있다.

강현주 기자 jjoo@inews24.com

'구글 넷북' 3개월 내로 나온다

'집 전화'가 부활한다

'구글 노래방' 나온다

구글 안드로이드, 집 전화에도 탑재된다

구글의 웹 세상 장악 무기, '안드로이드'

Posted by 삼스
Android/App개발2009. 5. 1. 14:11
sdk1.5에서는 1.1과 달리 AVD라는 것을 지원한다.
1.1버전과 1.5버전을 모두 지원하고 google api도 분리하였다.
따라서 3가지 AVD가 존재하며 eclipse plugin을 사용하려면 AVD를 모두 생성해주어야 한다.


> android list avds
Available Android Virtual Devices:

> android list targets
Available Android targets:
id: 1
     Name: Android 1.1
     Type: Platform
     API level: 2
     Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
id: 2
     Name: Android 1.5
     Type: Platform
     API level: 3
     Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
id: 3
     Name: Google APIs
     Type: Add-On
     Vendor: Google Inc.
     Description: Android + Google APIs
     Based on Android 1.5 (API level 3)
     Libraries:
      * com.google.android.maps (maps.jar)
          API for Google Maps
     Skins: QVGA-P, HVGA-L, HVGA (default), QVGA-L, HVGA-P

> android create avd --name sdk1.1 --target 1
> android create avd --name sdk1.5 --target 2
> android create avd --name sdk1.5map --target 3

> emulator @sdk1.5

Reference : http://www.taosoftware.co.jp/blog/2009/04/android_sdk15_emulator.html
Posted by 삼스