|
안드로이드의 개발은 크게 두 분야로 나누어 진다.
1. 안드로이드 SDK에서의 Application 개발
안드로이드의 Dalvik 가상 머신(Virtual Machine) 위에서 실행되는 게임, 멀티미디어 플레이어, 일정관리, 등과 같은 어플리케이션 개발을 의미한다. 안드로이드 어플리케이션은 JAVA 언어로 개발되기 때문에 JAVA 언어를 숙지하는 것이 좋다. (하기 참조)
2. 안드로이드 플랫폼의 포팅 및 개발
안드로이드를 특정 디바이스에 탑재하고자 하는 경우, 즉 안드로이드 플랫폼을 포팅하는 것을 의미한다. 이는 디바이스 드라이버, 리눅스 커널, 미들웨어, 등을 특정 디바이스에 연결 작업을 해야 한다. 이는 Linux 및 C/C++/어셈블리 언어로 개발되기 때문에 이를 숙지하는 것이 좋다.
안드로이드 어플리케이션을 개발하기 위해서는 아래 개발 환경을 구축해야 한다.
1. JDK 설치
JDK는 자바 개발 키트(Java Development Kit)로, 아래 SUN 홈페이지에서 다운로드 받을 수 있다.
http://java.sun.com/javase/downloads/
Java SE Development Kit (JDK) version 6 을 다운로드 받아 설치한다.
2. Android SDK 설치
Android SDK(Software Development Kit)는 안드로이드 개발 도구로, 아래 구글의 안드로이드 홈페이지에서 다운로드 받을 수 있다.
http://developer.android.com/sdk/
Android SDK revision 4 를 자신의 운영체계에 맞게 다운로드 받아 설치한다.
(여기서는 윈도우 버전을 다운로드 받아 설치하도록 한다.)
자신의 운영체계에 맞는 압축 파일을 다운로드 받아, 설치할 폴더에 압축 파일을 푸는 것으로 SDK 설치가 완료된다. Android SDK 설치 폴더를 “C:\Android\AndroidSDK\” 로 하도록 한다.
3. Eclipse 설치
Eclipse는 자바 개발 진영에서 널리 사용되는 오픈소스 통합개발환경(IDE : Integrated Development Enviroment) 으로, 아래 이클립스 재단 홈페이지에서 다운로드 받을 수 있다.
http://www.eclipse.org/downloads/
Eclipse IDE for Java Developers (version 3.5 Galileo) 을 자신의 운영체계에 맞게 다운로드 받아 설치한다. (여기서는 윈도우 버전을 다운로드 받아 설치하도록 한다.)
자신의 운영체계에 맞는 압축 파일을 다운로드 받아, 설치할 폴더에 압축을 푸는 것으로 이클립스 설치가 완료된다. Eclipse 설치 폴더를 “C:\Android\Eclipse\” 로 하고, 여기에 압축 파일을 풀도록 한다.
안드로이드를 위한 Eclipse 권장 구성은 다음과 같다.
JDT 플러그인과 WST는 최신 버전 Eclipse IDE 패키지에 포함되어 있다.
Eclipse 3.5 (Galileo) + Eclipse JDT 플러그인 (Java Development Tool : 자바 개발 툴) + WST (Web Standard Tool : 웹 툴) |
Eclipse 설치를 완료하고 Eclipse 실행파일을 실행하여 안드로이드 개발을 위한 새로운 Workspace를 만든다.
Workspace는 작업할 공간으로, Workspace 폴더를 “C:\Android\Workspace\”로 하도록 한다.
4. Eclipse용 ADT Plug-in 설치
ADT(Android Development Tool) 플러그인은 에뮬레이터와 .class-to-.dex 변환기 등의 개발자 도구를 이클립스 IDE에 직접 통합함으로써 안드로이드 개발을 단순화한다. 반드시 ADT 플러그인을 사용해야 하는 것은 아니지만, ADT 플러그인은 어플리케이션 개발을 보다 빠르고 손쉽게 만들어 테스트하고 디버그 할 수 있게 해준다.
아래 구글의 안드로이드 개발자 홈페이지를 참조하여 ADT Plugin을 설치할 수 있다.
http://developer.android.com/sdk/eclipse-adt.html
1. 설치된 이클립스를 실행시킨 후, 메뉴의 Help > Install New Software…를 선택한다.
2. Available Software 창에서 [Add…] 버튼을 클릭한다.
3. Name란에 “Android Plugin”라고 입력하고,
Location에 “https://dl-ssl.google.com/android/eclipse/”를 입력한후, [OK] 버튼을 클릭한다.
4. 새로 추가된 사이트 밑에 Developer Tools라고 되어있는 체크박스를 체크한 후,
Android DDMS와 Android Development Tools가 체크되어 있는지를 확인한다.
5. 약관에 동의한 후, [Finish] 버튼을 클릭하면 설치를 진행한다.
6. 설치 완료 후 이클립스가 자동으로 재시작을 하는데, 이 때 안드로이드 SDK가 어디에 설치되어 있는지를 이클립스에 알려 주도록 한다. 메뉴의 Window > Preferences를 선택한다.
7. Preferences 창의 좌측에 “Android”를 선택한 후, [Browse…] 버튼을 클릭해서 안드로이드 SDK가 설치된 폴더를 선택하고, [Apply] 버튼을 누른 후 [OK] 버튼을 누른다.
8. 상기처럼 해도 설치가 잘 안 되는 경우는 아래와 같이 Troubleshooting을 해 본다.
"3번" 과정에서의 URL이 안 된다면 “http://dl-ssl.google.com/android/eclipse/”로 시도해 본다.
인터넷에서 설치가 계속 에러가 나는 경우, 아래와 같이 ADT 플러그인 압축 파일을 직접 받아서 설치해 본다.
ADT 플러그인 압축 파일을 직접 받아서 설치하는 경우, 상기 3번 과정에서 URL을 입력하는 대신에
아래와 같이 [Archive…] 버튼을 클릭하여 ADT 플러그인 압축 파일을 직접 선택하여 설치를 한다.
5. Android Platform & SDK Component 설치
Android Platform 및 SDK Component를 설치하기 전에, 컴퓨터에 실행 중인 Anti-Virus를 종료시킬 것을 권고한다.
1. 이클립스를 실행시킨 후, 메뉴의 Windows > Android SDK and AVD Manager를 선택한다.
3. 약관에 동의를 “Accept All”로 선택한 후, [Install Accepted] 버튼을 클릭하면 설치를 진행한다.
설치되는 add-on SDK Component는 <sdk>/add-ons/ 폴더에 저장되고,
설치되는 Document는 <sdk>/docs/ 폴더에 저장된다.
4. 설치 완료된 후, Android SDK and AVD Manager 창의 좌측에 “Installed Packages”를 선택하면
우측에 기 설치된 Component들을 보여준다.
5. Android SDK and AVD Manager 창의 좌측에 “Virtual Devices”를 선택하고, 우측에 [New...] 버튼을 클릭하여 AVD를 새로 만든다. 안드로이드 SDK 1.5부터 AVD라는 개념이 추가되었는데, AVD(Android Virtual Device)는 안드로이드 가상장치이고, 이는 모델마다 SDK 버전, 화면 해상도, 등의 환경이 다르다. 그러므로 개발 과정 에서 장치에 맞게 어플리케이션을 테스트하려면 각 환경에 맞는 가상의 장치가 필요하며 AVD가 바로 그런 역할을 한다.
다양한 예제로 배우는
『 안드로이드 프로그래밍 가이드 』
제1장 안드로이드 소개
1. 안드로이드 개요
1-1. 안드로이드 구조
1-2. 안드로이드 라이버러리
1-3. OHA (Open Handset Alliance)
2. 안드로이드 개발환경
2-1. JDK 설치
2-2. Android SDK 설치
2-3. Eclipse 설치
2-4. Eclipse용 ADT Plug-in 설치
2-5. Android Package 설치
3. Hello World
3-1. Hello World 프로젝트
3-2. Hello World 소스 파일 분석
3-3. 안드로이드 개발 도구
3-4. 로깅 기능
3-5. Build Path Error에 대한 조치
3-6. 새로운 클래스 생성하기
4. 매니페스트 파일
4-1. 매니페스트 파일 구조
4-2. AndroidManifest.xml 파일 분석
4-3. uses-permission
제2장 안드로이드 기본
5. 액티비티 (Activity)
5-1. 액티비티 (Activity) 개요
5-2. 뷰 (View) 개요
5-3. 뷰 그룹 (ViewGroup) 개요
5-4. 레이아웃 (Layout) 개요
5-5. 액티비티 수명 주기 예제
6. 리소스 (Resource)
6-1. 리소스의 형식과 저장 위치
6-2. Eclipse의 리소스 및 레이아웃 편집기
6-3. 리소스 다루기
6-4. 리소스 폴더에 리소스 추가하기
7. 레이아웃 (Layout)
7-1. FrameLayout (중첩 배치 방식)
7-2. LinearLayout (직선형 배치 방식)
7-3. TableLayout (표 배치 방식)
7-4. RelativeLayout (상대적 배치 방식)
7-5. AbsoluteLayout (절대적 배치 방식)
8. 위젯 (Widget)
8-1. TextView
8-2. ImageView
8-3. EditText
8-4. Button & ImageButton
8-5. CheckBox & ToggleButton
8-6. RadioButton
8-7. Spinner
8-8. AutoCompleteTextView
8-9. ListView
8-10. GridView
8-11. Gallery
8-12. DatePicker & TimePicker
8-13. AnalogClock & DigitalClock
8-14. ProgressBar
8-15. SeekBar
8-16. RatingBar
8-17. TabWidget
8-18. ScrollView
8-19. ViewFlipper
9. UI 이벤트 처리
9-1. View의 Listener
9-2. View.[안내]태그제한으로등록되지않습니다-xxonClickListener 예제
9-3. View.onKeyListener 예제
9-4. View.[안내]태그제한으로등록되지않습니다-xxonFocusChangeListener 예제
9-5. View.onTouchListener 예제
10. 메뉴 (Menu)
10-1. 안드로이드 메뉴 개요
10-2. 옵션 메뉴 (Options Menu)
10-3. 문맥 메뉴 (Context Menu)
11. 어댑터 (Adapter)
11-1. 배열 어댑터 (ArrayAdapter)
11-2. 커서 어댑터 (CursorAdapter)
11-3. AdapterView의 Listener
12. 스레드 (Thread)
12-1. 새로운 스레드 만들기
12-2. 긴 주기의 스레드 종료하기
12-3. UI 작업을 위한 스레드 동기화
12-4. 스레드 예제
13. 타이머 (Timer)
13-1. 타이머 개요
13-2. 타이머 예제
14. 다이얼로그 (Dialog)
14-1. 토스트 (Toast)
14-2. 다이얼로그(Dialog)
15. 알림 (Notification)
15-1. 상태 표시줄을 이용한 알림
15-2. 진동 울리기
15-3. 소리 내기
15-4. 지시등(LED) 깜빡이기
15-5. 맞춤형 알림 만들기
15-6. 알림 예제
16. 인텐트 (Intent)
16-1. 인텐트 개요
16-2. 명시적 인텐트 (Explicit Intent)
16-3. 암시적 인텐트 (Implicit Intent)
16-4. 액티비티에 데이터 전달하기
16-5. 액티비티 호출 예제
16-6. 액티비티간 데이터 전달 예제
16-7. 암시적 인텐트를 이용한 주소록 보기 예제
16-8. 암시적 인텐트를 이용한 지도 보기 예제
16-9. 탭 브라우저 예제
17. 인텐트 필터 (Intent-filter)
17-1. 암시적 호출을 위한 인텐트 필터
17-2. 인텐트 필터의 액션 (Action)
18. 서비스 (Service)
18-1. 서비스 수명 주기
18-2. 서비스 제어
18-3. 서비스 예제
19. 브로드캐스트 수신자 (Broadcast Receiver)
19-1. 브로드캐스트 수신자 개요
19-2. 브로드캐스트 수신자 예제
제3장 안드로이드 응용
20. 그래픽 (Graphics)
20-1. 도형 (Shape)
20-2. 서체 (Typeface)
20-3. 비트맵 (Bitmap)
20-4. 애니메이션 (Animation)
20-5. 인터폴레이터 (Interpolator)
20-6. 서피스 뷰 (SurfaceView)
21. 데이터 저장소 (Data Storage)
21-1. 환경설정 (Preference)
21-2. 파일 시스템 (File System)
21-3. 데이터베이스 (SQLite Database)
21-4. 콘텐트 제공자 (Content Provider)
22. 멀티미디어 (Multimedia)
22-1. 안드로이드 주요 미디어 포맷
22-2. 오디오 (Audio)
22-3. 비디오 (Video)
22-4. 사운드 풀 (SoundPool)
23. 네트워크 (Network)
23-1. WebView
23-2. HTTP (Hypertext Transfer Protocol)
24. 전화통신 (Telephoney)
24-1. 전화통신 관리자 (TelephonyManager)
24-2. 문자 관리자 (SmsManager)
25. 하드웨어 (Hardware)
25-1. 센서 관리자 (SensorManager)
25-2. 카메라 (Camera)
제4장 안드로이드 활용 팁
26. 안드로이드 활용 팁
26-1. 안드로이드 기본 팁
26-2. 현재 날짜/시각 구하기
26-3. 대화상자 테마를 적용한 About 화면 만들기
26-4. XML로 만드는 Shape Drawable
26-5. TTS (Text To Speech)
26-6. Gesture Detector
26-7. App Widgets
26-8. SD 카드에 있는 파일을 웹서버로 업로드하기
26-9. MP3 Player (SD 카드에 있는 MP3 파일)
26-10. FND Digital Clock
26-11. JNI (Java Native Interface)
26-12. 안드로이드 시스템 서비스
• 국내 스마트폰 시장, 아이폰-안드로이드폰 양강 재편
안드로이드폰이 1위가 될 것이라고 본 전문가들은 안드로이드OS는 어떤 핸드폰업체든 무료로 쓸 수 있는 오픈 소스여서 애플만 생산하는 아이폰보다 훨씬 빠른 속도로 보급될 것이라는 점이다. 안드로이드 OS는 스마트폰 뿐 아니라 스마트폰과 연동될 셋탑박스, 내비게이션, PMP, MP3, 냉장고, 디지털 TV, 세탁기, 리모콘, 자동차 등 산업 전반의 영역으로 보급이 확산될 것이라는 점을 꼽았다. (출처 : EBN 산업뉴스)
• 시장조사업체 IDC에 따르면 지난해 애플은 세계 스마트폰 시장에서 아이폰을 2510만대 팔았다. 점유율에서는 전년보다 5.3% 늘어난 14.4%을 기록, 노키아(38.9%)와 림(19.4%)에 이어 3위를 차지했다. 특히 전체 휴대폰 시장에서는 40%의 영업이익률로 약 5조원의 영업이익을 기록했다. 세계 2위인 삼성전자(약 4조1000억원)를 제치고 1위 노키아(약 5조2000억원)와 대등한 수준으로 올라선 것이다. 휴대폰 업체들이 안드로이드폰에 사활 을 거는 이유가 여기에 있다. (출처 : 디지털타임즈)
Nokia |
심비안(Simbian) |
RIM |
블랙베리(BlackBerry) OS |
Apple |
아이폰(iPhone) OS |
Microsoft |
윈도우모바일 7(Windows Mobile 7) |
|
안드로이드(Android) |
Samsung |
바다(bada) OS |
|