본문 바로가기
안드로이드, IOS

[안드로이드] 기초 내용 정리 - Android 운영체제란

by dwoi 2023. 3. 29.

본 글은 안드로이드라는 운영체제에 대해서 기본적으로 학습하고 개발 환경을 구축하는 내용을 정리하는 글임을 밝힘.

 

목차

     


    안드로이드(운영체제)


    1. 안드로이드란?

    휴대 전화를 비롯한 휴대용 장치를 위한 운영 체제와  미들웨어, 사용자 인터페이스  그리고 표준 응용 프로그램

    (웹 브라우저, 이메일 클라이언트, 단문 메시지 서비스(SMS), 멀티미디어 메시지 서비스(MMS 등)을 포함하고 있는

    소프트웨어 스택이자 모바일 운영 체제

    1.1. 안드로이드 플랫폼의 특징

    • 운영체제 커널이 리눅스로 되어 있다.
    • 가장 대표적인 프로그램 언어인 자바로 응용 프로그램 개발이 가능하다.
    • 오픈소스 지향으로 많은 정보가 공개되어 있고 적용하기 쉽다.
    • 안드로이드 스튜디오라고 하는 전용의 개발 도구를 무료로 제공 한다.
    • Firebase 등 구글 클라우드 서비스와 손쉽게 연동이 가능 하다.
    • 플레이스토어를 통해 앱을 공개하고 판매가 가능 하다.
    • 다양한 하드웨어 지원(IoT, Android Auto, WatchOS...)

     

    1.3. 안드로이드 아키텍처

    1. 리눅스 커널
      • 핵심적인 시스템 서비스들을 제공하며, 프로세스, 메모리,  전원 관리, 네트워크, 드라이버, 보안 등의 내용을 포함
    2. 라이브러리
      •  C/C++ 로 구성된 라이브러리로 애플리케이션
      •  프레임워크를 통해 사용할 수 있도록 구성됨
    3. 코어 라이브러리
      • 코어 라이브러리는 자바 라이브러리의 대부분 기능을 제공 
    4. ART(Android Runtime)
      • AOT(Android On Time)이라는 컴파일러를 사용, 
        안드로이드 킷캣(4.4)부터 도입
        => 롤리팝(Android L) 버전부터는 기본적용 
      • 설치 시에 컴파일 된 코드를 저장하기 때문에 용량이 큼
      •  CPU, 메모리 사용량 낮음, GC향상
      • 누가버전부터는 JIT(Just In Time)와 AOT가 함께 사용되어 용량 및 설치시간을 줄이고,                                          앱이 전력 사용량이 적을 시 AOT로 전환되도록 함

     

    Application Framework

    • 안드로이드에서 제공하는 애플리케이션도 애플리케이션 프레임워크의 API에 기반한 경우 많음
    • 간단한 재사용 컴포넌트, 어떤 애플리케이션과도 호환 가능한 호환성을 제공 

     

    • 액티비티 관리자 (Activity Manager) 
       ⇒ 애플리케이션의 라이프사이클을 제어함 
    • 내용 제공자 (Content Provider)
       ⇒ 애플리케이션 간에 데이터를 공유할 수 있도록 함 
    • 리소스 관리자 (Resource Manager)
       ⇒ 코드 이외의 부분인 리소스를 관리함 
    • 위치 관리자 (Location Manager)
      ⇒ 자신의 위치 파악에 필요한 기능을 제공함
    •  알림 관리자 (Notification Manager)
      ⇒ 알림 기능을 사용자에게 방해가 되지 않도록 제공함 

    Application 

    • 모든 애플리케이션은 자바/코틀린으로 작성되며 애플리케이션 프레임워크의 API를 사용할 수 있음
    • 안드로이드의 핵심 애플리케이션들은 이메일 클라이언트, SMS 프로그램, 일정 관리(calendar), 지도 처리(maps), 
      웹브라우저, 연락처 등을 포함함 

     

    2. Android Studio

     

    안드로이드 및 안드로이드 전용 어플제작을 위한 공식 통합 개발 환경이다. 


    2013년 5월 16일, 구글 I/O 컨퍼런스에서 구글의 제품 관리자인 Ellie Powers에 의해서 발표되었다. 

    아파치 라이선스 2.0으로 배포

    2.1. Android Studio 단축키

    단축키  |  Android 개발자  |  Android Developers

     

    단축키  |  Android 개발자  |  Android Developers

    Android 스튜디오에서 지원되는 다양한 일반 작업의 단축키를 확인하세요.

    developer.android.com

    위 링크 참조

    자주 쓰이는 거 위주로 정리해서 외우면 편리


     

    3. 프로젝트 생성

    3.1. 디렉토리 구조

     


    폴더

     설명
    /java  • 자바 소스 파일이 들어있는 폴더

    • 표준 자바와 마찬가지로 패키지명과 동일한 하위 폴더들이 만들어짐
    /res • 리소스 파일이 들어있는 폴더
    • XML 레이아웃, 그림 파일, 문자열을 정의한 XML 파일 등이 들어있는데 각 파일의 유형에 따른 하위 폴더들이 만들어져 있음

    (예, XML 레이아웃 파일은 [res/layout] 폴더, 그림 파일은 [/res/drawable] 폴더 
    • 그리고 문자열을 정의한 XML 파일은 [/res/values] 폴더 밑에 들어 있음)
    /androidTest  • 안드로이드 앱 테스트 코드를 담고 있는 폴더
    AndroidManif
    est.xml
    • 애플리케이션에 대한 정보를 담고 있는 파일
    - 매니페스트라고 부르며 애플리케이션 구성요소나 권한 등의 정보를 정의함
    build.gradle  • 프로젝트를 build할 build script를 가지고 있는 파일

    3.2. 연결 및 실행 

    Android Virtual Device Manager

    AVD Manager를 실행하여 AVD를 생성하거나 단말의 USB Driver를 설치한 다음 단말을 연결한다. 
    AVD 대신 Genymotion을 사용하기도 한다. 

     

    실 디바이스 연결

    단말을 이용하여 개발을 하려면 개발자 모드를 활성화 해야 한다. 
    단말의 설정 → 휴대전화 정보 →빌드 번호 7번 click→ 설정 재진입 → 개발자 옵션→USD 디버깅

     

    빌드 및 실행

    Run → Run app(Shift – F10) 또는 Run → Run(Alt – Shift - F10) → app

    빌드 과정

     


     

    마무리

    실제로 설치하고 환경을 잠시 구성하려 했으나 

    노트북 용량의 한계가 있어서 다른 것도 공부해야 하는 상황에서 한계점이 존재하여

    공부한 Activity, Fragment, Intent, Wigdet, 코드 리뷰를 통해 알아보고자 함.

     

     

     

    댓글