Android 입문자를 위한 Tutorial - 2. Hello Android!

Mobile Programming/Android 2010.09.28 15:54

간만의 포스팅입니다 .ㅋ
사실 안드로이드 강좌 포스팅은 다른 블로그에서도 워낙 잘 되있고 해서 별로 안 땡겼는데 , 연구실 후배들의 안드로이드 학습에 도움이 될까해서 포스팅 하도록 하겠습니다.
뭐 같은 의미로다가 C언어를 모르는 예비역 오빠를 위해서도 C언어에 대해 포스팅 할지도 모르겠습니다 ㅋ 
 
현재 클래스의 진도는 출력 쪽 입니다만 , 뭐 게으르다보니 오늘은 첫 예제에 대해.

귀찮으므로 기냥 수업시간에 했던 예제와 ppt를 붙이고 싶지만 아무리 2차적 저작물이라해도 교재를 따라 수업을 했기 때문에,혹시 저작권에 저촉 될까 싶어서 모든 예제, 새로 만들겠습니다.

교재의 모든 내용을 블로그에서 다 풀어쓰는건 무리고, 핵심 기능 몇 가지만 설명하겠습니다.

Eclips, 저번 시간에 다 깔으셨죠 ?
File > New > Project > Android > Android Project 로 먼저 액티비티를 생성해주시기 바랍니다.
ProjectName , Target은 뭐 2.2 ? ㅋ Application Name은 역시 아무거나 원하시는대로 정해주시고.
PackageName은 dot이 두개 들어가는게 정석입니다. 저 같은경우는 geng.mm.jnu (전남대 멀티미디어연구실 소속 갱) 라고 쓰는게 버릇이구요 ㅋㅋ Min SDK는 상콤하게 무시하고 Finish 눌러줍니다.

그럼 처음 화면이 이렇게 뜹니다.




이제 앞으로 친숙해질 코드들입니다. ㅋㅋ

Java에 익숙하다면 이 코드에 대해 뭐 긴 설명 필요 없을거 같은데요 .ㅋ
혹시 C만 아실 분들을 위해 간단하게 설명하죠.

package는 방금 package name 에서 적어주었던 그대로 되어있습니다.
import는 include와 같이 내장함수들을 이용하기 위해 사용되죠.
이 import와 반대되는 개념으로 내가 짠 소스들을 바깥으로 꺼내기 위해 package가 사용됩니다.
다음에 다른 소스에서 import로 이용할 수도 있겠군요.

다음으로 6번 라인. public static void main(String arg) 가 자바에서 메인 역할을 했었죠. C로 말하자면 int main.
Android에서는 public class 클래스명 extends Activity 가 메인 클래스 역할을 합니다.
extends Activity라 했으니 Activity Class의 함수들을 사용할 수 있겠군요 ?
(이 말이 이해 안가시는 분들은 C++의 클래스 - 상속을 공부하시기 바랍니다)


그 클래스 안에는 onCreate가 있네요. ( 9번 ) 포커스를 맞추고 F2를 눌러주면 설명이 뜹니다. 뭐라 뜨나 볼까요.


갱 패키지 아래에 있는 OnCreate .
Called when the ac...
액티비티가 처음 생성될때 호출이 된다고 합니다.
Windows Mobile이나 Window32 API 의 WM_CREATE 메시지 정도 되겠네요.

다시 소스로 돌아가 9번 라인을 봅시다. 그러고 보니 화면 좌측에 이상한 초록색 화살표가 있네요.

이 화살표가 바로 Super Class의 함수를 Override했음을 나타냅니다. ( 역시 클래스 상속을 보세요. )

10번 라인을 보니 오버라이드는 했지만 기본적인 초기화등의 처리는 SuperClass의 처리를 빌려다 쓰고 있네요.


그리고 11번라인, 컨텐트 뷰를 설정합니다.

안드로이드는 액티비티(하나의 소스라고 생각하세요) 에서 위젯들을 포함하고 있는 레이아웃을 불러다가 화면을 구성하는 형태를 취하고 있습니다. 11번 라인에서 수행하는 작업이 res > layout 에 정의되어 R파일에 표기된 레이아웃을 불러오는 것입니다.

res > layout> main.xml을 더블클릭하여 오픈하시고 하단 탭에서 xml을 클릭해 봅시다.


LinearLayout 이라는 화면 구성방법을 사용하고, 배치방법은 수직으로 차례차례두는 Vertical 을 채택, 그리고 layout의 폭과 높이는 액티비티 전체군요.

LinearLayout 을 따르는 위젯으로 TextView 또한 정의되있습니다.
width 는 parent전체 , 즉 LinearLayout의 크기, 액티비티 전체를 차지하고
height 는 wrap_content, 텍스트 뷰 안의 내용이 잘리지 않을정도의 최소한의 크기를 차지합니다.
10번라인의 @string/hello는 values > string에 저장된 hello 변수의 내용입니다.


hello는 Hello world, blog!라고 저장이 되어 있네요. ( 액티비티를 처음 만들때 정한 이름에 따라 hello 변수의 값은 살짝 다릅니다)


즉 , hello world, blog라는 문자열이 textview에 표시가 될거고, 그 텍스트뷰는 blog activity의 setcontentview에서 지정한 레이아웃,main.xml안에 위치하니 최종적으로 blog activity가 하는일은 hello world,blog를 출력하는 일이겠군요 .

실행해보기 전에, window > Android SDK and AVD manager에서  Virtual Device를 만들어두시기 바랍니다.


실행해 봅시다.

RunAs > android Application을 선택하면 만들어둔 Virtual Devices가 실행됩니다.
부팅하는데 조금 걸리니 느긋한 마음으로 기다릴까요.


잠금을 푸시면 (자물쇠모양 화살표 오른쪽으로 드래그) 실행시킨 액티비티가 화면에 표시가 됩니다.




첫 예제 설명이 길어졌습니다. 이제부터 꼭 필요한 경우에만 (최소한 C나 Java 설명은 때려치우겠습니다) Line By Line으로 설명을 하겠습니다.
저작자 표시 비영리 변경 금지
신고