구성 및 특징 - 출처: https://ko.wikipedia.org/wiki/안드로이드_(운영_체제)

구성 및 특징내용
핸드셋 레이아웃플랫폼은 VGA2D 그래픽스 라이브러리, OpenGL ES 1.0에 기반을 둔 3D 그래픽스 라이브러리를 확장하기에 적응적이다.
저장소데이터 저장 목적의 SQLite 데이터베이스 소프트웨어가 사용됨.
통신안드로이드는 GSM/EDGECDMAEV-DOUMTS블루투스와이파이를 포함하는 커넥션 기술을 지원한다.
메시징SMS와 MMS가 가능.
웹 브라우저오픈 소스인 웹키트 응용 프로그램 프레임워크 기반의 브라우저 지원.
자바 지원자바로 작성된 소프트웨어는 달빅 가상 머신에서 실행 가능한 코드로 컴파일된다. 달빅 가상 머신은 표준 자바 가상 머신은 아니지만 모바일 기기를 위해 설계된 레지스터 기반의 가상 머신이다.안드로이드 4.4 킷캣 부터는 달빅 가상 머신외의 개발자 옵션에서 ART런타임을 선택할 수 있게되었고, 안드로이드 5.0 롤리팝부터는 달빅 가상머신이 ART런타임으로 완전히 교체되었다.
미디어 지원안드로이드는 다음의 오디오/비디오/이미지 포맷을 지원한다: H.263H.264 (3GP 또는 MP4 컨테이너), MPEG-4 SPAMRAMR-WB (3GP 컨테이너), AACHE-AAC (MP4 또는 3GP 컨테이너), MP3미디OGG VorbisWAV,JPEGPNGGIFBMP.
추가 하드웨어 지원안드로이드는 카메라, 터치스크린GPS가속도계자력계트랙볼 2D 그래픽 가속, 3D 그래픽 가속을 활용할 수 있다.
개발 환경기기 에뮬레이터, 디버깅 도구, 메모리와 성능 프로파일링을 포함하는 이클립스 IDE 플러그인인 ADT, 플랫폼 개발 키트인 PDK
마켓

iOS의 앱 스토어와 유사한 구글 플레이는 PC 사용 없이 무선으로 대상 하드웨어로 다운로드와 설치가 가능한 응용 프로그램 목록을 제공. 2011년 2월 허니컴 발표와 함께 웹을 통한 마켓 이용이 가능해졌다. 웹마켓에서는 여러대의 안드로이드 기기를 등록하여 사용할 수 있도록 확장되어 있다.

원래 프리웨어만 지원 되었으나 2009년 2월 19일 부터 유료 애플리케이션도 제공되었다. 별도의 라이선싱, 애플리케이션 안에서 유료 구매를 위한 SDK가 함께 발표되었다.

멀티 터치

안드로이드는 멀티 터치를 기본으로 지원한다. 한때 미국에서 출시되는 모델에 한해서, 애플의 터치스크린 기술 특허 침해를 피하기 위해, 멀티터치 기능이 커널 수준에서 비활성화되었다. 이후에 구글은 넥서스 원드로이드를 위해 멀티터치를 네이티브에서 지원하는 업데이트를 발표하였다.

블루투스핸즈프리 통화(HFP), 음악 재생(A2DP,AVRCP) 기능이 있으며 블루투스를 통한 파일 전송이 버전 2.0에 추가되었다. 이외 ICS 이후로 Bluetooth 4.0 기술인 BluetoothHealth 기능도 추가되었다.

- ADB (Android Debug Bridge)
 : Android SDK로서 Android 장치를 제어하거나 인터페이스할 수 있도록 해주는 툴
 : ADB는 SDK에 포함


구조



안드로이드의 구조는 왼쪽 그림과 같은 구성 요소로 구성되며 이 구성 요소에는 응용 프로그램, 응용 프로그램 프레임워크

이브러리, 안드로이드 런타임리눅스 커널의 총 5개의 계층으로 분류되어 있다.

① Applications: 안드로이드 앱
② Applications Framewrok: 안드로이드 앱이 구동되기 위해 필요한 환경 및 기능을 제공.
③ Libraries: C/C++로 구성된 계층으로 하드웨어를 제공하는 기능 제공
④ Android Runtime: 자바 앱을 동작시키기 위한 런타임 달빅 머신.
⑤ 
리눅스 커널: 프로세스 관리, 메모리 관리, 파일시스템 관리, 디바이스 제어, 네트워크 관리 기능 제공.

안드로이드 앱의 컴파일 과정 - 출처: 이것이 안드로이드다



- java virtual machine 과 dlavik virtual machine 의 차이점(출처: http://i5on9i.blogspot.kr/2013/01/jvm-dvm.html)


JVM
DVM
stack/register
stack basedregister-based
.jar/.dex
jar(.class file 의 묶음)DEX(다른 구조와 opcode 를 가졌다.)
instruction 의 양
stack-based 는 data를 stack에 load 하고 그 data 를 사용할 때 register-based 보다 더 많은 instructions 를 사용해야만 한다.register-based 에서는 instruction 에서 source 와 destination register 만 지정해 주면 된다. 그래서 소스가 더욱 작아질 수 있다.
최종파일
java -> .classjava -> .class -> .dex
.class/.dex
java byte code로 된 .class 파일 실행시켜준다.own byte code로 된 .dex file 을 실행시켜준다.
DVM 은 device 가 여러개의 VM instances 를 효과적으로 실행할 수 있도록 디자인되었다.
low memory에서 동작하도록 디자인

안드로이드 버전



VersionCodenameAPI
2.2Froyo8
2.3.3 -
2.3.7
Gingerbread10
4.0.3 -
4.0.4
Ice Cream Sandwich15
4.1.xJelly Bean16
4.2.x17
4.318
4.4KitKat19
5.0Lollipop21
5.122
6.0Marshmallow

23

리소스 ID

genc 폴더에 R.java는 리소스 객체의 포인터가 아니다. 리소스를 참조할 수 있도록 메모리 주소 대용으로 사용하는 ID

'Programing > Android' 카테고리의 다른 글

안드로이드 - JNI  (0) 2015.12.23
안드로이드 - Init 프로세스  (0) 2015.12.21
안드로이드 - 커널  (0) 2015.12.21
안드로이드 - 뷰  (0) 2015.12.21
안드로이드 - 4대 컴포넌트  (0) 2015.12.21
  • 웹 요청에 대한 처리(출처 - 순청향대학교 컴퓨터공학과 이상정)












'Major > Network' 카테고리의 다른 글

HTTP1.0 ~ HTTP2.0  (0) 2016.04.12
http vs https  (0) 2016.03.23
네트워크 - Link Layer  (0) 2015.12.17
네트워크 - Network Layer  (0) 2015.12.10
네트워크 - Transport Layer  (0) 2015.12.09
  • Datalink Layer Service 
    : 오류 검출 및 정정
    : 브로드캐스트 채널 공유 : 다중 접속
    : 링크 계층 주소체계
    : 근거리 네트워크(LAN) - 이더넷, VLAN
    : 경로 상의 각 링크에서 서로 다른 링크 계층 프로토콜로 데이터그램 전송, 각 링크 프로토콜은 서로 다른 서비스 제공


      

      

  • 오류 검출 및 정정 기술
    - EDC(Error Detection and Correction)
    - 패리티 검사
    - 인터넷 체크섬
    - 순환중복검사(CRC: Cyclic Redundancy Check)


  • 다중 접속 프로토콜 (Multiple Access Protocol, MAC protocol)
  • : 둘 이상의 노드가 동시에 전송하면 충돌이 발생

    - 채널 분할 프로토콜
    (channel partition protocol)

     : 채널을 더 작은 "조각"들로 분할(시간 슬롯, 주파수, 코드)
     : 할당된 조각들은 노드가 배타적으로 사용
     : 높은 부하에서는 효율적이고 공정하게 채널 공유
     : 낮은 부하에서는 비효율적(하나의 활성 노드에 대해서도 1/N 대역폭 할당)
     : TDMA(Time Division Multiple Access), FDMA(Frequency Division Multiple Access), CDMA(Code Division Multiple Access)


    - 랜덤 접속 프로토콜(random access protocol)

     : 채널은 분할하지 않고 충돌 허용
     : 충돌 시 복구
     : 낮은 부하에서는 효율적(단일 노드가 전체 채널 대역폭 사용
     : 높은 부하에서는 충돌 오버헤드
     : 캐리어 센싱(유선에서는 감지 쉽지만, 무선에서는 어려움)
     : 이더넷에서 적용된 CSMA/CD, 802.11에 적용된 CSMA/CA
     : 알로하(ALOHA), 슬롯 알로하(S-ALOHA, slotted ALOHA), CSMA(Carrier Sense Multiple Access), CSMA/CD(Collison Detection), CSMA/CA 

     

     



    - 순번 프로토콜(taking turns protocol)
     : 노드가 순번대로 채널을 사용
     : 더 많은 데이터를 전송하는 노드는 오랫동안 순번을 기다려야 함
     : 두 가지의 장점을 취함
     : 폴링, 토큰 전달
     : 블루투스, FDDI(Fiber Distributed Data Interface)
     
     


  • 근거리 네트워크(LAN)

    - MAC 주소

     

     

    - ARP(Address Resolution Protocol)
     
      ■ 같은 LAN
        

      ■ 다른 LAN으로 라우팅
      
         


  • 이더넷
    : 오늘날 가장 많이 사용되는 LAN 기술
    : 가격 저렴
    : 토큰 LAN이나 ATM보다 더 싸고 간단
    : 빠른 속도
    : 1990년대 중반까지 버스 토폴로지 형태를 사용하다가 오늘날은 중앙에 스위치를 둔 스타 토폴로지 사용(노드간의 충돌이 없음)
     

  • 스위치
    - 허브



    - 이더넷 스위치


    - 라우터 vs. 스위치
     

  • 가상 근거리 네트워크(VLAN)
    :트래픽 격리, 동적 멤버쉽, VLAN들 간의 전달


  • 링크 가상화(MPLS)

     


'Major > Network' 카테고리의 다른 글

http vs https  (0) 2016.03.23
네트워크 - 총 정리  (0) 2015.12.18
네트워크 - Network Layer  (0) 2015.12.10
네트워크 - Transport Layer  (0) 2015.12.09
네트워크 - Application Layer  (0) 2015.12.02

+ Recent posts