[01-D1] 안드로이드의 개요, Eclipse ADT(Android Development Tools), AVD

[01] 안드로이드의 개요

1. 안드로이드 개요
   1) 초창기의 무선 인터넷: WAP --> WML(HDML, mHTML) Script 사용 --> 부족한 기능과 사용자 인터페이스 지원 사용자 확보에 실패.

   2) 업체별 독자적인 모바일 환경 구축: Brew, Palm OS(Garnet OS),
      RIM Blackberry OS, Sun J2ME, WIPI, Nokia Symbian OS, 2007년 이후부터 iPhone OS등이 등장함.
  
   3) 기존의 컨텐츠 유통방식은 이동통신사에 너무 종속적인 관계라 컨텐츠 개발자가 진입하는데
       많은 장벽이 발생하고 폐쇄적인 모바일 폰 정보, 까다로운 심사등으로 개발에 제한이 많았음, 판매하려면 이동통신사의 여러 요구조건을 수용해야하는 여러움이 많았음.
  
   4) 영업 이익을 일방적으로 이동통신사가 결정함으로 컨텐츠
      제공회사는 갑을 관계에 따라 수용할 수 밖에 없음.

   5) 장비 제조회사및 이동통신사에서 판매되는 폰은 기능상의 제약이 매우 많아 고수준의 컨텐츠
      구현에 어려움이 많았음, 일반 컨텐츠 개발자에게 핸드폰의 중요 기능을 제어할 수 있는 API 비공개.      

   6) Mac을 판매하는 애플은 아이폰을 통해 폐쇄적인 컨텐츠 유통 구조, 부족한 하드웨어 성능을 크게 개선함.

   7) 애플은 기존의 소프트웨어 컨텐츠 유통방식을 이동통신사 중심에서 개발자와 컨텐츠를
      판매하는 마켓 중심으로  변경하였고 간단한 승인만으로 Application을 마켓에 등록해 전세계를
      대상으로 판매하고 수익을 개발자가 7 애플이 3을 갖는 유통 혁명을 제공함. 
      따라서 기본의 KT, SK Telecom, LG Telecom 및 Samsung, LG는 컨텐츠 유통에 관려 할 수 없다.
     
   8) 애플은 소프트웨어 개발 킷, 장비 제조(일반적인 핸드폰 생산 회사), 판매(이동통신사)를 애플이
      지정한 업체만 가능하도록 폐쇄적인 정책을 진행하고 있음. 우리나라의 경우 KT만 판매 가능.

   9) 중요 API 비공개가 많아 스마트폰 App의 개발에 제약이 많음.
      이런 문제로 해킹과 탈옥이 많이 발생함.
   
   10) 2007년 11월 Google은 OHA(Open Handset Alliance)구성 하였으며 이 협회는
       Google(SDK 배포), 칩 제조사, 단말기 제조사(Samsung, Motorola, HTC, LG등),
       소프트웨어 개발사(Google 주도), 서비스 공급 업체등을 포함하는 전략적인 협력 기구로
       설립됨.

   11) 안드로이드 플렛폼은 아이폰과 다르게 장비제조 및 판매에 제약이 없음.
       마켓을 누구나 만들 수 있음.

   12) 안드로이드 OS를 변경하여 스마트폰 뿐만 아니라, 태블릿 PC, PMP, MP3, Navigation, TV 등
       영역을 가리지 않고 IT모든 분야에 응용할 수 있음.

   13) 안드로이드는 개발자가 자유롭게 개발하여 폰에서 아무 제약 없이 테스트가 가능하며,
       마켓에 올릴 수 있고 유통이 가능하다.

   14) Android는 아이폰에 비해 대부분의 폰과 관련된 모든 API를 전부 공개해 개발자가 App을
       개발하는데 API적인 제약이 거의 없고 WIFI 접속 기능과 고성능 하드웨어 장치(DB, GPS, Camera, Sensor...)가
       지원됨으로 개발자가 컨텐츠를 구현하는데 제한이 별로 없다.

   15) 정부 주도하에 폐쇄적인 모바일 정책은 우리나라에 IPhone, Android가 들어오는 것을
       막고 컨텐츠 유통을 기형적으로 만들어 많은 건전한 스마트폰 시장 발전하는데 많은
       장애가 됨.         


 

2. 안드로이도 아키텍쳐(플렛폼)

   안드로이드 Application
   ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
   DALVIK VM(SendBox 보안 모델)
   ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
   Android OS(Froyo 2.2등)
   ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
   Linux OS(Kernal 2.6.XX)
   ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
   Memory Management, Process Management, Network Stack, IO, Power, WIFI, Bluebooth
   Camera, Audio, Telephony, SD Card Flash Memory, Sensor, GPS, etc
   ----------------------------------------------------------------------------------------------------------------------------------------------------------------------

 


3. 개발과 관련된 주요 기능들
   - 사용자 인터페이스 wedget(View, 콘트롤)
   - 사용자 인터페이스 레이아웃(Layout, View의 배치)
   - 보안(암호화), 네트워킹, 웹 브러우징(SSL, WebKit)
   - 구조적 저장소(Content Provider), 관계형 데이터베이스(SQLite)
   - 2D, 3D 그래픽 지원(SGL, OpenGL ES 1.0)
   - 동영상 포맷 지원(MPEG4, MP3, 정지 이미지)
   - 위치 기반 서비스(LBS, GPS), WiFi, Bluetooth등의 하드웨어 접근

 


4. 안드로이드 응용 프로그램의 요소.
   - Activity: 응용 프로그램이 수행하는 기능, 하나의 윈도우.
   - View    : 사용자 인터페이스를 구성하는 콘트롤.
   - Layout  : View의 그룹, 사용자 인터페이스를 구성하는 View의 배치.
   - Intent  : Activity를 실행하는 역활.
   - Service : demon process, thread등의 프로그램 가능.
   - notification: 전화가 오는등의 특정 상황 처리 가능

 


5. 안드로이드 개발 환경
   1) JDK 1.6 설치
   2) Eclipse WTP 3.5 Galileo 설치
   3) Android SDK 1.6, 2.1, 2.2 설치
   4) 시중 모든폰 가능, 폰이 없는 경우 에뮬레이터에서 테스트 가능.

  


6. Android는 자바를 기반으로하나 자바의 API외에 Android 전용 API가 많이
   추가되어 많은 부분에서 새로운 API에 대한 학습이 필요함.
   기존의 Web 개발과 많은 부분이 다른데 특히 JAVA IO/Network,
   XML, Algorithm과 관련된 지식이 중요합니다.

 

 

[02] jdk1.6.0 설정 - Windows 기반 설정

   - JAVA의 Version

     J2SE = J2SDK = JDK

     JAVA,                   
     J2SE 1.5.0(5.0)  <-- SDK 1.5 개발 기준 버전
     J2SE 1.6.0(6.0) 


   - 수업 관련 폴더 생성
     H:/201004_android
     H:/201004_android/install_backup
     H:/201004_android/workspace_android

 

1. 다운 로드
   - http://java.sun.com/

 


2. 자바의 삭제
   - 설치 확인: java -version
   - 자바 삭제시 관련 프로그램(인터넷 익스플로러등)을 전부 종료후 삭제합니다.
   - [제어판 >> 프로그램 추가/제거]에서 삭제합니다.

 


3. 설치시 환경 변수의 지정
   - 환경 변수의 설정 (내 컴퓨터 -> 고급 -> 환경변수)
     . 경로와 경로사이는 반드시 ";"으로 구분을 해주어야 합니다.
     . 일반적으로 환경변수명은 대문자를 사용합니다.


   ★ 설치 경로: C:\jdk1.6.0


   ⓐ 변수이름: PATH     
      값: C:\jdk1.6.0\bin; 기존의 값에 추가

      . 도스상에서 Windows가 프로그램 찾는 경로를 지정합니다.
      . 기존에 등록된 윈도우관련 경로를 삭제하면 안됩니다.
      . 오라클 9i설치된 경우 오라클에 내장된 j2sdk1.3.1, 1.1.8이 인식이 됨으로 이것을 PATH에서 지워야 합니다.
      . ';'의 의미: 경로가 여러게 등록될 경우 구분자의 역활을 합니다.

      기존의 경로를 지운 경우 =>
      %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\jdk1.6.0\bin;

 

   ⓑ 변수이름: CLASSPATH 
      값      : .;C:\jdk1.6.0\lib\tools.jar

      . JVM이 클래스를 찾는 경로를 지정합니다.
      . "."은 현재 폴더를 가르킵니다.
      . ".."상위 폴더를 가르킵니다.
      . tools.jar은 자바 유틸리티 프로그램이 필요한 클래스를 구현하여
        가지고 있습니다. C:\jdk1.6.0\bin폴더에 있는 실행 파일들이
사용하게 됩니다.

 

      - 설치 확인 :
        . 경로를 수정하면 도스창을 다시 열어 확인합니다.
        . C:\>echo %CLASSPATH%
        . C:\>echo %Path%

        . java -version, javac.exe

 

 


[03] Eclipse JAVA Compile environment setting - Windows 기반 설정

1. Eclipse 프로젝트 진행 사이트
   http://www.eclipse.org
   http://www.eclipse.org/ganymede/에 접속하여 다운 받습니다.
   설치를 위해서는 1G 정도의 하드디스크 공간이 있어야 합니다.
   추가적인 Plugin을 설치하려면 계속적으로 공간이 필요합니다.
   다운이 다 되었으면 압축을 풀어 필요한 곳으로 복사를 하면 설치가 다 된것입니다.


※ SDK 1.6부터는 Eclipse Galileo 버전 지원
   

[참고] 이클립스 실행시 메모리 에러 해결: eclipse.ini 파일 수정

-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
-framework
plugins\org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m    <-- 256 으로 변경

 


2. Eclipse setting
   - workspace : workspace_android
   - Eclipse 3.X setting
     . Font       : Preference --> General --> Apperance --> Colors and Fonts -->
                    Basic --> Text Font에서 수정
     . Line Number: Preference --> General --> Editors --> Text Editors -->
                    "Insert spaces for Tabs, Show Line Number" Check
     . TAB        : Preference --> Java --> Code Style --> Formatter -->
                    New...Button click --> "android" 입력 후 확인 --> Tab policy를
                    "Spaces only"선택하고 확인 버튼을 클릭합니다.

 

 


[04] Android SDK Updater 설치 - Windows 기반 설정

1. Android SDK 2.1 download
   - Android open source 프로젝트 진행 사이트
     http://developer.android.com/sdk/index.html


   - 설치 폴더: H:/201005_android_6/android-sdk-windows

 


2. PATH 환경 변수 설정
   H:/201005_android_6/android-sdk-windows/tools

예)
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\jdk1.6.0\bin;H:/201005_android_6/android-sdk-windows/tools;

 

 

[05] Eclipse에 Android ADT(Android Development Tools) 설치 - Windows 기반 설정

1. ADT 설치
   [Eclipse --> Help --> Software Updates... --> Available Software --> Add Site]
   Location: https://dl-ssl.google.com/android/eclipse

   'Developer Tools'선택 --> Install

 


2. Eclipse 재 시작

 


3. Android SDK 설치
   1) [Windows --> Preferences --> Android --> SDK Location]
      H:/201004_android/android-sdk-windows 지정
  
   2) [Window --> Android SDK and AVD Manager] 실행

   3) Available Packages 선택후 설치
      □ SDK Platform Android 1.5, API 3, revision 3
      □ Google APIs by Google Inc., Android API 3, revision 3
      □ USB Driver package, revision 3

   4) License Accept화면에서 'All Accept' 전부 동의 하고 진행

   5) H:/201006_android_6/android-sdk-windows/platforms 폴더에서 설치된
      SDK 확인

 

 


[06] AVD(안드로이드 가상 장치, Android Virtual Device) - Windows 기반 설정
     - Emulator, 실제 폰과 비슷한 기능을 가지고 있으나 전화, 문자, 카메라,
       센서 같은 하드웨어 기능은 제공하지 않음.
    
1. 안드로이드폰 에뮬레이터의 설정
   [Window --> Android SDK and AVD Manager --> Virtual Devices]

   Name    : AVD21
   Target  : Google APIs (Google Inc.)- API Level 7: GPS 지원
             Android 2.1 API Level 7: GPS 지원 안함
   SD Card : 512
   Skin    : Default(HVGA) 320 X 480
   Hardward: Abstracted LCD density, GPS support, SD Card support
  

 

2. Emulator 테스트
   emulator는 많은 메모리를 사용하고 실행 속도가 느림으로 종료하지말고 할 것.
   그렇지 않으면 테스트폰을 USB로 연결하고 작업하면 작업 속도가 향상 될 수 있다.

 


3. Locale(지역) 설정
   [Emulator --> Menu --> Settings --> Locale & Text --> Korean]선택시 아이콘이
   한글로 출력됨.


 
4. 한글 키보드 설정
   1) http://www.androidpub.com/198992 에 접속하여 'HangulKeyboard.apk'파일을 다운받습니다.
   2) 핸드폰이 연결되어 있다면 연결을 해제하고 에뮬레이터를 실행합니다.
   3) H:
      cd H:/201006_android_6/install_backup
      dir
      adb install HangulKeyboard.apk
   4) Emulator: 설정 --> 로케일 & 텍스트 --> 한글 접촉식 키보드 선택
   5) 에뮬레이터에서 [?123]버튼을 길게 눌러 입력방식을 변경합니다.


※ apk 삭제
   adb uninstall HangulKeyboard.apk


※ apk 재설치
   adb install -r HangulKeyboard.apk

 


5. Android reference
   1) API Level: SDK1.0-1, SDK1.1-2, SDK1.5-3, SDK1.6-4, SDK2.0.1-6, SDK2.1-7
   2) URL: http://developer.android.com/reference/packages.html
  

 

 

 

Posted by ▶파이팅◀

블로그 이미지
Let's start carefully from the beginning
▶파이팅◀

태그목록

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.3
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

최근에 올라온 글

최근에 달린 댓글

글 보관함