1. VIew 계층.

 1) 안드로이드 프로그램의 화면을 구성하는 주요 단위는 액티비티(Activity)이다. 하지만 액티티 자체는 화면에 직접적으로 보이지 않으며 실제로는 이 안에 뷰(View)라는 계층이 사용자에게 보여줄 화면을 구성한다. 즉 여러개의 뷰가 모여 하나의 액티비티를 이루고, 이러한 액티비티 여러개가 바로 하나의 응용 프로그램을 구성하는 것이다.


 2) View에서 파생된 클래스들이 매우 많고 각 클래스가 지원하는 속성이나 매서드 또한 상당히 많기 때문에 상당한 시간을 투자 해야 할 것이다. (아마 안드로이드 프로그래밍 공부의 절반 이상이 View를 포함한 GUI관련 공부가 될 것 같다.)


 3) VIew는 크게 2그룹으로 나뉜다.

  - 1. Widget(위젯) : 화면에 직접적으로 나타나는 사용자 인터페이스를 구성한다. 예를들어 Button, TextView, EditText, RadioButton 등이 있으며 흔히 컨트롤이라고도 부른다.


  - 2. View 그룹 : 직접적으로 보이진 안지ㅏ만 다른 뷰를 담는 컨테이너 역할을 한다. Layout(레이아웃)으로 불린다.



2. View 속성

 - View로부터 파생된 클래스들은 모두 View의 속성을 상속받고있기때문에 우선 View의 속성을 알아보도록하자. (하나하나 하기엔 너무 많기 때문에 중요한것부터 알아보도록하자... 몇개만 해보면 감이 올 것이다.)


 1) id

  - View를 칭하는 이름을 정하는것으로 xml문서에서 이 View를 참조할 때 사용하게된다. 

  - @+id/아이디명

  - 위의 사용법을 갖는다. @는 R.java 에 각 개체에대한 주소를 저장하도록 하게한다. +는 처음 정의할 때 사용하는방법으로 참조할 때는 +를 빼고 사용하면된다.

 2) layout_width, layout_height

  - View의 가로/세로 크기를 설정한다.

  - fill_parent //부모의 주어즌 크기를 다 채운다

    wrap_content //내용물의 크기만큼 채운다

    200px  // 200픽셀만큼 또는 사용자가 원하는 크기를 직접 정할 수 있다.

 3) background

  - View의 배경색을 지정한다

  - #RGB

    #ARGB

    #RRGGBB

    #AARRGGBB

  - #다음에 16진수로 각 생상 요소의 강도를 지정한다.

 4) padding

  - 안쪽 여백

 5) margin

  - 바깥 여백

 6) visibility

  - View의 표시 유무를 지정한다.

  - visible // 화면에 표시된다

    invisible //화면에 보이지 안게하지만 공간은 차지하고있다.

    gone // 화면에 보이지 않으며 공간역시 차지하지않는다.

 7) focusable

  - 키보드의 포커스(키 입력상태)를 받을지 설정.

  - 기본적인 View는 모두 false이고, EditText와같이 키보드입력이 꼭 필요한경우만 True로 되어있다.











ps. 안드로이드에서 사용되는 단위 설명

단위

 설명

 px

 픽셀

 in

 인치

 mm

 밀리미터

 pt

 포인트

 dp(또는 dip)

 해상도에 독립적인 단위

 sp(또는 sip)

 폰트 가변크기


1. 프로젝트 만들기

 -이미 앞에서 이클립스에 안드로이드 플러그인을 설치하고 SDK의 경로까지 지정했기때문에 일반 자바 프로젝트 만들듯이 안드로이드 프로젝트도 만들 수 있다.

 


 

 - New Project에서 안드로이드 프로젝트를 선택하면 위와같은 창이뜨는데, 프로젝트 명을 적고 아래 목록 중에서 실행 할 안드로이드 버전을 선택(현재는 2.2버전에서 개발을 많이 하고있다.)

 - Properties항목들이 중오한다. 가장먼저 어플 이름을 설정할 수 있고, 패키지 이름은 클래스 파일으 저장될 경로를 설정 하는 것으로 최대한 중복을 방지하기위해 2개 이상의 구분(점)을 필요로 한다. 그리고 액티비티 생성은 화면구성을 할 것인지에 대한 것으로 앞서 설명했듯 현재 생성할 프로그램이 서비스 프로그램이라면 액티비티가 필요 없는 것이다.

마지막으로 SDK버전은 API버전을 말하는것으로 위 목록에서 안드로이드2.2는 8버전을 사용한다고 되어있기 때문에 8이라고 적고 finish 하면 생성이 완료된다.

 

 

2. 프로젝트 구성요소

 - 아래와 같은 목록이 기본적으로 생성되며 하나씩 살펴 보도록 하자.


 

 1) src/ : 프로그램의 기본 소스 파일이 저장되는 공간으로 프로그램의 동작과 로직에 대한 프로그래밍이 이루어 진다.

 2) gen/R.java : 프로젝트 내에 각종 개체에 접근 할 수 있는 ID를 정의하는 곳으로 사용자가 임의로 수정할 수 없다.

 3) android 2.2 : 응용프로그램이 참조하는 안드로이드의 기본 라이브러리가 포함된다.

 4) assets/ : 리소스(자원) 폴더로 비디오나 오디오등의 파일을 저장하는 곳이다.

 5) res/drawable/ : 이미지 파일이 저장될 곳으로 해상도에따라 크기별로 저장도 가능하다.

 6) res/layout/ : 개체들의 화면을 구성할 수 있도록 레이아웃의 디자인이 정의 되는 곳이다.

 7) res/values/Strings.xml : 프로젝트에서 사용할 문자열을 xml 형태로 정의하여 관리하는 곳이다.

 8) AndroidManifest.xml : 프로젝트의 버전이나 이름, 구성 등에 대한 정보를 갖는다.

 9) default.properties : 프로젝트의 빌드 타깃이 명시되어있다.

 

1. 가장먼저 자바를 설치하자. SE나 EE를 설치. (모바일이라고 ME를 설치하는게 아니다.)

http://bryant.tistory.com/11  <-설치법 참조

2. 이클립스 설치.

 -  http://www.eclipse.org 에서 Eclipse IDE for Java EE Developers 를 다운받아 설치.
 

 3. 이클립스에 안드로이드 플러그인 설치.

 - 이클립스를 실행하여 메뉴창의 Help-Install New Software를 선택하여 Work with에 add하여 아래의 내용을 추가

https://dl-ssl.google.com/android/eclipse/


- 위에 Duplicate location 에러메세지는 내가 이미 전에 ADD 를 해서 나오는거기때문에 처음 입력하는경우는 에러메세지가 뜨지 않을 것이며, OK후 쪼금 기다리면 설치할 수 있는 플러그인 목록이뜬다. 모두 선택하고 설치를 하자.

 - 설치가 완료되어 이클립스가 재시작되면 환경설정으로 들어가 android목록이 생긴것을 확인 한다.

 

4. 안드로이드 SDK설치

 - http://develpoer.android.com 에서 자신의 OS 플랫폼에 맞게 다운 받아 설치. 실행파일을 실행하면 안드로이드 버전별로 다운받을 수 있는데 속도가 매우느리다. 자신에게 필요한 버전만 선택하여 다운 받던지 아니면 시간 넉넉히 잡고 모두 선택하여 다운받아보도록 하자.

 

5. 안드로이드 에뮬레이터 생상 (AVD 생성)

 - 안드로이드 SDK 실행파일에서 만들수도있고, 이클립스에서 만들수도있다. 이클립스의 환경설정의 안드로이드 목록을 호면 SDK가 설치된 경로를 설정 해야 한다. 그 후 새로생긴 android SDK and AVD Manager를 실행하여 생성할 수 있다. target에서 안드로이드의 버전을 선택할 수 있다.
 


 

 - 생성 후 실행하면 스마트폰과 동일한 환경을 갖춘 에뮬레이터가 실행된다.

안드로이드 응용프로그램은 적절한 권한만 있으면 누구든지 인스턴스화할 수 있는 4개의 컴포넌트로 구성된다. 그래서 main()같은 개념이 필요없이 처음 생성된 인스턴스의 생성자가 진입점이 된다.

 

1. Activity : 사용자 인터페이스를 구성하는 기본단위. 즉 눈에 보이는 화면으로 이러한 액티비티는 여러개의 뷰(View)들로 구성된다. 하나의 응용프로그램엔 이러한 다양한 액티비티들이 존재할 수 있는것이다.

 

2. Service : 화면구성이 없이 시스템의 백그라운드에서 실행되는 컴포넌트이다. 스레드 프로그램을 생각하면 될 것 같다.

 

3. Broadcast Receiver : 시스템으로부터 전달되는 메세지를 수신/대기 하는 역할을 하는 컴포넌트로 시스템적인 문제. 예를들어 배터리부족이라던지 메모리부족과 같은 메세지를 수신하며 간단한 Activity로 연결되어 사용된다.

 

4, Content Provider : 다른 응용프로그램에게 자신의 데이터를 제공한다. 안드로이드에 보안이 엄격해 다른 응용프로그램끼리의 데이터 점근을 할 수 없기 떄문에 유일하게 이 콘턴츠 제공자를 이용하여 데이터를 접근할 수 있다. 대표적인 예로 DB의 주소록이다.

+ Recent posts