마법사가 만들어준 프로젝트는 XML 레이아웃을 쓰도록 되어 있지만 반드시 XML을 사용해야 하는 것은 아니다.
자바 소스에서 순수한 코드만으로도 레이아웃을 구성할 수 있다.
☞ |
package exam.androidfirst;
import android.app.Activity; import android.os.Bundle; import android.widget.TextView;
public class AndroidFirst extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView MyText = new TextView(this); MyText.setText("코드로 문자열 출력하기"); setContentView(MyText); } } |
TextView는 화면에 문자열을 출력하는 가장 기본적인 위젯이다. 이 위젯을 사용하려면 소스 선두에 TextView 클래스를 사용하겠다는 import 선언을 해야한다. onCreate에서 MyText 변수를 선언하고 new 연산자로 TextView 객체를 생성했다. 빈 문자열을 가진 상태로 초기화 되므로 setText 메서드를 호출하여 원하는 문자열을 대입해야 한다. setContentView 메서드로 전달하여 액티비티의 내용물을 TextView 객체로 채우면 TextView의 내용물인 문자열이 액티비티에 나타난다.
그러나 코드에서 모든 것을 처리하는 방식은 규모가 아주 작은 프로젝트에서나 편리하고 규모가 큰 프로젝트에서 이러한 방법은 코드 관리의 한계점을 지닌다.
따라서 XML 레이아웃을 사용한다.
장점은.
① 코드와 데이터가 완벽하게 분리되므로 개발자와 디자이너의 분담 작업이 용이하다.
② 조건에 따라 레이아웃을 통째로 교체할 수 있으므로 호환성 확보, 국제화에 유리하다.
③ 레이아웃만 수정할 때는 코드를 컴파일하지 않아도 되므로 개발 속도가 빨라진다.
④ 구조와 속성을 함축적으로 기술할 수 있으며 레이아웃 재활용도 가능하다.
XML 레이아웃은 용량이 큰 텍스트 파일이고 구조도 복잡해서 정확한 의미를 분석하는데 다소 시간이 걸린다. 그러나 XML레이아웃을 분석하는 작업은 컴파일시에 미리 수행되므로 성능상의 불이익은 전혀 없으며 분석된 결과는 이진 포맷으로 바뀌어 실행 파일에 포함되므로 용량상의 낭비도 없다.
실제 프로젝트에서는 코드 레이아웃과 XML 레이아웃을 둘 다 사용하여 때로는 두 방법을 동시에 적용하기도 한다. 디자인 타임에 결정되는 정적인 레이아웃은 주로 XML을 사용하고 실행 중에 결정해야 하는 동적인 레이아웃은 코드를 사용하는 것이 보편적이다.
'Android' 카테고리의 다른 글
안드로이드 뷰(view)의 계층 (0) | 2012.07.27 |
---|---|
안드로이드 에뮬레이터 사용법 (0) | 2012.07.27 |
안드로이드의 레이아웃 파일 (0) | 2012.07.27 |
AndroidFirst.java 파일 분석 & setContentView 메서드 (0) | 2012.07.27 |
AndroidManifest.xml 이란! (0) | 2012.07.27 |