Andriod_01

김재현·2023년 3월 29일
0

안드로이드

목록 보기
1/12

두 책의 내용을 합해서 공부한 내용을 중심으로 작성할 예정


실행 과정

do it 코틀린 프로그래밍은 intellij에서 시작하여 kotlin을 학습하여 처음 설치할때 standard가 아닌 custom설치를 진행해야 했다. 나도 빨간색책으로 먼저 시작하여 과정을 따라가야 하지만 일단 초록색 교재(깡쌤~)대로 standard로 설치하고 진행했다.(초록색책이 컬러로 나와서...)

프로젝트 설정

로그캣 앱이 실행중일때 발생하는 로그가 출려됨.


배포 파일
apk와 aab두 종류가 있다.
aab는 google 플레이에서 필요한 파일만 골라서 다운로드 할 수 있게 해주는 기능이 있다. 2018년 부터 aab배포가 원칙화되었다.

앱서명
안드로이드 배포 파일을 만드려면 키를 만들어 앱에 서명해야한다.

  1. 서명 키를 개발자가 직접 만들어 관리하는 방법
    • 출시용으로 앱을 빌드할 때 개발자가 만든 키로 앱을 서명하고 이를 Play 스토어에 등록하여 사용자에게 전달한다. 즉, 개발자가 만든 서명 키 1개로 앱을 관리한다.
  2. 구글 Play에서 관리하는 방법
    • 키를 2개로 구분한다. 개발자가 만들고 관리하는 업로드 키(기존 서명 키)와 구글 Play가 만드는 앱 서명 키이다.

구글 Play 스토어 게시
필요한 파일

  • AAB 파일 : 완성한 앱을 서명한 배포 파일
  • 앱 아이콘 이미지: Play 스토어에 표시할 앱 이미지. 512x512px 크기에 1MB 미만으로 JPEG나 32비트 PNG 파일
  • 그래픽 이미지: Play 스토어에서 앱을 프로모션할 때 이용할 이미지. 1024x500px 크기에 1MB 미만으로 JPEG나 24비트 PNG 파일을 준비
  • 휴대전화 스크린샷: 스마트폰에서 앱을 실행한 스크린샷
  • 7인치, 10인치 태블릿 스크린샷: 7인치나 10인치 태블릿에서 앱을 실행한 스크린샷

AAB 배포 파일 만들기

  1. 고유한 패키지명으로 바꾸기
    파란 박스 쳐진 부분의 이름을 바꾸어야 한다.
  2. ABB 파일 생성 시작하기
  3. 키 저장소와 서명 키(업로드 키)만들기
  4. 앱 서명하기
  5. 릴리즈 용 빌드하기
  6. 빌드된 AAB 파일 확인하기

구글 플레이에 앱 등록하기

  1. 개발자 계정으로 등록하기
  2. Play 콘솔에서 앱 만들기
  3. Play 콘솔에서 앱 설정하기
  4. 구글 Play에 앱 게시하기

안드로이드 특징

  1. 안드로이드는 공개 운영체제인 리눅스를 기반으로 한다
  2. 안드로이드 앱은 자바나 코틀린 언어를 이용해 개발한다.
  3. 안드로이드 운영체제의 주요 부분과 라이브러리, 구글에서 만든 앱 등의 코드는 대부분 공개되어 있다.
  4. 안드로이드 스마트폰은 구글뿐 아니라 여러 제조업체에서 만들 수 있다.
  5. 안드로이드 앱은 구글의 플레이 스토어 뿐만 아니라 다양한 방법으로 사용자에게 배포할 수 잇다.
  6. 안드로이드 플랫폼에서는 모든 응용 프로그램이 평등하다는 사상을 바탕으로, 모바일에 기본으로 탑재된 앱과 개발자가 만든 앱이 똑같은 환경에서 똑같은 API를 이용한다.

컴포넌트

컴포넌트는 애플리케이션의 구성 요소이다.
컴포넌트는 애플리케이션을 구성하는 단위이다. 즉, 하나의 애플리케이션은 여러 컴포넌트로 구성된다. 컴포넌트가 어떤 형태인지는 상황에 따라 달라지는데 JAR 파일이나 DLL로도 개발한다.

안드로이드 앱의 기본 구조도 컴포넌트에 기반을 두므로 하나의 앱은 여러 컴포넌트로 구성된다. 그리고 안드로이드에서는 클래스로 컴포넌트를 개발한다. 즉, 하나의 클래스가 하나의 컴포넌트가 되는것이다.

그렇다고 안드로이드 앱을 구성하는 클래스가 모두 컴포넌트인것은 아니다. 생명주기 관리를 개발자 코드에서 한다면 일반 클래스이고, 생명주기를 안드로이드 시스템에서 관리한다면 컴포넌트 클래스이다.

안드로이드 컴포넌트 4종류

  1. 액티비티 : 화면을 구성하는 컴포넌트. 앱의 화면을 안드로이드폰에 출력하려면 액티비티를 만들어야 하며, 앱이 실행되면 액티비티에서 출력한 애용이 안드로이드폰에 나온다.

  2. 서비스 : 백그라운드 작업을 하는 컴포넌트이다. 화면 출력 기능이 없으므로 서비스가 실행되더라도 화면에는 출력되지 않는다. 서비스 컴포넌트는 화면과 상관없이 백그라운드에서 장시간 실행해야 할 업무를 담당한다.

  3. 콘텐츠 프로바이더 : 앱의 데이터를 공유하는 컴포넌트. 안드로이드폰에는 많은 앱이 설치되어 있으며 앱 간에 디어틀 공유할 수도 있다. 하나의 앱이 자신의 데이터를 다른 앱에 공유하려면 콘텐츠 프로바이더를 만들어야 하며, 다른 앱에서는 그 콘텐츠 프로바이더를 이용해 데이터에 접근한다. 예를 들어 카카오톡 앱에서 프로필을 변경할 때 갤러리 앱의 사진을 이용할 수 있다.

  4. 브로드캐스트 리시버 : 시스템 이벤트가 발생할 때 실행되게 하는 컴포넌트. 여기서 이벤트는 화면에서 발생하는 사용자 이벤트가 아니라 시스템에서 발생하는 특정 상황을 의미한다. 예를들어 부팅 완료, 배터리 방전 같은 상황

개발자가 컴포넌트 클래스를 만들 때는 지정된 클래스를 상속 받아야 하는데 이 상위 클래스를 보고 구분할 수 있다.

컴포넌트는 앱 안에서 독립된 실행 단위다.

  • 컴포넌트 끼리 서로 종속되지 않아서 코드 결합이 발생하지 않는다.
  • 예를 들어 카카오톡 의 목록 화면과 채팅 화면을 예로 들자면 목록화면에서 클릭해 채팅화면으로 화면 전환을 해야한다. 이 때,. 리스트 안에 채팅 객체를 생성해 실행하면 될 것 같지만 컴포넌트의 생명주기를 안드로이드 시스템에서 관리하므로 코드에서 직접 객체를 생성해 실행할 수 없다. 따라서 안드로이드 시스템에 의뢰해서 채팅목록이 실행되게 해야한다.

앱 실행 시점이 다양하다.

카톡의 리스트목록을 안보고 알람이 온것을 통해 바로 채팅화면으로 넘어갈 수 있는 것처럼 앱의 실행 시점이 다양할 수 있다. 따라서 안드로이드 앱에는 메인 함수 개념이 없다라고 말한다.

애플리케이션 라이브러리를 사용할 수 있다.

  • 다른 애플리케이션을 라이브러리처럼 이용하는 것.
    예를들면 카톡에서 채팅 화면에서 카메라 앱을 실행해 사진을 찍은 뒤 이 사진 데이터를 반환받아 다시 채팅 홤녀에 출력할 수 있다.

리소스를 활용한 개발.

  • 컴포넌트와 함께 안드로이드 앱 개발은 리소스를 많이 활용한다
  • 리소스란 코드에서 정적인 값을 분리한 것이다.
  • 앱에서 발생하는 데이터나 사용자 이벤트에 따른 동적인 값이 아니라 항상 똑같은 값이라면 굳이 코드에 담지 않고 분리해서 개발하는 것이다.

대표적으로 문자열 리소스로 이용하는 것이다. 화면에 가사를 출력한다거나 할때 사용할 수 잇다.

profile
배운거 정리하기

0개의 댓글