• 1나루토매니아
  • 2뱅이
  • 3푸타코타
  • 4완벽그자체
  • 5해삼
  • 1뱅이
  • 2나루토매니아
  • 3알짜배기
  • 4뱅이
  • 5빙그레우유
[안드로이드 앱 개발] 1.안드로이드 이해하기
연속출석 :
1일 랭킹 : 2위 별훈5
42%
42% (84989 /200000)
  • 댓글 11 |
  • 추천 3 |
  • 조회 12727 |
  • 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 가 적립되셨습니다.
    댓글을 작성하시려면 로그인을 하셔야지만 작성가능합니다. [로그인하기] [회원가입하기]
    번호 제목 글쓴이 추천 조회 작성일
    공지글 이거슨 꿀팁!! 작성 가이드 v1.1 (2013-11-13) +174 더어플 42 138681 13/03/12
    4207 메모리 정리와 휴대폰에 잔렉이 있을땐 이어플 좋으실듯 +2 더어묵 0 12899 16/09/02
    4206 [펌] 갤럭시S2 아이스크림샌드위치 리커버리로 공장초기… +1 ♣서로해♣ 2 12815 12/07/19
    4205 한글 파일 합치기 +3 Pluie 2 12811 15/03/15
    4204 아이클라우드 계정 이메일을 변경하고 싶을때: 기존의 … GNCkorea 0 12804 12/07/27
    4203 Internet Explorer (이 웹사이트의 추가 기능을 실행하… +3 조남식 2 12784 15/07/06
    4202 딤채 모델명으로 제품의 사양을 추측하는 방법 +7 익스플로러 2 12760 15/01/27
    4201 사용중인 어플 추천 +3 더어묵 2 12754 16/04/15
    4200 [안드로이드 앱 개발] 1.안드로이드 이해하기 +11 습작 3 12728 13/10/28
    4199 아이폰/아이패드에 크랙된 어플 넣기 // Install0us 사… +2 좀비눈깔 0 12682 11/01/07
    4198 롤리팝 업데이트 후 '내용 숨김'으로 알림되… +3 서현서진서율… 0 12675 15/02/21
    4197 안드로이드에서 손글씨 입력하는 방법 +8 서현서진서율… 2 12648 15/04/23
    4196 쓰면쓸수록 느려지는 폰 속도 올리기~~!! +148 쌔깐둥이 77 12642 11/03/01
    4195 아이폰과 안드로이드에서 배경화면 바꾸기 +13 어린왕자님 2 12623 13/09/12
    4194 갤럭시S 프로요를 광속으로 만들기! +22 11ddsda 5 12619 10/11/28
    4193 최적화 랙픽스 무엇이 가장 빠를까? (갤럭시s) +87 철권 36 12610 10/12/27
    4192 SD 카드 내 지워도 대는 용량먹는 폴더 +2 종달잉 1 12598 12/03/22
    4191 최적화 랙픽스 무엇이 가장 빠를까? (갤럭시s) +100 철권 43 12595 10/12/27
    4190 갤럭시노트3 개봉기 갤럭시기어 어플 설치방법 +10 서현서진서율… 3 12579 13/10/21
    4189 USB 테더링하기 +11 벽하거사 2 12567 13/07/20
    4188 스마트폰 패턴을 잊어버렸을 때 Gmail 없이 푸는방법 (… +2 GNCkorea 4 12505 12/08/08
    4187 세탁기 버블샷과 워터샷의 원리 +6 익스플로러 1 12487 15/01/22
    4186 스마트폰 자판, 어떤 거 쓰세요? +16 ㆍNEOㆍ 7 12485 13/07/24
    4185 갤럭시노트2 올쉐어 플레이 스트리밍은 기본 파일 전송… +11 탱구♡ 3 12475 12/11/24
    4184 루팅후 삭제해도 되는 어플 모음 +22 Kilt 12 12442 11/02/10
    4183 무선공유기 비밀번호 모은 사진입니다. +53 블루c 19 12425 11/03/31
    4182 아이패드 ios 4.2.1 탈옥 후 안정화 / 4.2.1 호환 시디… +3 좀비눈깔 3 12399 11/01/07
    4181 KODI (내 장치를 미디어센터로 만들어주는 프로그램) +2 조남식 3 12395 15/07/20
    4180 갤럭시S5 구매 후 확인 해야 할 사항 +4 어린왕자님 1 12377 14/06/27