본문 바로가기
Android/안드로이드 앱 프로그래밍 with 코틀린

안드로이드 앱의 기본 구조

by re-hwi 2023. 2. 18.

웹에 대한 기초를 배우고보니 현대인이 많이 사용하는 스마트폰에 대한 관심이 커졌다. 일반인들은 컴퓨터보단 비교적 핸드폰을 많이 사용하니까 더 많은 사용량을 기대한 것 같기도 하다. 

 

사실 내가 객체지향 프로그래밍에 대해 미숙한 것 같아 자바스크립트 프로젝트를 여러번 해보고 코틀린을 배우려고 했는데 마음이 급한건지 자신감이 넘치는건지 일단 새로운걸 배우고 싶은 생각이 컸던 것 같다.

 

먼저 아직 무슨 앱을 만들고 싶은건지는 모르겠지만 모바일 게임보다는 인스타그램과 같은 웹을 기반으로 한 앱을 만들어 보고 싶다. 

 

이번 단원은 안드로이드의 구성요소와 특징에 대해 배운다. 어떻게 앱이 작동하는지, 개발을 하며 어떤 것들을 고려해야하는지에 대해 다루기 때문에 완전 초보자인 나한테는 조금 어려웠던 것 같다.


 

안드로이드의 특징

- 리눅스 기반

- 자바 / 코틀린 사용

- 오픈소스

- 다양한 배포 방법

- 모든 앱이 평등하다 (기본 어플과 다운받은 어플이 같은 환경에서 동작한다)

 

안드로이드 운영체제의 구조

- 리눅스 커널 -> 오픈소스

- 하드웨어 추상화 레이어 : 하드웨어가 변경되어도 APP에서 사용하는 API는 그대로 사용 (호환성)

- ART : 앱을 실행하는 역할 

안드로이드 소프트웨어 스택

앱 개발의 특징

컴포넌트 기반 개발

    컴포넌트 : 애플리케이션의 구성요소

 

    - 컴포넌트의 종류

        1. 액티비티 : 화면을 구성하는 컴포넌트

        2. 서비스 : 백그라운드 작업을 하는 컴포넌트

        3. 콘텐츠 프로바인더 : 앱의 데이터를 공유하는 컴포넌트 ex) 인스타그램에서 갤러리 앱에 있는 사진을 가져오기

        4. 브로드캐스트 리시버 : 시스템 이벤트가 발생할 때 실행되게 하는 컴포넌트

 

    - 컴포넌트는 필요한만큼 사용

        정해진 규칙 X 

 

    - 컴포넌트는 독립된 실행 단위

        - 컴포넌트끼리 종속 X 

        ex) 카카오톡 채팅창을 들어가기 위해선 채팅목록에서 들어가야한다 -> 목록Activity에서 채팅창 Activity객체 생성 (X)

     > 두 컴포넌트가 종속되어 있지 않기 때문에 채팅 알림을 누르면 채팅목록을 거치지 않고 바로 채팅창에 들어갈 수 있음

 

리소스를 활용한 개발

    리소스 : 코드에서 정적인 값을 분리한 것 ex) img/ bgm

    > 코드 길이 간소화, 유지/보수성 향상

    

앱 구성 파일 분석

이름  설명
build.gradle 빌드 설정 파일
AndroidManifest.xml 앱의 메인 환경 파일
res 리소스 폴더
activity_main.xml 레이아웃 XML 파일
MainActivity.kt 메인 액티비티 파일

 

반응형

댓글