Chap1. 안드로이드 개요
Chap2. 안드로이드 개발환경 구성
Chap3. 안드로이드 APP 개발 기초
: 인스턴스화 가능한 4개의 컴포넌트 + 메시징 메커니즘
*인스턴스화(instantiation)
: 추상적인 것을 구체적인 예를 통해서 표현하는 것.
(+) instance : n.사례,경우 v....을 예로 들다)
진입점이 특정되어 있지 않으나 일반적으로 Activity가 그 역할을 한다.
(진입점은 메인함수로 생각하면 된다.)
4개의 컴포넌트
인텐트 (Intent)
: 컴포넌트끼리 통신하기 위해 사용하는 메시징 메커니즘
폰을 pc에 유선 연결했을 때 컴퓨터에 드라이버가 설치되어 있어야 한다.
설치 및 확인은 [제어판 - 시스템 - 장치관리자]에서 볼 수 있다.
첫 연결시에는 폰이 개발용으로 설정되어 있지 않기 때문에 따로 설정이 필요.
폰에서 [설정 - 디바이스 정보]에 들어가면 '빌드 번호'를 연속으로 터치하면 개발자 옵션 버튼이 활성화된다. (이스터 에그야 뭐야...)
Shift + F9 : 한 줄씩 디버깅
Shift + F10 : Run App
Ctrl + / : 주석 처리 (빠르게!)
Alt + Enter : 라이브러리 import
Ctrl + 해당코드클릭 : 해당 코드가 속한 파일의 코드 부분으로 이동
C언어의 경우 .c 파일을 컴파일하여 .exe파일이 되는데 이 과정에서 Link가 일어난다. Link는 필요한 라이브러리를 연결시켜 주는 과정이다.
안드로이드의 경우 .java .xml img등의 resource파일과 lib, mainfest가 엮여 app으로 존재하는데 이를 build하는 과정에서 gradle이 실행된다.
Link와 Gradle은 비슷한 포지션이라고 볼 수 있다.
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내용을 참조할 때 이를 이용한다.
: res 폴더 내의 모든 요소들을 소스 코드(java)에서 사용할 수 있도록 자동으로 자바 객체로 변환된 파일. (객체화(inflation))
ex1. MainActivity.java에서 R.java를 거쳐 res폴더의 어떤 요소에 접근할 때
R.res폴더명.id
ex2. activity_main.xml에서 string.xml 참조 (res 폴더 내 참조)
@id/참조ID
코드만을 사용한 레이아웃도 작성이 가능하다
(MainActivity.java에 직접 작성)
정적인 레이아웃은 XML로, 동적인 레이아웃은 코드로 작성
일반적으론 XML을 이용하여 작성하는 것이 권장된다.