노력과 삽질 퇴적물

안드로이드: 기초정리(1) 본문

📂게임개발 note/모바일 개발

안드로이드: 기초정리(1)

MTG 2012. 8. 28. 17:21

Android APIs Reference


안드로이드: 기초정리(1)

안드로이드: 기초정리(2)

안드로이드: 기초정리(3)

안드로이드: 기초정리(4)


추천자료: 안드로이드 개발시 100가지 팁

추천자료: [Android] 정보 정리






00. 개발환경 구축

 1. 개발환경 준비

 [안드로이드: 개발환경] 참조




 2. UTF-8설정

 [이클립스 설정 및 팁, UTF-8] 참조

 안드로이드는 기본적으로 UTF-8환경이기 때문에 설정해두어야 한다. 또한 프로젝트를 생성하기전에 미리 해야 한다.






01. 프로젝트 및 산출물 생성

 1. 안드로이드 프로젝트 생성

프로젝트 익스플로러에서 우클릭


01234


프로젝트내 src/패키지/액티비티명.java를 run시키면, 기존에 설정해둔 디바이스 에뮬레이터에서 가동이 된다.




 2. 프로젝트 구성


 ①src/패키지/액티비티.java

- graphical layout에서 추가한 컴포넌트들에 대한 이벤트를 정의한다.

- 작성하는 언어는 당연히 JAVA

 ②gen/패키지/R.java

- graphical layout에서 구성 컴포넌트가 달라지면 자동으로 변경됨.

- 직접 편집해서는 안될 파일.

 ③assets

- 이미지/오디오등 리소스를 위한 배정된 기본 폴더

 ④bin/res/프로젝트명.apk

- 컴파일까지 완료된 안드로이드 파일이다. 이것을 기기나 에뮬레이터에 옮겨서 설치하면 실행이 가능하다.

 ⑤res

res/layout

- 해당 폴더의 XML파일을 더블클릭하면

레이아웃을 graphical layout/XML 코드를 통해 편집이 가능.

- graphical layout탭은 QT처럼 드래그 앤 드랍으로 레이아웃 구성. 이벤트 처리는 자바소스에서 해결.

res/values

- 프로젝트가 사용하는 문자열 정의.

- 프로젝트 생성시의 타이틀바 내용등을 수정가능.




 3. 로그찍기


에러 Log.e("log's tag name", "error_log_message");

경고 Log.w("log's tag name", "warning_log_message");

디버그 Log.d("log's tag name", "error_log_message");

verbose Log.v("log's tag name", "error_log_message");


0123







02. 화면구성 및 편집

 1. 그래피컬 레이아웃과 XML

res/layout에 위치.

0123

위와 같이 컴포넌트를 드래그 앤 드랍으로 붙여넣고 하단의 'XML'탭에서 코드를 편집하는것으로 세부조정이 가능하다.




 2. 자바소스

src/패키지/액티비티.java

레이아웃에 존재하는 컴포넌트에 해당하는 자바 컴포넌트를 선언해서 이벤트 처리하면 된다.


레이아웃의 컴포넌트와 연결하기 위해서는 gen/패키지/R.java에서 컴포넌트 ID를 참고하면 된다.






03. 이론

 1. 액티비티

액티비티?

안드로이드 디스플레이내 화면을 구성하는 컴포넌트로 상태바를 제외한 모든영역


-> 스택형이라 새로운 어플리케이션을 실행하면 화면에는 1가지 액티비티가 차지. 새로운 액티비티를 종료하면 바로 직전의 액티비티가 화면을 차지.

-> 자바의 스레드처럼 죽이거나 휴면상태로 가능?


* 액티비티의 3가지 상태

runnung 스택 최상단에 위치해서 현재 디스플레이를 차지. 사용자에게 포커스를 받을수 있다.

pause 새로운 어플리케이션이 실행되면 새로운 액티비티에 의해 기존의 액티비티가 투명/가려짐이 된다.

stop 현재 사용중인 액티비티에 완전히 가려진 상태로 메모리가 부족시 소멸된다.




 2. 위젯

View

위젯 = {TextView, EditText, Button, ProgressBar, ...} //GUI에 나올 컴포넌트들

뷰그룹

 ↘ 뷰 컨테이너 = {리스트뷰, 그리드뷰, 갤러리, 스피너, 스크롤뷰, ...}

 ↘ 레이아웃 = {리니어 레이아웃, 릴레티브 레이아웃, 테이블 레이아웃, ..}

 안드로이드 API: View




 3. 뷰 컨테이너

① 레이아웃 종류

LinearLayout

FrameLayout

RelativeLayout

TableLayout


② 어댑터 종류

ArrayAdapter  배열의 데이터 연동

CursorAdapter  SQLite DB나 컨텐트프로바이더에 얻은 데이터를 연동

SimpleAdapter  XML리소스의 데이터를 연동


③ 어댑터 뷰(ViewGroup의 서브클래스)

ListView  여러 항목중 1개를 선택

Spinner  

Gallery





 4. 알림메시지

① Toast

->일시적으로 메시지를 띄움.


② Dialog(=AlertDialog)

-> 액티비티에 발생한 메시지를 지속적으로 통지.


③ Status

-> 액티비티에 발생한 메시지를 지속적으로 통지+추가응답 받기