안드로이드 강좌 2 - 이클립스 개발환경 사용법 및 프로젝트 생성
프로젝트 생성
이클립스 메뉴에서 File / New /Project 선택
Android / Android Project 선택 후 Next
다음과 같은 창이 뜹니다.
(그림 2-1)
Project Name : 이클립스에서 프로젝트를 구분해주기 위한 이름
Package Name : 자바 패키지 지정
Activity Name : 기본으로 생성되는 Activity 클래스에 사용될 이름
Application Name : 단말에서 어플리케이션에 사용되는 이름
다음과 같이 입력해보도록 하겠습니다.
MobilePlace Lecture
kr.mobileplace.lecture
Main
MobilePlace
액티비티(Activity)란? 안드로이드 어플리케이션의 기본 단위. 보통 사용자가 현재 보고 있는 전체 화면이라고 생각하면 됩니다. 화면의 구성 정보를 가지고 있고 사용자의 입력을 받아서 처리하는 역할을 합니다.
프로젝트 패키지
기본으로 생성되는 프로젝트 패키지를 펼쳐 보면 다음과 같습니다.
(그림 2-2)
src : 자바 소스가 위치합니다.
Main.java : 기본으로 지정해주었던 Activity 클래스
R.java : 리소스 파일에서 생성되는 클래스로 항상 자동으로 생성되며 직접 수정을 해서는 안됩니다.
res : 어플리케이션에서 필요한 그림, 멀티미디어, 레이아웃, 문자열 등 다양한 리소스 관리
drawable : 어플리케이션 내에서 사용될 그림 파일들
layout : Activity의 화면 구성 정보를 담고 있는 xml파일들
values : 문자열, 배열, 색, 스타일등 다양한 부가 정보들.
Android Library : 안드로이드 SDK 사용을 위해 포함된 라이브러리
AndroidManifest.xml : 어플리케이션과 구성과 관련된 모든 정보를 담고 있는 파일. 어플리케이션 작성에서 가장 중요한 역할을 하는 파일입니다. 어플리케이션과 Activity의 다양한 설정, 사용권한, 연관된 라이브러리 등 다양한 정보를 포함합니다.
액티비티 생성
새로운 Activity를 직접 작성해보면서 이클립스의 기능을 살펴보도록 하겠습니다.
클래스 생성
먼저 왼쪽 프로젝트 패키지 화면에서 src/kr.mobileplace.lecture 라는 패키지 위에서 마우스 오른쪽 버튼을 클릭합니다. New를 선택하고 Class를 선택합니다.
(그림 2-3)
새로운 클래스를 생성하는 다이얼로그가 나타납니다. 먼저 Name부분에 새로 작성할 Activity의 클래스 명을 적습니다. MyActivity라고 적고 그 아래 상속할 Superclass의 이름을 적어줍니다. Activity 클래스를 상속할 것이기 때문에 Activity를 적고 오른쪽에 Browse버튼을 클릭합니다.
(그림 2-4)
그러면 Activity라는 단어를 포함한 모든 클래스가 나열됩니다. Superclass로 사용할 Class인 android.app.Activity를 선택하고 OK를 클릭합니다.
(그림 2-5)
이제 다시 (그림 2-4)의 New Java Class화면에서 Finish를 클릭하면 프로젝트 소스에 새로운 클래스에 대한 파일이 생성된 것을 확인할 수 있습니다.
레이아웃 XML 생성
이번에는 액티비티의 화면 구성에 사용되는 레이아웃 파일을 만들어 보겠습니다. res/layout 폴더위에서 오른쪽 마우스 버튼을 클릭한 후 New 에서 File을 선택합니다. 파일이름을 myactivity.xml이라고 설정한 후 OK를 누릅니다. res 밑에 들어가는 파일들은 항상 소문자, 숫자, _ 만으로 구성되어야 하니 유의하시기 바랍니다!
(그림 2-6)
아직 xml파일의 내용을 작성하지 않아서 빨간 X표시가 붙어있을 것입니다. myactivity.xml을 더블 클릭한 후 myactivity.xml이 에디터 창에 열립니다. 그런 후 에디터 아래쪽에 있는 Layout | myactivity.xml 탭에서 myactivity.xml을 선택하면 xml을 내용을 에디트 할 수 있는 화면이 열립니다.
(그림 2-7)
일단 레이아웃 파일의 자세한 작성법은 나중에 다루기로 하고 main.xml에 있는 내용을 그대로 복사 넣고 android:text=”” 부분을 사용자 마음대로 수정해 봅니다.
(그림 2-8)
AndroidManifest 수정
새로운 Activity를 생성하면 항상 AndroidManifest에다가 관련 정보를 등록해야 합니다. AndroidManifest에 넣어주어야 단말이 해당 Activity의 존재를 알 수 있습니다. 그렇지 않으면 단말에서 정상적으로 Activity를 생성할 수 없습니다.
먼저 AndroidManifest.xml을 더블 클릭한 후, 에디터 창의 아래 탭에서 AndroidManifest.xml을 선택합니다. 일단 기존에 생성되어있는 activity 태그 부분을 그대로 복사하여 하나 더 만든 후에 android:name=”” 부분에 새로 생성한 클래스의 이름 “.MyActivity”를 넣습니다. android:label 부분은 titlebar에 출력될 텍스트를 설정하는 부분입니다. 그리고 Main에 있던 category 부분은 일단 제거하고 저장하도록 하겠습니다.
(그림 2-9)
메서드 오버라이드
자 이제 필요한 파일들은 모두 생성을 했습니다. 이제 생성된 파일들을 실제 동작할 수 있도록 자바 코드를 작성해 보겠습니다. 다시 MyActivity.java 파일로 돌아갑니다.
클래스의 { } 사이를 클릭해서 커서를 위치 시킨 후 오른쪽 마우스 버튼을 클립합니다. 그리고 Source에 Override/Implement Methods를 클릭합니다.
(그림 2-10)
생성된 다이얼로그 창에서 오버라이드할 메서드인 onCreate(Bundle)을 찾아서 체크한 후에 OK 하면 MyActivity.java에 해당 메서드를 오버라이드한 코드가 자동으로 생성됩니다.
(그림 2-11)
이제 오버라이드한 onCreate메서드에 아까 만들었던 myactivity.xml 이라는 레이아웃을 이 Activity의 화면 구성에 사용한다는 코드인 setContentView(R.layout.myactivity); 작성하여 넣습니다. 그 다음 디버그 메시지 출력을 위한 코드인 Log.d(“MyTag”, “Print Test Log”);를 작성하여 넣습니다. 그런데 Log라는 클래스명에서 빨간 밑줄이 그어지며 에러표시가 난 것을 확인하실 수 있습니다. 해당 클래스가 현재 파일에 import되어있지 않기 때문에 발생하는 에러입니다. Log 위에서 오른쪽 마우스를 클릭한 후 Source의 Add Import를 클릭합니다. (단축키로 Ctrl+Shift+M도 사용하실 수 있습니다.) Log클래스가 여러 개 있기 때문에 선택을 위한 다이얼로그가 뜹니다. android.util.Log를 선택합니다.
(그림 2-12)
이제 기본적인 코드 작성이 끝이 났습니다. 새로 작성한 소스를 실행해보는 일이 남았는데요 다음 강좌에서 계속 하도록 하겠습니다.
- lecture2-1.JPG (39.7KB)(795)
- lecture2-13.JPG (19.7KB)(162)
- lecture2-2.JPG (25.2KB)(103)
- lecture2-3.JPG (56.0KB)(76)
- lecture2-4.JPG (54.1KB)(76)
- lecture2-5.JPG (38.4KB)(64)
- lecture2-6.JPG (35.3KB)(108)
- lecture2-7.JPG (44.3KB)(65)
- lecture2-10.JPG (91.9KB)(69)
- lecture2-11.JPG (46.0KB)(87)
- lecture2-12.JPG (92.7KB)(133)
- lecture2-9.JPG (69.0KB)(91)
- lecture2-8.JPG (45.2KB)(152)
Activity 이렇게 만드는 방법도 있습니다.
Element 쉽게 추가하기
Manifast Edit > Application
- Application Nodes > Add
- Attributes for > Name* 클릭. (단, Add 한 Element가 선택된 상태 )
- (일반적인 Class 생성 Edit창 뜸) package, name 설정 후 "Finish"
==> 하나의 Element가 생성되고 파일도 생성됩니다.
(항상 좋은 정보 배우고 갑니다.+_+)
Myactiviy를 구지 Gen directory 로 옮기거나, R.java를 대당 package 폴더로 옮기지 않아 도 됩니다.
xml 파일만 작성만 잘 하시면, /gen/R.java는 자동으로 생성이되고, 다음에 가서 그냥 동작하면 정상적으로 3장까지는 무사히 넘어 갈수 있을 것입니다. ( R.java 땜시, xml 파일 에러땜시 3일 고생했내요..) 이렇게 해서 Fedra 12 linux 에서 Eclipse 3.5 , 와. SDK2.1 를 이용하여셔 sample test를 무사히 돌렸네요.. 그럼 즐거운 일 하세요
저장하고 나면 바로 gen/R.java의 내용중
public static final class layout {
public static final int main=0x7f030000;
이
public static final class layout {
public static final int main=0x7f030000;
public static final int myactivity=0x7f030001;
로 자동으로 바뀐걸 확인할수 있습니다.
이줄에서 에러가 나는데 왜그럴까요ㅠ..ㅠ
스샷그림파일 첨부 ㅠ
setContentView(R.layout.myactivity);
myactivity <-- 이부분에서 오류나는건 뭐죠??;;
버전이 달라서 그런가요?;;
R.java도 보이지 않는데..
gen 폴더에 있다는분들은 어떻게 만드신건지 좀 알려주세요 ㅠㅠ
제가 사용하는 버전은 android 2.2, AVD 8인거 같은데..