Android App 개발 Basic
- 안드로이드 개발은 기본적으로 Component개발 (CBD방법론)
- component들이 Application의 구성요소
- 안드로이드 시스템에서 관리하는것이 component의 라이프사이클
- App내에서 독립적인 수행단위 main function의 개념이 없음 (어느 component든지 정의만하면 먼저 실행 가능)
- component -> Intent (시스템에 알려줌) -> component (시스템이 Intent 통해서 다른 컴포넌트 실행)
- component로 코드 결합이 없기때문에 다른 벤더 app실행가능. 안드로이드 개발자 입장에서 다른 app은 library로 취급됨
- linux위에 ART위에 App들이 떠있고, ART의 lib와 인터렉션하면서 APP 동작함
- Resource 외부화, 극대화
- Str, Img, Color, Size 등 조금이라도 Resource로 뺼 수 있는것 다 빼자
- XML도 static Resource
- layout, menu, app설정, animation 또한 Resource로 빼자
업무설계 -> 화면 설계 -> 컴포넌트 설계
- R.xml파일
- 프로젝트내의 각종 개체에 접근할 수 있는 ID 정의
- 자동 완성됨으로 수정하면 안됨
- VO파일이라 볼 수 있다. int 변수만 쫙~ 설정해놓음 ex) int a = 0x…
- 안에 inner class로 resource폴더 밑의 layout, drawable등을 정의 해 놓았음
- 따라서 접근할 때 R.layout.main 같이 해당 리소스 접근 가능
- 위의 규칙 때문에 Resource 폴더밑에 개발자 임의로 폴더명 지정할 수 없다. R안에 inner class에 어긋나기 때문
- R폴더 안에 int 변수로 정의해놓았기 때문에 리소스 파일명또한 자바에서 정의한 변수 명명규칙에 어긋나지 않게 작성해야함
- Intent
- 다른 컴포넌트를 실행시키기 위해 시스템에 띄우는 메시지, VO 클래스
- Intent에 데이터 담고 실행되는 Activity에서 그 데이터 가지겨는 방법으로 데이터 주고 받음
- Intent.putExtra(key, value)
- startActivity(), startActivityForResult() -> 실행시킨 엑티비티가 끝나면 결과 받음