* 안드로이드

구글 안도로이드는 개방적이고 무료인 최초의 모바일 플랫폼이다.
  • 모바일 사용자 : 다양하고 많은 컨텐츠
  • 이동통신 : 수익성 높은 방식으로 컨텐츠 통제
  • 모바일 개발자 : 콘텐츠 개발을 통한 수익
  • 단말기 제조사 : 저렴한 비용으로 사용할 수 있는 플랫폼
특징
  • 라이센스 사용료가 없다.
  • 운영체제 : GPL v2
  • 플랫폼 : ASL / Apache2
  • 카메라, 센서, GPS, Wi-Fi 등의 하드웨어 접근 가능
  • 구글맵 지원
  • 백그라운드 서비스 지원
  • SQLite 데이터베이스 지원
  • 공유데이터와 어플리케이션 간의 통신을 지원
  • 2D / 3D 지원
  • 최적화된 메모리와 프로세스 관리
실행환경

어플리케이션 
Email 클라이언트, SMS 프로그램, 달력,
지도, 브라우저 등의 코어 어플리케이션 
어플리케이션 프레임워크 
안드로이드 어플리케이션 개발 시
필요한 API 를 제공 
라이브러리 (Android Runtime) 
안드로이드 프레임워크에서 필요한 C 와
C++ 라이브러리 
리눅스 커널 
메모리 관리, 프로세스 관리, 네트워크 세펠 등
하드웨어 지원 



개발환경구축 (리소스 다운로드)
  • Android SDK
    • Download : http://developer.android.com/sdk/index.html/
  • Eclipse galileo
    • Download : http://www.eclipse.org/downloads/
  • Java SDK
    • Download : http://java.sun.com/javase/downloads/index.jsp
  • Eclipse ADT Plugin
    • Download : https://dl-ssl.google.com/android/eclipse/
구글 안드로이드 개발자 사이트
http://developer.android.com/index.html

구글 안드로이드 개발형태
  1. Managed Code
    • Java 로 Dalvik VM 에서 동작하는 프로그램을 작성하는 방식
  2. Web Apps
    • 웹 서버에 웹페이지를 작성하고 이를 안드로이드의 브라우저로 실행하는 방식
  3. Native Code
    • C / C++ 로 작성된 라이브러리를 Dalvik 에서 JNI (Java Native Interface)  형태로 호출하는 방식

안드로이드 어플리케이션 프로젝트 구조

assets : 디바이스에 어플리케이션을 설치할때 함께 설치할 데이터 파일.
bin : 컴파일 된 어플리케이션 파일
gen : 안드로이드 빌드 시스템에 의해 자동으로 생성된 리소스 참조 파일
res : 문자열, 이미지등 어플리케이션에서 사용할 리소스 파일
src : 어플리케이션 소스코드

AndroidManifest.xml : 어플리케이션의 기본 설정 파일
default.properties : Ant 빌드 스크립트에서 참조하는 설정 파일

리소스 디렉토리 구조
  • res/drawable-hdpi : 해당 해상도에서 보여질 이미지
  • res/drawable-ldpi : 해당 해상도에서 보여질 이미지
  • res/drawable-mdpi : 해당 해상도에서 보여질 이미지
  • res/layout : 사용자 인터페이스에서 레이아웃을 정의하는 XML 파일
  • res/menu : 메뉴를 정의하는 XML 파일
  • res/values : 문자열 등 각종 값을 정의하는 파일
  • res/xml : XML 형태로 저장된 다양한 파일
  • res/raw : 기타 파일 (mp3, mp4 등등)
결과 디렉토리 구조
  • bin/classes/ : 컴파일된 자바 클래스
  • bin/classes.dex : 컴파일된 자바 클래스로 생성한 Dalvik 클래스 파일
  • bin/resources.ap_ : 컴파일된 자바 클래스로 생성한 Dalvik 클래스 파일
  • bin/app_name.apk : 컴파일된 자바 클래스로 생성한 Dalvik 클래스 파일
AndroidManifest.xml 파일 구조


<use-permission> 애플리케이션이 필요로 하는 권한
<permission> 외부 액티비니나 서비스가 필요로 하는 권한
<instruction> 액티비티가 실행되는 등의 주요이벤트가 발생했을때 어플리케이션의 어떤 부분을
 호출할 지를 결정 (기록, 모니터링)
<uses-library> 추가로 필요로 하는 라이브러리 지정 (구글맵스)
<uses-sdk> 어플리케이션이 필요로 하는 안드로이드 버전
<application> 어플리케이션과 관련된 정보

<activity> 어플리케이션이 사용할 클래스 지정
<service> 백그라운드에서 실행할 클래스 지정
<receiver> 브로드캐스트 리시버 클래스 지정
<use-library> 어플리케이션에서 사용할 외부 라이브러리


+ Recent posts