일반적인 자바 개발시 예외처리하는 것은 그리 간단하지 않다.


HelloAndroid를 통해서 어떻게 예외처리가 되는지 간단하게 알아보자.

package com.min.hello;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        int i=0;
        int j=3/i;
        TextView tv = new TextView(this);
        tv.setText("\n\n\n\n\n한글이 될랑가? ");
        setContentView(tv);

    }
}

이 소스의 중간에 i 값을 0으로 지정하고, j 값에 3을 i로 나누도록 해보자.

당연히 0으로 나누기 때문에 ArithmeticException이 발생하게 될 것이다.


그럼 수행해서 결과를 확인해 보자.

음~~ 당연히 오류가 나는데, 예쁜 예외 메시지 창에 결과가 나타난다.

앞으로 개발하면서 이런 화면은 나오면 안되겠지만...


물론 try-catch 구문으로 묶어주게 되면 아무런 메시지도 나오지 않게 된다.

Posted by tuning-java
,

이제 직접 안드로이드 애플리케이션을 만들어 보자.


이클립스에서 create Project를 누르고 안드로이드 프로젝트를 누른다음,

다음과 같이 설정한다.

Project name : HelloAndroid - 일반 eclipse 프로젝트와 동일한 프로젝트 이름

Package name :  com.min.hello - 자바에서 사용하는 패키지와 같은 의미의 패키지 이름.
모든 어플리케이션이 이 폴더밑에 있어야 하며, 모든 시스템에 설치된 패키지의 이름과 절대 같으면 안된다.(유일해야만 한다.)

Activity name : HelloAndroid - 자동으로 껍데기 (보통 스텁이라고 부르는) 클래스 파일의 이름을 지정한다.
이 클래스는 안드로이드 activity class의 자식 클래스여야만 한다.

Application name : My first Android - 보통 사람들이 읽기 쉬운 어플리케이션 이름을 여기에 지정한다.


이제 Finish를 누르면 자동으로 프로젝트가 생성된다.

생성된 프로젝트는 다음과 같은 구조를 가진다.

많이도 생성된다. - -;


가장 먼저 봐야 하는건 HelloAndroid.java이다. 해당 파일을 열어보자.

package com.min.hello;

import android.app.Activity;
import android.os.Bundle;

public class HelloAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
    }
}

아까 이야기한대로 Activity 클래스의 상속을 받았다.

그리고 onCreate메소드를 오버라이드 했다.


이 상태에서 안드로이드를 실행해 보자.

(실행 방법은 앞에 설명했으므로, 생략한다. 참고로 안드로이드 에뮬레이터가 실행 상태라면 그냥 다시 이클립스에서 실행하면 된다.

에뮬레이터를 다시 실행할 필요는 없다.)



실행하면 "Hello World, HelloAndroid"라는 메시지가 나타난다.

오~ 신기하다...


아무것도 한게 없는데...


저 메시지는 어디에서 지정하는 것일까?


안드로이드는 두가지 방법의 화면 레이아웃 구조를 갖고 있다.

한가지는 자바 코드에서 구성하는 방법과 다른 한 가지는 XML파일에서 구성하는 방법이다.

HelloAndroid 이클립스 프로젝트의 res 폴더 -> layout 폴더 -> main.xml파일을 열어보면 다음과 같이 되어 있는 것을 확인할 수 있다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Hello World, HelloAndroid"
    />
</LinearLayout>

뭐가 뭔진 아직 잘 모르겠지만, 중간에 TextView라고 되어 있는 부분이 있다. 가로와 세로 크기를 지정하고 text를 지정했다.

이 text 부분에 Hello World, HelloAndroid가 바로 에뮬레이터에서 나타난 그 메시지이다.


그럼 이번에는 저 방식이 아닌 자바 소스에서 지정하는 방법을 알아보자.

package com.min.hello;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        TextView tv = new TextView(this);
        tv.setText("\n\n\n\n한글이 될랑가? ");
        setContentView(tv);
    }

}

이렇게 하고 다시 한번 실행해보자.

줄바꿈 처리를 하기 위해서 \n을 사용했다.

이렇게 해보니 간단하게 한글도 처리되는 안드로이드 어플리케이션이 만들어 졌다.


여기에 있는 setContentView() 메소드에 대해서 잠깐 알아보자.

이 메소드는 Activity 클래스에서 반드시 실행되어야 한다. 만약 이 메소드가 실행되지 않으면, 아무런 데이터도 화면에 뿌려지지 않는다.



참고 : 이 내용은 http://code.google.com/android/index.html 의 내용을 참조하여 작성되었음.

Posted by tuning-java
,

참고로 이 설명은 [Blog2Book 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기] 책을 읽는 독자분들이 부록으로 제공되는 DevPartner for Java를 보다 쉽게 사용할 수 있도록 작성되었으며, 설치시 14일간 기능의 제한이 없는 임시 라이센스가 생성됩니다.


DevPartner의 화면에 대한 간단한 설명을 해 보고자 한다.
먼저 Welcome 화면이다.

그냥 별 내용은 없는데, 오른쪽에 Java Platform Performance 라는 링크를 누르면 자바의 성능에 대한 관련 책이 링크로 제공된다.

(인터넷이 되는 곳에서만 확인할 수 있다.
다음은 Application Testing 화면이다.

이 화면에서는 WAS 기반의 시스템이 아닌 단독 자바 애플리케이션을 테스트 할 때 사용된다.

이 화면을 사용하기 위해서는 DevPartner의 프로그램 그룹에 있는 Utility의 Administration 이라는 프로그램을 사용해야만 하는데, 나는 설정하기 귀찮아서 이 기능을 사용하지 않는다.

이번 화면은 Application Server Testing 화면이다.

관련 내용은 Application Testing 과 비슷하기 때문에 생략 하겠다.

이제부터 중요한 화면이다.

위의 화면은 Session Files 라는 화면인데, drop down 메뉴에 기본적으로 Default라고 나타날 것이다.
만약 여러분이 config를 다른 이름으로 지정한다면 그 이름도 여기에 나타날 것이다.
config 지정하는 것은 "WAS 모니터링 시작하기"편을 통해서 확인해 보기 바란다.

다음은 현재 프로파일링 중인 어플리케이션 세션의 목록을 보는 화면이다.

여기의 목록에서 프로파일링 중인 대상을 더블 클릭하면, 데이터를 수집할 수 있는 화면으로 이동한다.

마지막 화면은 설정하는 화면인데, 가장 중요한 화면중 하나이다.

이 내용은 영어를 읽으면서 하나 하나 설정해 보면 되는데, 만약 자세한 설명이 필요하다는 분들이 많다면,

자세한 설명을 나중에 추가하도록 하겠다.

Posted by tuning-java
,

참고로 이 설명은 [Blog2Book 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기] 책을 읽는 독자분들이 부록으로 제공되는 DevPartner for Java를 보다 쉽게 사용할 수 있도록 작성되었으며, 설치시 14일간 기능의 제한이 없는 임시 라이센스가 생성됩니다.


DevPartner for Java (이하 DevPartner)를 윈도우즈 기반에서 설치하는 방법은 매우 간단하다.


DevPartner를 설치하기 위해서는 설치 디렉토리에 있는 Setup.exe 파일을 실행하면 다음과 같은 화면이 나타나고, 여기서 install Compuware DevPartner를 선택하면 된다.

기본적인 설치 방법은 여타 다른 툴들과 비슷하기 때문에 생략하고, 중간에 Integrate DevPartner Java Edition with your IDE 와 다른 옵션을 선택하는 부분이 있다. 다른 옵션은 선택하지 않는 것이 좋고, 만약에 eclipse와 같은 툴에서 사용하기 위해서는 Integrate... IDE를 체크하여 eclipse의 경로를 지정하면 된다.


모든 설치가 완료되면 "반드시" PC를 재기동 해야한다. 윈도우용 설치파일만 제공되기 때문에 Linux나 Unix에서 설치하는 방법에 대해서는 여기서 다루지 않겠다.


PC를 재기동 한 이후에 자동으로 DevPartner 초기화면이 기동될 것이다.


다음부터 이 초기화면으로 이동하기 위해서는 윈도우의 시작 -> 프로그램 -> Compuware DevPartner Java Edition -> DevPartner Java Edition을 선택하면 이 화면으로 이동할 수 있다.



이 화면이 정상적으로 나타난다면 제대로 설치가 된 것이다.

나는 그렇지 않은 경우가 없어서 그렇지 않은 경우에 어떻게 하냐고 물어보셔도 모르니 참조해 주기 바란다.

(기본적으로 자바가 설치 되어 있어야 하며, 현재 제공되는 프로그램의 경우에는 JDK 6.0이 지원되지 않는 것으로 알고 있다. 사용하려면 JDK 5.0을 설치하여 사용하기 바란다.)


첫 화면이 나타나면 눈치를 챈 분들도 있겠지만, 내부적으로 톰캣 서버를 기동하여 그 톰캣 서버에서 작업을 수행하는 구조로 되어 있다.


설치 단계의 마지막으로 한가지 팁을 알려드리면, 이 툴의 경우 관련된 서비스가 항상 실행되도록 되어 있기 때문에 해당 서비스를 자동이 아닌 수동으로 수행될 수 있도록 변경해 주어야만 한다.

윈도우 시작 -> 설정 -> 제어판 -> 관리도구 -> 서비스를 선택하면 아래와 같은 화면이 나타날 것이고, 여기서 잘 찾아보면 Compuware 어쩌구 저쩌구하는 것이 있는 것을 확인할 수 있다.


해당 줄을 더블클릭하면 다음과 같은 화면이 나타난다.

여기서 중간에 있는 자동을 수동으로 변경하고 확인을 누르면 이제부터 시작할때 마다 DevPartner가 시작되지 않는다.

Posted by tuning-java
,