안드로이드 기본

Dora·2020년 10월 4일
0

Chap1. 안드로이드 개요
Chap2. 안드로이드 개발환경 구성
Chap3. 안드로이드 APP 개발 기초

Android의 핵심 구성요소

: 인스턴스화 가능한 4개의 컴포넌트 + 메시징 메커니즘

*인스턴스화(instantiation)
: 추상적인 것을 구체적인 예를 통해서 표현하는 것.
(+) instance : n.사례,경우 v....을 예로 들다)

  • 진입점이 특정되어 있지 않으나 일반적으로 Activity가 그 역할을 한다.
    (진입점은 메인함수로 생각하면 된다.)

  • 4개의 컴포넌트

    • Activity : 화면을 제어하고, 사용자 인터페이스를 구성한다.
    • Service : 백그라운드에서 계속 동작한다.

    • BR (broadcast receiver) : 방송을 대기하고 수신한다.
      (방송 = os에서 특정상황이 발생했을 때 시스템에 알림)

    • CP (content provider) : 자신의 데이터를 외부로 공개한다.
      (ex. 메신저에서 주소록의 정보를 가져올 때, 주소록에서 cp를 만들어놔야 불러오기 가능)
  • 인텐트 (Intent)
    : 컴포넌트끼리 통신하기 위해 사용하는 메시징 메커니즘

기본적인 주의 사항

  • 설치 경로명에 한글을 사용하지 말 것 (폴더명부터 프로젝트명까지..)
  • 공백이 없는 경로명을 사용할 것

실제 폰에서 프로젝트 돌리기

폰을 pc에 유선 연결했을 때 컴퓨터에 드라이버가 설치되어 있어야 한다.
설치 및 확인은 [제어판 - 시스템 - 장치관리자]에서 볼 수 있다.

첫 연결시에는 폰이 개발용으로 설정되어 있지 않기 때문에 따로 설정이 필요.
폰에서 [설정 - 디바이스 정보]에 들어가면 '빌드 번호'를 연속으로 터치하면 개발자 옵션 버튼이 활성화된다. (이스터 에그야 뭐야...)

단축키

Shift + F9 : 한 줄씩 디버깅
Shift + F10 : Run App
Ctrl + / : 주석 처리 (빠르게!)
Alt + Enter : 라이브러리 import
Ctrl + 해당코드클릭 : 해당 코드가 속한 파일의 코드 부분으로 이동

안드로이드의 build

C언어의 경우 .c 파일을 컴파일하여 .exe파일이 되는데 이 과정에서 Link가 일어난다. Link는 필요한 라이브러리를 연결시켜 주는 과정이다.

안드로이드의 경우 .java .xml img등의 resource파일과 lib, mainfest가 엮여 app으로 존재하는데 이를 build하는 과정에서 gradle이 실행된다.

Link와 Gradle은 비슷한 포지션이라고 볼 수 있다.

App 프로젝트 구조의 구성요소

  • AndroidManifest.xml
    : 앱 설정 정보 파일로 해당 앱의 이력서라고 볼 수 있다.
    앱의 구성요소 및 속성 등을 정의한다.

  • MainActivity.java
    : 자동으로 추가되는 기본 액티비티의 자바 파일로 앱의 동작을 구현한다.

  • activity_main.xml
    : 자동으로 추가되는 기본 액티비티의 레이아웃 xml파일로 앱의 모양을 표현한다.

  • menu (folder)
    : 앱에서 사용할 메뉴의 구성을 정의한다.

  • mipmap (folder)
    : 앱에서 사용하는 아이콘 이미지 파일을 해상도(화면 밀도)별로 생성.

  • drawble (folder)
    : 앱에서 사용할 이미지 파일을 저장.

  • values (folder)
    : 앱에서 사용할 값을 xml파일로 저장. (문자열, 수치값, 색상값 등)

  • build.gradle
    : 앱을 빌드하기 위한 설정정보 파일. 필요한 외부 라이브러리(dependeceies) 등의 정보를 기록.


구성요소들 사이의 관계

  • Java Folder
    : 동작을 정의하고 기능한다. 시스템 파일이 들어있다.
    (프로그램 코드)

  • res Folder
    : 리소스를 정의하고 화면을 나타낸다. 텍스트 파일이 들어있다.
    (이미지 ,문자열 ,동영상 등 프로그램 코드 외 자원)

  • R.java
    : res내용을 바탕으로 자동생성된다. (res folder의 자동변환)
    시스템 파일과 텍스트 파일의 호환을 위해 생긴다.
    Java Folder는 res내용을 참조할 때 이를 이용한다.


R.java

: res 폴더 내의 모든 요소들을 소스 코드(java)에서 사용할 수 있도록 자동으로 자바 객체로 변환된 파일. (객체화(inflation))

  • 소스코드에서 참조할 수 있도록 리소스ID (정수형 상수)가 생성된다.
  • res에 들어있는 여러 요소들에 대한 주소록이라 할 수 있다.

ex1. MainActivity.java에서 R.java를 거쳐 res폴더의 어떤 요소에 접근할 때

R.res폴더명.id

ex2. activity_main.xml에서 string.xml 참조 (res 폴더 내 참조)

@id/참조ID


레이아웃 작성

  • 코드만을 사용한 레이아웃도 작성이 가능하다
    (MainActivity.java에 직접 작성)

  • 정적인 레이아웃은 XML로, 동적인 레이아웃은 코드로 작성

  • 일반적으론 XML을 이용하여 작성하는 것이 권장된다.


profile
Lv.1 개발자

0개의 댓글