• 1나루토매니아
  • 2뱅이
  • 3푸타코타
  • 4완벽그자체
  • 5해삼
  • 1뱅이
  • 2나루토매니아
  • 3알짜배기
  • 4뱅이
  • 5빙그레우유
[안드로이드 앱 개발] 1.안드로이드 이해하기
연속출석 :
1일 랭킹 : 2위 별훈5
42%
42% (84989 /200000)
  • 댓글 11 |
  • 추천 3 |
  • 조회 12770 |
  • 2013-10-28 (월) 13:21

    * 개요

    • 안드로이드는 리눅스 기반의 모바일 운영체제로 스마트폰 운영체제 중에서 애플의 iOS와 더불어 세계 시장을 양분하고 있는 대표적인 운영체제(OS)이다. 구글이 안드로이드사를 인수하면서 본격화되었는데 구글과 함께 여러 하드웨어, 소프트웨어 및 통신 업체들의 연합인 OHA(Open Handset Alliance)에서 공개 표준을 만들어 가고 있다.
    • 안드로이드 관련 개발 정보는 http://developer.android.com/index.html 에서 찾을 수 있다.

    • 리눅스 커널 2.6기반에서 모바일 환경과 어울리지 않는 무거운 기능은 제거하고, 알람 및 디비거 등의 기능은 추가한 형태이다. 아래 그림은 리눅스 커널과 안드로이드의 아키텍처를 비교한 것으로 규모만 보더라도 달라진 OS임을 가늠해 볼 수 있다.

    • 안드로이드는 아파치 2.0 라이센스로 공개되어 있는 소스를 수정해서 사용하더라도 수정 내용을 다시 공개해야할 의무도 없고 상업적인 용도로도 사용할 수 있다. 단, 특정 하드웨어와 연관된 소스라던가, Google Maps, Android Market 등 구글 자체 서비스 적인 부분은 오픈 소스가 아닌 부분도 존재한다.
    • 리눅스커널에는 다양한 장치를 연결해주는 디바이스드라이버, 전원관리, 스레드 관리, 메모리 관리 등이 포함된다.
    • 라이브러리는 기본 libc, 2D용 SGL, 3D용 OpenGL, 벡터폰트용 Freetype, 미디어, DB용 SQLite, 인터넷을 위한 SSL과 Webkit등이 포함된다.
    • 안드로이드에서는 Java를 기본언어로 사용하지만  Java VM을 직접 사용하지 않고 전용 Dalvik VM을 각 프로세스별로 할당 시켜 각각의 앱들을 효율적으로 동작시킨다.(dex포맷) 또한, 공식언어로 Java를 사용하지만, NDK를 활용하여 C로 어플을 개발할 수도 있다
    • 응용 프레임워크를 안드로이드 API라고 부르며 이 API 들이 하드웨어 접근을 추상화시켜주고, UI에 위젯을 정의하며, 라이브러리와 통신할 수 있는 래퍼를 제공한다. 액티비티 관리자, 윈도우 관리자, 뷰시스템, 패키지 관리자, 전화, 통지, 위치 관리자, CP등이 있다.
    • 안드로이드 계층 구조 최상단에 개발자들이 만든 응용이 위치하게 된다. 안드로이드 실행 파일은 같은 패키지에 속한 자바클래스와 리소스의 집합일뿐 프로세스와 1:1로 대응되는 것은 아니며 안드로이드 응용 프로그램 들간에는 COM이나 CORBA와 같이 서로의 기능을 공유할 수도 있다.

    * 안드로이드 어플의 구조

    안드로이드 앱은 따로 정해진 진입점이 없으며 액티비티, 서비스, BR(Broadcast Receiver), CP(Content Provider) 4가지 컴포넌트로 구성할 수 있다. 각 컴포넌트는 일부만으로 구성할 수도 있고 여러개를 가질 수도 있다. 이 구성 정보는 매니페스트에 저장하며 이 파일에서 최초 실행시 어떤 액티비티를 띄울것인지 지정한다. 액티비티는 UI를 구성하는 기본단위로 하나의 화면을 의미하며 여러 뷰로 구성된다. 서비스는 UI없이 음악 재생, 네트워크 감시등 백그라운드에서 계속적으로 수행되는 컴포넌트로 액티비티와 연결해서 사용한다. BR는 UI없이 시스템으로 전달되는 배터리신호, 카메라 , 네트워크 시그널 등을 수신하여 적절한 액티비티를 띄우는 역할을 한다. CP는 데이터베이스와 주소록 같이 자신의 데이터를 다른 응용프로그램을 위해서 제공하는 역할을 수행한다. 각 컴포넌트는 독립적으로 수행되므로 상호간 통신을 위해서 Intent를 사용하며 이 Intent에 메시지의 상세 내용을 담아 전달한다. * 안드로이드 어플 개발에 대한 동기 부여 스마트폰, 태블릿, PMP를 비롯한 다양한 응용 기기들의 등장으로 그 활용도가 지속적으로 확대되고 있다. 좋은 어플에 대한 사용자들의 열린 비용 지불 문화가 정착되어 가고 있다. 개발자들에게 오픈 마켓을 통한 적절한 생태계가 제공되고 있다. 오픈소스와 다양한 예제를 통해서 어렵지 않게 아이디어를 실제 어플 구현으로 연결시킬 수 있다. 개발 장비 구입, 개발 환경 구축등  스터디를 위한 별도 환경이 필요치 않고 기존 자원을 최대한 활용할 수 있다.그럼에도 불구하고, 오픈 마켓에 올려져 있는 수많은 어플 가운데, 내 어플이 주목받기란 녹록치 않은 도전이다. 또한, 사용자들이 좋은 어플에 기꺼이 비용을 지불하는 문화라고는 하지만, 주요 인기 어플들은 대부분은 무료 어플이고 해당 어플들은 광고에 수익을 의존하고 있는 것도 현실이므로 지혜로운 시간 투자와 좋은 아이디어 발굴이 긴요하다 할 수 있겠다.
    벽하거사 2013-11-14 (목) 16:12:33
    많은 도움이 되었습니다.
    고맙습니다..
    『유나아빠』 2013-11-01 (금) 11:53:18
    좋은하루되세요~   
    천방지축 2013-10-29 (화) 10:41:20
    감사합니다....
    사막의장미 2013-10-29 (화) 10:34:46
    쉽지는 않겠네요ㅋㅋㅋ
    세계를품다 2013-10-29 (화) 08:15:12
    ㅎ 난감
    Oollalla 2013-10-29 (화) 00:21:54
    좋은 정보 감사합니다.
    라떼로주세요 2013-10-28 (월) 18:12:48
    이해 못해도 괜찮겠죠??^^
    길태 2013-10-28 (월) 15:52:10
    좋은정보감사
    서현서진서율… 2013-10-28 (월) 15:37:48
    감사3
    알람방구 2013-10-28 (월) 13:47:34
    감사합니다.
    뽀대 2013-10-28 (월) 13:40:38
    쿨럭 나랑먼얘기같소 ㅋ
    빰빠밤~!. 뽀대님 축하드립니다.
    댓글이벤트에 당첨되어 9P 가 적립되셨습니다.
    댓글을 작성하시려면 로그인을 하셔야지만 작성가능합니다. [로그인하기] [회원가입하기]
    번호 제목 글쓴이 추천 조회 작성일
    15 [안드로이드 앱 개발] 2.앱개발 프로그램 및 환경 구축 +12 습작 3 7001 13/10/28
    14 [안드로이드 앱 개발] 1.안드로이드 이해하기 +11 습작 3 12771 13/10/28
    13 [안드로이드] 스마트폰 문자를 pc로 확인하기 +13 습작 4 27059 13/10/26
    12 [루팅필수] 폰트크리에이터를 이용하여 기본폰트,인터넷… +13 습작 2 16439 13/10/26
    11 [루팅필수] 갤노트3 모든앱을 플로팅앱으로 쓰기 +12 습작 2 9511 13/10/26
    10 [루팅필수] 갤3 루익으로 간단하게 무음카메라 만들기 +11 습작 3 10463 13/10/26
    9 KT 통화품질 향상 시키기 +11 습작 3 21228 13/10/26
    8 부모님 스마트폰 스미싱으로부터 막는방법 +12 습작 3 3507 13/10/26
    7 안드로이드 젤리빈 플래시 구동하기 +11 습작 2 3637 13/10/26
    6 루팅은 무엇인가? 왜하는가? +27 습작 9 8725 13/08/30
    5 카카오톡 - 친구 차단 여부 확인방법 +24 습작 9 21642 13/08/30
    4 구글마켓 구매내역 삭제 방법! +16 습작 6 8543 13/08/30
    3 SKT 리필쿠폰 +16 습작 5 3770 13/08/29
    2 문자메세지 글꼴 크기 바로 변경 +16 습작 6 3911 13/08/29
    1 갤럭시 시리즈 LCD,스피커,진동,밝기 등 테스트 +15 습작 5 4706 13/08/20