Android Document  SDK old PDF 파일
What is Android?
작성자
작성일 2008-03-03 (월) 10:45
ㆍ추천: 0  ㆍ조회: 12027      
IP: 221.xxx.120

 What is Android? [안드로이드란 무엇인가?]

Android is a software stack for mobile devices that includes an operating system, middleware and key

applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing

applications on the Android platform using the Java programming language.

안드로이드는 운영체제, 미들웨어 그리고 핵심 애플리케이션을 포함하고 있는 모바일 디바이스를 위한 소프트웨어

스택이다. 안드로이드 SDK의 초기 형태는 Java 프로그래밍 언어를 사용하여 안드로이드 플랫폼 상에서

애플리케이션 개발을 시작하기 위해 필요한 도구들과 API들을 제공한다.

Features [특징들]

  • Application framework enabling reuse and replacement of components
  • Dalvik virtual machine optimized for mobile devices
  • Integrated browser based on the open source WebKit engine
  • Optimized graphics powered by a custom 2D graphics library;
    3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
  • SQLite for structured data storage
  • Media support for common audio, video, and still image formats
    (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • GSM Telephony (hardware dependent)
  • Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
  • Camera, GPS, compass, and accelerometer (hardware dependent)
  • Rich development environment including a device emulator, tools for debugging,
    memory and performance profiling, and a plugin for the Eclipse IDE


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

Android Architecture [안드로이드 아키텍처]

The following diagram shows the major components of the Android operating system. Each section is
described in more detail below.

 
아래의 그림은 안드로이드 운영체제의 주요 구성요소를 보여준다. 각 영역은 보다 상세하게 아래에서 묘사된다.
 
 

Applications [애플리케이션]

Android will ship with a set of core applications including an email client, SMS program, calendar, maps,
browser, contacts, and others. All applications are written using the Java programming language.

 
안드로이드에는 이메일 클라이언트, 문자메시지 프로그램, 달력, 지도, 브라우저, 전화번호부(?), 그리고 다른
것들을 포함하는 핵심 애플리케이션들의 탑재될 것이다. 모든 애플리케이션은 Java 프로그래밍 언어로 작성된다.

Application Framework [애플리케이션 프레임워크]

Developers have full access to the same framework APIs used by the core applications. The application
architecture is designed to simplify the reuse of components; any application can publish its capabilities
and any other application may then make use of those capabilities (subject to security constraints
enforced by the framework). This same mechanism allows components to be replaced by the user.

Underlying all applications is a set of services and systems, including: 개발자들은 핵심 애플리케이션들에서 사용되는 것과 동일한 프레임워크 API에 완벽하게 접근할 수 있다. 애플리케이션의 아키텍처는 컴포넌트의 재사용을 쉽게 하도록 디자인되었다; 어떤 애플리케이션은 해당 애플리케이션의 기능들을 외부에 제공할 수 있으며, 다른 어떤 애플리케이션은 그렇게 제공된 기능들을 사용할 수도 있다. (프레임워크에 의해 강제되는 보안 제약에 의거해서). 이와 같은 메카니즘은 사용자에 의한 컴포넌트의 대체를 가능하게 한다. 아래에 나열된 모든 애플리케이션은 하나의 서비스와 시스템의 집합체이다.
  • A rich and extensible set of Views that can be used to build an application, including lists, grids,
    text boxes, buttons, and even an embeddable web browser
  • Content Providers that enable applications to access data from other applications (such as Contacts),
    or to share their own data
  • A Resource Manager, providing access to non-code resources such as localized strings, graphics,
    and layout files
  • A Notification Manager that enables all applications to display custom alerts in the status bar
  • An Activity Manager that manages the life cycle of applications and provides a common navigation
    backstack 


     
  • 풍부하고 확장성있는 뷰 집합 : 리스트, grid, 텍스트 박스, 버튼, 심지어는 임베팅간능한 웹 브라우저를
    포함하는 애플리케이션을 제작하는 데 사용될 수 있음.
  • 컨텐트 제공자 : 애플리케이션이 다른 애플리케이션(전화번호부? 같은)의 데이타에 접근하는 것이나
    자신의 데이타를 공유시키는 것을 가능하게 함.
  • 리소스 관리자 : 문자열,그래픽,레이아웃 파일과 같은 코드화되지 않는 자원에 대한 접근을 제공함.
  • 알림 관리자 : 모든 애플리케이션이 상태바에 애플리케이션이 만든 알림메시지를 표시하는 것을 가능케함.
  • 행위 관리자 : 애플리케이션의 생명주기를 관리하며, 일반적인 네비게이션 히스토리를 제공함.
For more details and a walkthrough of an application, see Writing an Android Application.

애플리케이션에 대한 보다 상세한 가이드는 안드로이드 애플리케이션 작성하기를 보십시오.

Libraries [라이브러리]

Android includes a set of C/C++ libraries used by various components of the Android system. These
capabilities are exposed to developers through the Android application framework. Some of the core libraries
are listed below:


안드로이드는 안드로이드 시스템의 다양한 컴포넌트에 의해 사용되는 C/C++ 라이브러리 집합을 포함하고 있다.
이러한 라이브러리의 기능들은 안드로이드 애플리케이션 프레임웍크을 통해서 개발자들에게 제공된다.
아래에 나열될 것은 핵심 라이브러리들 중 일부분이다.
  • System C library - a BSD-derived implementation of the standard C system library (libc), tuned for
    embedded Linux-based devices
  • Media Libraries - based on PacketVideo's OpenCORE; the libraries support playback and
    recording of many popular audio and video formats, as well as static image files, including MPEG4,
    H.264, MP3, AAC, AMR, JPG, and PNG
  • Surface Manager - manages access to the display subsystem and seamlessly composites 2D
    and 3D graphic layers from multiple applications
  • LibWebCore - a modern web browser engine which powers both the Android browser and an
    embeddable web view
  • SGL - the underlying 2D graphics engine
  • 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware
    3D acceleration (where available) or the included, highly optimized 3D software rasterizer
  • FreeType - bitmap and vector font rendering
  • SQLite - a powerful and lightweight relational database engine available to all applications 

     
  • 시스템 C 라이브러리 - 임베디드 리눅스 기반의 디바이스를 위해서 튜닝된 표준 C 시스템 라이브러리의
    BSD 기반 파생 구현물 (libc) 
  • 미디어 라이브러리 - PacketVideo의 OpenCORE기반임; MPEG4, H.264, MP3, AAC, AMR, JPG, PNG를
    포함하는 정적 이미지 파일뿐아니라, 널리 대중화된 오디오나 비디오 포맷들의 재생 및 녹화를 지원함.
  • Surface 관리자 - 디스플레이 서브시스템에 대한 접근을 관리하며, 다수의 애플리케이션들과 분리된 통합된
    2D 와 3D 그래픽 계층을 제공함. (?)
  • LibWebCore - 안드로이드 브라우저와 임베딩가능한 웹 뷰를 제공하는 최신 웹 브라우저
  • SGL - 기반이 되는 2D 그래픽 엔진
  • 3D 라이브러리 - OpenGL ES 1.0 API들에 기반한 구현; 하드웨어 3D 가속기(유용하다면)나 탑재된 고최적화
    된 3D 소프트웨어 래스터라이저를 사용함.
  • FreeType - 비트맵 또는 벡터 폰트 렌더링
  • SQLite - 모든 애플리케이션에서 사용가능한 강력하며 경량화된 관계형 데이타베이스 엔진

Android Runtime [안드로이드 런타임]

Android includes a set of core libraries that provides most of the functionality available in the core libraries
of the Java programming language.

Every Android application runs in its own process, with its own instance of the Dalvik virtual machine.
Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes files in
the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM is
register-based, and runs classes compiled by a Java language compiler that have been transformed into
the .dex format by the included "dx" tool.

The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level
memory management.


안드로이드는 Java 프로그래밍 언어의 핵심 라이브러리에서 사용가능한 대부분의 기능들을 포함하는 핵심
라이브러리들을 포함한다.
모든 안드로이드 애플리케이션은 Dalvik 가상 머신내의 자신의 인스턴스를 가지고, 자신의 프로세스내에서
동작한다.  Dalvik은 하나의 디바이스가 복수의 VM들을 효과적으로 실행하도록 만들어졌다. Dalvik VM 최소 메모리
사용하도록 최적화된 Dalvik Executable(.dex) 포맷의 파일들을 실행한다. Dalvik VM은 레지스터 기반이며,
Java 언어 컴파일러에 의해 컴파일된 클래스를 "dx"라는 도구에 의해 .dex 포맷으로 변환된 클래스를 실행한다.
Dalvik VM은 쓰레딩과 저수준 메모리 관리와 같은 기능을 위해 리눅스 커널에 기초한다.
 

Linux Kernel [리눅스 커널]

Android relies on Linux version 2.6 for core system services such as security, memory management,
process management, network stack, and driver model. The kernel also acts as an abstraction layer
between the hardware and the rest of the software stack.

 
안드로이드는 보안, 메모리 관리, 프로세스 관리, 네트웍 스택, 드라이버 모델 등과 같은 핵심 시스템 서비스를
위해 리눅스 버전 2.6에 기반한다. 또한 이 커널은 하드웨어와 나머지 소프트웨어 스택간의 추상화된 계층으로써
역할을 수행한다.
이름아이콘 단비
2009-03-12 11:55
감사 합니다. 내용 잘 보았습니다.
   
이름아이콘 TaekLove
2009-03-12 13:42
들풀님 최고! 좋은 자료 감사합니다. 수고하세요 ^____^;
들풀 조금 많이 지난 자료인데..
조만간 조금 더 깨끗한 안드로이드 전체 번역본을 보여주게 될 듯 싶습니다.. 좋은 시간 되세요..~
3/12 15:21
   
이름아이콘 greenfrog
2009-06-12 08:54
완벽한 번역 감사합니다. ㅠㅠ (감동 ~)
   
이름아이콘 Mr.hj
2009-07-01 18:59
번역 감사합니다.
   
이름아이콘 검린
2009-11-04 14:19
잘 읽었습니다.
   
이름아이콘 Fermata39
2010-04-11 20:54
감사합니다 잘 읽었습니다 ^^
   
 
덧글 쓰기 0
3500
※ 회원등급 레벨 0 이상 읽기가 가능한 게시판입니다.
    N     분류     제목    글쓴이 작성일 조회
48 What is Android? 2008-03-03 12027
47 Getting Started with Android 2008-03-03 9211
46 Implementing a User Interface 2008-03-03 4512
45 Hierarchy of Screen Elements 2008-03-03 4520
44 Common Layout Objects 2008-03-03 5510
43 Working with AdapterViews 2008-03-03 3606
42 Designing Your Screen in XML 2008-03-03 4062
41 Listening for UI Notifications 2008-03-03 3524
40 Applying a Theme to your Application 2008-03-03 3386
39 UI Elements and Concepts Glossary 2008-03-03 4126
38 Android Building Blocks 2008-03-03 3957
37 Storing, Retrieving and Exposing Data 2008-03-03 2983
36 Security and Permissions in Android 2008-03-03 3812
35 Life Cycle of an Android Application 2008-03-03 5140
34 Developing Android Applications 2008-03-03 3871
33 Resources and Internationalization 2008-03-03 3877
123456