# 스마트폰
= 컴퓨터 + mp3 플레이어 + 휴대용 게임기
- 다양한 앱 설치 가능
# 모바일 운영 체제
- 구글의 안드로이드 (80% 이상)
- 애플의 iOS
# 애플리케이션 마켓의 개념
- 개발자와 소비자가 만나는 공간 (플레이스토어)
- 개발자(생산자) – 마켓(접점) - 소비자
# 안드로이드의 기능
- 구글의 홈페이지 참조 (developer.android.com)
# 안드로이드의 역사
- 구글이 2005년에 안드로이드(주) 인수
- 2007년에 OHA(Open Handset Aliance)라는 컨소시엄 구성
- 2007년 안드로이드 SDK 1.0 발표
- 최초의 안드로이드 폰 : HTC의 G1(2008)
# 안드로이드 10
- 라이브 캡션, 스마트 리플레이, 사운드 증폭기, 다크 테마, 개인 보안, 위치 정보
# Live Caption (라이브 캡션)
- speech to text (자막 형성)
# 안드로이드의 특징
- 재사용이 가능한 애플리케이션 프레임워크(application framework)
- 최적화된 달빅 가상 머신(Dalvik virtual machine)
- WebKit 기반의 내장된 웹브라우저(Integrated brower)
- OpenGL 2.0 지원하는 최적화된 그래픽(Optimized graphics)
- SQLite 데이터베이스 지원
- 가종 오디오, 비디오 규격 지원(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
- 블루투스, EDGE, 3G, WiFI 지원
- 카메라, GPS, 나침판, 기속도계 지원
- 풍부한 개발 환경 제공 장치
# 새로운 자바 가상 머신 ART
- ART 는 4.4에서 새로 배포되는 자바 가상 머신
- 사용자는 달빅과 ART 중에서 하나를 선택할 수 있다.
- 달빅의 개선된 버전
# ART의 특징
- Ahead-of-time (AOT) 컴파일 : 달빅은 필요할 때마다 앱을 컴파일하여서 앱을 실행한다. 하지만 ART는 미리 앱을 컴파일한다.
- 향상된 가비지 컬렉션
- 디버깅 향상
# 안드로이드 버전
- 리눅스 커널
- 추상화 계층 – 물리적인 디바이스에 대한 추상화 과정
- native c/c++ libraries, andrioid runtime
- Java API framework
- System Apps
# 애플리케이션 실행 단계
- java 파일 만듦
- java 컴파일러를 통해서 class 파일 만들어줌
- desugar를 통해서 다시 한번 더 필요한 third party plugins들이 합쳐져서 class 파일
- dex 파일 만듦 (desugar class 파일을 byte코드로 변환시켜 놈)
- 안드로이드 패키지 (apk)
# 컴포넌트
애플리케이션은 컴포넌트로 이루어짐
- 액티비티(activity) : 화면
- 서비스(service)
- 방송 수신자(broadcast reciver)
- 컨텐트 제공자(content provider)
# 액티비티
- 사용자 인터페이스 화면을 가지는 하나의 작업
- 액티비티들이 모여서 하나의 애플리케이션이 됨
- 예 ) 수신된 이메일 리스트 표시, 이메일 작성, 수신된 이메일 내용 표시
# 서비스
- 백그라운드에서 실행되는 컴포넌트
- 오랬동안 실행되는 작업, 원격 프로세스를 위한 작업
- 예 ) 배경 음악을 연주하는 작업(음악 재생 화면-액티비티, 음악 재생 서비스-서비스)
# 방송 수신자
- 방송을 받고 반응하는 컴포넌트
- 각각의 컴포넌트에 내용을 뿌려줌
# 콘텐트 제공자
- 데이터를 관리하고 다른 애플리케이션에게 제공하는 컴포넌트
- 각각의 앱에 실제적인 데이터를 전달해줌
# PC의 애플리케이션
- 애플리케이션 A, B : 다른 애플리케이션의 코드를 사용할 수 없음(공용 X)
# 예제 – 애플리케이션에서 사용자가 사진을 촬영하도록 하고 싶은 경우
카메라 애플리케이션 – 우리의 애플리 케이션 (공용)
# 인텐트 – 의도
- 애플리케이션의 의도를 적어서 안드로이드에 전달하면 안드로이드가 가장 적절한 컴포넌트를 찾아서 활성화하고 실행
- 애플리케이션 B -> 인텐트 객체 -> 애플리케이션 A
- 예 ) 우리의 액티비티 -> 인텐트 [ ACTION : view, DATA:/m/fl.jpg ] ->
액티비티 #1 이미지 표시
# 매니페스트 파일
- 적재목록(적하목록)
- 컴퍼넌트들의 리스트(부품들의 목록)
# XML
- XML은 안드로이드에서 아주 많이 사용됨
- SGML의 부분 집합으로 웹 상에서 구조화된 텍스트 형식의 문서를 전송하고 수신하며 처리가 가능하도록 만든 마크업 언어
# 매니페스트 파일
- <activity> 요소 : 액티비티 선언
- <service> 요소 : 서비스 선언
- <receiver> 요소 : 방송 수신자
- <provider> 요소 : 컨텐트 제공자
# 개발 과정의 개요
개발 환경 구축 – jdk 설치, 안드로이드 설치
개발 – 애플리케이션 생성
# 안드로이드 개발 도구
- JDK
- 안드로이드 스튜디오(android studio)
- 안드로이드 SDK(안드로이드 스튜디오 번들 안에 포함)
# JDK
- java.sun.com
- JDK는 Java Development Kit의 약자로 자바로 프로그램을 개발하는데 필요한 개발 도구
- JDK 7 이후 버전이 필요함 (JDK 8 사용)
# 안드로이드 스튜디오
- 그레이들(Gradle) 기반의 유연한 빌드 시스템
- 다중 apk 파일 생성 시스템
- 앱의 공통 특징을 지원하는 코드 템플레이트 제공
- 마우스 드래그앤 드롭 방식의 테마 편집이 가능한 레이아웃 에디터
- 구글 클라우드 플랫폼 지원 내장: 구글 클라우드 메시징과 앱 엔진을 쉽게 통합할 수 있음
'전공 공부 > 안드로이드프로그래밍' 카테고리의 다른 글
사용자 인터페이스 기초 (0) | 2021.01.14 |
---|---|
애플리케이션 기본 구조 (0) | 2021.01.13 |
파이어베이스 연동 (0) | 2021.01.13 |
공공 데이터 포털의 시도별 실시간 평균정보 조회 API를 이용해 실시간 측정정보 XML을 Parsing 하고 Google Map에 아래와 같이 Marker를 배치해 서울과 부산의 pm10의 값을 출력하는프로그램 (0) | 2021.01.13 |
공공 데이터 포털의 시도별 실시간 측정정보 조회 API를 이용해 실시간측정정보 XML을 Parsing 하여 아래와 같이 <stationName>과 <pm10Value>를 출력하는 프로그램 (0) | 2021.01.13 |