안드로이드 개발 환경 구성을 쉽게


지난 포스팅을 통해서 안드로이드 개발환경을 구성할 때 이클립스를 다운로드하고 여러가지 소스와 플러그인을 다운받아서 개발 환경을 구성하는 방법에 대해서 설명하였습니다. 그렇지만 지금까지의 복잡한 설치과정을 거치지 않고 한번에 안드로이드 개발환경을 구성하는 방법이 있습니다.

그것은 바로 안드로이드 스튜디오를 이용하는 것입니다. 이번 시간에는 ADT 번들이라고도 하는 안드로이드 스튜디오를 설치해보고 개발환경 UI를 확인해보겠습니다.


안드로이드 스튜디오 ADT 번들 장단점


안드로이드 스튜디오는 이클립스와 이클립스 ADT 플러그인, 안드로이드 ADT가 포함된 버전이라고 보면됩니다.
이클립스와 이클립스 ADT 플러그인, 안드로이드 ADT를 개별적으로 설치하는 것과 안드로이드 스튜디오를 사용하는 것의 차이점은 다음과 같습니다.

안드로이드 스튜디오인 ADT 번들의 장점은 한번에 모든 과정의 설치가 진행되기 때문에 간편합니다.
그렇지만 ADT 번들을 사용할 때는 이클립스가 ADT 번들안에 포함되어 있기 때문에, 고정된 이클립스만 사용해야한다는 단점이 있습니다.
최신 버전 이클립스가 출시되었다고 해도 이클립스만 최신버전으로 업데이트하기가 쉽지는 않습니다.  



안드로이드 스튜디오 ADT 번들 설치하기


ADT는 Android Developer Tools의 약자입니다. ADT라는 말은 이전에 이클립스에서 ADT 플러그인이라는 것을 설치할 때 들었던 용어입니다. 이클립스에 붙여서 사용하는 일종의 플러그인 이었습니다.

안드로이드 스튜디오를 다운로드 받겠습니다. 먼저 안드로이스 스튜디오 사이트에 접속합니다. 
녹색 다운로드 버튼을 클릭해서 안드로이드 스튜디오를 다운로드 받습니다.




약관을 일고 체크한 뒤 동의합니다.






안드로이드 스튜디오 번들이 다운로드 되고 있습니다. 파일의 크기는 1.1G 정도입니다.



다운로드가 되는 주에 설치가이드가 나타납니다. JDK 환경변수 설정등에 대해서 설명하고 있습니다.



다운로드가 완료되면, android-studio-bundle-135.1641136.exe 파일을 클릭하여 안드로이드 스트디오의 설치를 진행합니다.



















Finish 버튼을 클릭하면 안드로이드 Studio가 시작됩니다.










안드로이드 스튜디오가 시작되면 자동으로 안드로이드 SDK Tools등이 다운로드 됩니다. 이전에 이클립스를 설치하고 추가로 설치했던 안드로이드 SDK Manager와 같은 기능을 이제는 안드로이드 스튜디오에서 진행한다고 생각해도 됩니다.












안드로이드 스튜디오의 설치가 완료되었습니다. Finish 버튼을 클릭해서 안드로이드 개발환경을 확인해보도록 하겠습니다.




Quick Start 가이드에 맞추어서 Start a new Android Studio project를 클릭합니다.



새로운 프로젝트를 등록합니다. 디폴트 상태에서 Next 버튼을 클릭합니다.



Mnimum SDK 버전을 선택한 뒤에 Next 버튼을 클릭합니다.











어떤 화면을 구성할지 선택한 뒤에 Next 버튼을 클릭합니다.



Activity 이름과 Layout 이름을 작성합니다. 작성을 완료하면 Finish 버튼을 클릭합니다.



어플리케이션이 빌딩되고 있습니다.




안드로이드 스튜디오 개발환경이 나타납니다. Tip of thd Day 팝업을 Close 합니다.




이클립스와 유사한 안드로이드 스튜디오의 개발환경이 나타납니다. 왼쪽 메뉴에서 activity_main.xml 소스를 클릭합니다.



왼쪽 메뉴에서 activity_main.xml 소스를 클릭하자 오른쪽에 화면 레이아웃과 소스가 나타납니다. MainActivity.java 탭을 클릭합니다.



MainActivity.java 탭을 클릭하면 오른쪽에 MainActivity 클래스의 소스를 확인할 수 있습니다.


안드로이드 프로젝트 폴더의 구성 알아보기




이클립스를 사용하면 안드로이드 소스를 쉽게 트리구조로 확인할 수 있습니다. 왼쪽의 Package Explorer 화면에 소스의 구조가 트리형태로 표시됩니다.

현장에서 안드로이드 프로젝트를 시작하면 해당 폴더 구조안에 많은 소스를 새롭게 추가해서 만들게 됩니다. 따라서 안드로이드 소스가 구성된 폴더 구조는 이해하고 있어야 합니다.

이전 내용과 이어지는 내용이므로 이전 포스팅을 순서대로 학습하면 더욱 효과적입니다.



이클립스를 통해서 본 전체 안드로이드 소스의 구조는 아래 화면과 같습니다.



src 폴더


src는 자바 클래스 소스가 있는 폴더입니다. 안드로이드 시스템이 처음 기동될 때에 MainActivity 클래스를 이용하게 됩니다.



res 폴더


res폴더는 리소스 파일이 들어 있는 폴더입니다. 레이아웃 관련된 파일은 layout 폴더에 그림파일 관련된 파일은 drawable 폴더에 문자열 정의에 대한 파일은 values 폴더 안에 위치하고 있습니다.




gen 폴더


gen 폴더는 ADT가 자동으로 만들어내는 소스 파일이 들어가는 폴더입니다.


assets 폴더


assests 폴더는 동영상 파일들을 넣어 관리하는 폴더입니다.


AndroidMainfest.xml


안드로이드 어플리케이션의 구성요서나 권한등의 정보를 정의하고 있습니다.


default.properties


프로젝트 설정과 관련된 속성을 정의한 파일입니다. 예를 들어서 빌드 타겟등을 정의할 수 있습니다.
만약 프로퍼티 파일이 없다면 자바 코드에 하드코딩하는 불미스러운 일이 발생할 수 있습니다. 하드코딩한 소스는 시스템 유지보수에서 자원 리소스와 에러의 요인이 되게됩니다.





실습 내용 함수와 클래스 정리


지난 시간 실습에서 사용하였던 내용들을 다시 간략하게 정리해보겠습니다.

setContentView() : 화면에 무엇을 보여줄 지를 결정하는 메소드입니다.
R.layout.activity_main : 화면에 보여줄 대상이 되는 XML의 위치를 지정합니다.
@string/hello : 어떤 글자를 사용할 것인지를 세팅합니다.
@+id/okBtn : activity_main.xml 안에 태그 ID를 지정하는 방식입니다.
findViewById() : XML에 정의된 태그의 ID를 java 코드에서 불러오는 함수입니다.
setOnClickListenr() : 버튼이 쿨렀을 때 어떤 기능을 할지 간단하게 지정하는 함수입니다.
Intent : 어떤 기능을 실행할 지를 설정하는데 사용합니다.
Toast : 화면에 보여주는 메시지를 출력합니다. JSP에서 alert()로 생각하시면 됩니다.


실무에서 안드로이드 프로그래밍 앱개발은?


지금까지 공부했던 포스팅 내용에서는 안드로이드의 소스인 java나 xml 파일을 새로 만들지 않고 안드로이드 개발환경 구성시 기본으로 설치된 소스를 수정해서 실습했습니다. 실제 안드로이드 실무 개발 환경에서는 이렇게 프로그램 개발을 하지는 않습니다.

대개의 경우에는 고객의 요청이나 설계에 따라서 직접 새로운 화면을 만들고 구성하게 됩니다. 그렇다고 처음부터 새롭게 만드는 것이 아니라. 기존의 소스를 복사해서(Copy & Paste) 사용하는 경우가 많습니다. 그런 개발 방법에 대해서 폄하하는 사람들도 있지만, 시분일초를 다투는 개발 현장에서 개발 시간을 단축하는 효율적인 방법 중에 하나임에는 틀림없습니다.

그렇지만 소스에 대한 이해는 반드시 중요합니다. 무조건 템플릿 소스를 복사해서 사용하다보면 안드로이드 프로그래밍에 대한 이해도가 떨어지기 때문입니다. 따라서 자신이 복사해서 사용했다해도 반드시 소스에 대해서 이해하도록 스스로 노력해야합니다.

현장에서 빠른 앱개발을 위해서 추가적으로 XP라고 부르는 익스트림 개발방법(extreme Programming)이나 Pair 프로그그래밍등도 적용해 보는 것도 좋을 것입니다.



실무에서 요긴한 안드로이드 프로그래밍 개발 방법 배우기


이번 시간에는 실무에서 개발하는 방법을 실습으로 배워보도록 하겠습니다.
이전 내용과 이어지므로 아래 포스팅을 순서대로 학습한 뒤에 진행하면 더 효과적입니다.



Activity 자바 클래스 만들기


안드로이드에서는 새로운 화면을 만들 때 Activity 라는 것을 만들게 됩니다. 실제 안드로이드는 화면 단위로 움직이는 경우가 많기때문에 간편하게 화면을 Activity 라고 이해하시면 됩니다.

먼저 왼편의 Package Explorer에서 조금 전 작성한 MainActivity.java를 선택합니다.



이제는 Ctrl+C 를 클릭해서 복사를 하고 다시 Ctrl+V를 해서 붙여넣기를 합니다. 



Activity 이름은 TestActivity 로 변경하고 OK버튼을 클릭합니다.



왼편 Package Explorer에 TestActivity.java가 생성된 것을 볼 수 있습니다. TestActivity.java를 더블 클릭하면 오른편의 프로그램 소스창에서 소스 내역을 확인 할 수 있습니다.



java 클래스의 이름이 TestActivity로 생성된 것을 볼 수 있습니다.




activity XML 파일 만들기


마찬가지로 res/layout 폴더안의 activity_main.xml 파일도 Ctrl+C로 복사한 뒤 Ctrl+V로 붙여넣기를 합니다.
그리고, xml의 파일의 이름을 test_activity.xml로 변경합니다.



이제 새로운 액티비티와 레이아웃을 복사 하였으므로 필요할 때 수정해서 사용하면 됩니다. 먼저 test_activity.xml 의 소스코드를 다음과 같이 수정합니다. 불필요한 버튼은 없애고 돌아가기 버튼만 만들겠습니다.

[ res/layout/test_activity.xml ]



TestActivity와 MainActivity 클래스 수정하기


TestActivity.java 소스를 다음과 같이 변경합니다. MainActivity.java에서 복사했던 소스이므로 onCreateOptionsMenu() 함수나 onOptionsItemSelected() 함수를 제거하고 아래 소스와 같이 돌아가기 버튼 부분만 구현합니다.

소스를 보면 onClick() 이벤트 발생시에 돌아가기 클릭이라는 메시지를 보여주는 것을 구현하였습니다.
이전에 설명한 내용이라서 넘어가겠습니다. 이 소스에서는 유심히 지켜보아야 할 부분이 있습니다.

그것은 바로 돌아가기 버튼 소스의 마지막 부분에 finish(); 함수를 사용한 것입니다. 만약 finish() 함수를 사용하지 않으면 안드로이드 시스템은 돌아가기 클릭하였음 이라는 메시지를 디스플레이하고 뭔가 다른 액션이 있는지 알고 계속 기다립니다. 후속 작업 지시가 없으니 계속 대기하고 있는 것입니다.
따라서 더 이상의 작업은 없을때는 finish() 함수를 적어주면 작업을 마치고 다시 원래대로 화면으로 복귀하게 됩니다.

[TestActivity.java]



이번에는 MainActivity.java 파일을 수정해야합니다. 안드로이드 앱이 실행될 때 MainActivity는 주인 역할을 합니다.

MainActivity에서 OK 버튼을 클릭했을 때 TestActivity를 호출하도록 소스를 수정하겠습니다.
onCreate() 메소드안에 Intent 객체를 활용해서 TestActivity.class을 호출하는 부분을 추가합니다.

메인 엑티비티에서 OK버튼을 클릭했을 때 인텐트의 파라미터로 새로 추가된 TestActivity.class 가 전달되는 것입니다.
OK 버튼을 누르면 인텐트는 TestActivity를 넘겨주게 됩니다.

[ MainActivity.java 에 추가할 내용 ]



[ MainActivity.java 전체 소스 ]



TestActivity 액티비티를 매니페스트(AndroidManifest.xml) XML에 등록하기


조금 전에 액티비티인 TestActivity를 만들었습니다. 추가한 액티비티인 TestActivity를 안드로이드 시스템이 인식할 수 있도록 매니페스트 xml에 등록하는 절차를 진행해야합니다. 

아래 화면과 같이 이클립스 왼쪽 Package Explorer의 아래쪽에 AndroidManifest.xml 파일을 클릭합니다. 


아래 화면에서 오른쪽 아래 AndroidManifest.xml 탭을 클릭합니다.



AndroidManifest.xml 소스 파일안에 <activity> 태그 부분에 다음을 추가합니다.


이렇게 AndroidManifest.xml 파일에 추가하면 안드로이드 시스템은 새로운 액티비티를 인식할 수 있습니다.




검증된 개발 프로세스 매뉴얼화 하기


개발을 하다보면 정작 프로그램 소스는 만들어 놓고서 시스템이 동작하지 않는 경우가 있는데 많은 경우 매니페스트 파일에 Activity를 추가하지 않는 경우가 많습니다. 따라서 실수를 줄이려면 다음과 같은 절차를 매뉴얼화 해서 순서대로 개발 진행하는 것이 좋습니다.

[ 새로운 액티비티 만들 때 작업 순서 ]

1. 새로운 액티비티 만들기(기존 액티비티 복사해서 만든다) 
2. 새로운 레이아웃 만들기(기존 레이아웃 복사해서 만든다)
3. 새로운 액티비티를 실제 사용할 호출부 수정하기(ex. MainActivity.java)
4. AndroidManifest.xml 파일에 새로운 액티비티 태그 추가하기


어플리케이션을 실행해보도록 하겠습니다. Ctrl+F11을 누르고 애뮬레이터를 실행합니다. OK 버튼이 보입니다. OK 버튼을 클릭하면 OK 버튼 클릭하였음 이라는 메시지가 출력됩니다. 그리고 나서 BACK 버튼이 있는 화면으로 이동합니다. 



BACK 버튼을 클릭하면 돌아가기를 클릭하였음 이라는 메시지가 출력되면서 다시 원래 화면으로 복귀하게 됩니다.


간단한 앱개발 어플리케이션 제작하기


이번 시간에는 전화걸기 및 인터넷 접속하기 기능의 간단한 어플제작을 해보겠습니다.
해당 포스팅은 이어지는 내용이므로 아래 이전 포스팅을 순서대로 학습한 뒤에 진행바랍니다.


지난번 시간에는 간단한 버튼을 생성해서 버튼 클릭시 메시지를 출력하는 것을 실습해보았습니다.
이번에는 여러분이 만든 앱을 통해서 간단한 전화걸기나 인터넷 접속을 해보는 예제를 만들어 보도록 하겠습니다.

실습 진행 순서는 다음과 같습니다.
먼저 이클립스를 실행한 뒤에 Graphical Layout에서 전화걸기 버튼과 인터넷 접속 버튼을 생성합니다. activity_main.xml 에서 자동으로 생성된 xml 소스를 확인합니다. xml 소스 확인 뒤에는 java 프로그램에서 버튼 클릭시에 이벤트 처리부분을 작성하도록 하겠습니다.

Grahpial Layout은 activity_main.xml 소스부분이 사용자가 이해하기 쉽게 만들어놓은 일종의 GUI(Grahpic User Interface) 입니다.


그래픽 사용자 인터페이스(영어: graphical user interface, GUI)는 컴퓨터를 사용하면서, 그림으로 된 화면 위의 물체나 틀, 색상과 같은 그래픽 요소들을 어떠한 기능과 용도를 나타내기 위해 고안된 사용자를 위한 컴퓨터 인터페이스이다.


어플리케이션 버튼 만들기


왼쪽 화면에서 

Button 부분을 마우스로 드래그 해서 오른쪽 Layout 화면으로 이동합니다.



마우스를 드래그하는대로 오른쪽 화면으로 옮기면 버튼이 생성됩니다. 마우스로 위치를 버튼의 크기를 적절하게 조절한 뒤에 버튼의 이름을 전화 걸기와 인터넷 접속하기로 변경하겠습니다.





버튼 이름 변경하기


버튼 이름을 변경하기 위해서 하단 부분에 activity_main.xml 탭을 클릭새서 소스를 열어보면 아래와 같이 Button이 자동으로 생성되어 있음을 확인 할 수 있습니다.





activity_main.xml 소스에서 버튼에 보이는 이름은 android:text 부분입니다. 이 부분이 Graphical Layout에서 Button으로 생성되어 있습니 여기에 각각 전화 걸기와 인터넷 접속하기를 입력합니다.
입력이 끝나면 Grahpical Layout 탭으로 이동해서 버튼의 이름이 변경되었는지 확인합니다.



Grahpical Layout 탭을 클릭하면 아래 화면과 같이 전화걸기와 인터넷 접속하기 버튼이 생성되었음을 볼 수 있습니다. 그럼 이제는 버튼에 각각 전화를 거는 이벤트와 인터넷 접속하는 이벤트를 만들어서 실제 버튼 클릭시에 동작이 되도록 만들어보도록 하겠습니다.



조금 전 작업을 Grahpical Layout에서 진행해도 됩니다. 그렇지만 Grahpical Layout 편리하기는 하지만 실제 현장에서 레이아웃 설계를 할 때는 간단한 화면 Layout보다는 복잡한 경우가 많습니다.
조금만 복잡해져도 Grahpcial Layout으로는 실제 단말에서 화면이 깨지거나 activity_main.xml 소스를 직접 수정해야하는 경우가 다반사입니다. 따라서 Grahpcial Layout은 참고용으로 사용을 하고 실제는 activity_main.xml 소스를 직접 수정하는 습관을 들이는 것이 좋습니다.


버튼 클릭 이벤트 만들기


이제 각 버튼에서 Java 소스 코드를 참조해서 버튼을 눌렀을 때 동작이 되도록 만들어 보겠습니다. 
전화걸기 부분의 소스를 다음과 같이 작성합니다. 여기서 Intent 라는 객체를 사용하는 것을 볼 수 있습니다.
Intent는 안드로이드 스마트폰 앱에게 뭔가를 지시하고자하는 의도하는 자바객체라고 생각하면 됩니다. 즉, 안드로이드에게 전화를 걸게하거나, 인터넷을 접속하게 하기위해서 일종의 명령을 내리는 것입니다.




전화걸기 소스코드 작성이 끝나면 인터넷 접속하기 소스를 다음과 같이 작성합니다.


     
       

완성된 전체 소스코드는 아래와 같습니다. 



제작한 앱개발 어플리케이션 실행하기


소스코드 작성이 끝났으면 Ctrl+F11을 눌러서 간단히 제작한 앱개발 어플리케이션을 실행합니다.
기본적으로 안드로이드 애뮬레이터는 구동시켜놓아야 합니다.

애뮬레이터가 실행되면 전화 걸기버튼과 인터넷 접속하기 버튼이 나타납니다. 그럼 전화를 걸어보겠습니다. 전화걸기 버튼을 클릭합니다.



가상 단말이 실행되어서 전화 걸기를 수행합니다. 이번에는 MENU 버튼 옆의 BACK 버튼을 클릭해서 원래 화면으로 돌아온 뒤 인터넷 접속하기 버튼을 클릭해 보도록 하겠습니다.



아래 화면과 같이 다음사이트가 브라우징 되는 것을 확인할 수 있습니다. 사전에 Intent 객체에서 입력한 인터넷 주소로 인터넷 브라우징되는 것입니다.



안드로이드 버튼 생성 및 변경하기


이제는 안드로이드 버튼을 만들고 수정해보도록 하겠습니다. 실습을 통해서 실제로 만들어보는 것이 안드로이드 시스템의 구동 구조를 익히는 가장 빠른 길입니다.

이어지는 내용이므로 아래 이전 포스팅을 순서대로 학습바랍니다.



이클립스를 열고 왼쪽의 Package Explorer에서 HellowAndroid > res > layout에 activity_main.xml 화일을 클릭합니다.
activity_main.xml을 클릭하면 오른편 화면에 Graphical layout 탭이 보일 것입니다. Graphical layout 탭을 클릭합니다.



마우스로 왼편의 Button을 클릭해서 오른쪽 화면으로 드래그합니다. 오른쪽으로 드래그 하면 화면상에 버튼이 생성됩니다.
이렇게 편리하게 드래그로 화면을 구성할 수 있습니다.

Graphical Layout에서 만든 버튼의 소스를 살펴보도록 하겠습니다. 하단의 activity_mail.xml 탭을 클릭합니다.



activity_mail.xml 탭을 클릭하면 activity_mail.xml 소스가 나타납니다.
아래 화면과 같이 <Button> 태크로 시작하는 소스가 자동으로 생성된 것을 알 수 있습니다.


이번에는 activity_main.xml 화일의 소스코드를 수정해서 버튼을 만들어 보도록 하겠습니다.
새로운 버튼을 만들기 위해서 먼저 TextView 부분을 복사해서 아래에 붙여넣기를 합니다.

Button 부분을 복사해서 사용하지 않고 TextView를 복사한 것은 TextView에서 디스플레이 되고 있는 Hello Android! 라는 value 값을 그대로 사용하려고 하기 때문입니다.



아래 화면에 동그라미를 친 것과 같이 TextView를 Button으로 변경하고, @+id/textView1 부분을 @+id/button2로 변경하고 저장합니다.
안드로이드 앱시스템은 ID를 사용을 위해서 '@+id'란 표기방식을 사용합니다. 이런 표기방식으로 안드로이드 시스템에서 유일한 ID 값을 표현합니다. 



activity_main.xml 탭을 저장을 한 뒤에 Graphical Layout 탭을 클릭하면 다음과 같이 HELLO ANDROID! 라는 버튼이 생성되었음을 확인 할 수 있습니다. 



Java 소스에서 직접 ID로 객체를 호출하는 방법


현재까지는 아래 화면과 같이 텍스트뷰 한 개와 버튼 두 개가 만들어져 있습니다. 이번에는 아래 동그라미한 버튼을 클릭하면 OK 버튼 클릭 이라는 문구를 화면에 출력시키는 것을 학습하겠습니다. 여기에서 자바 소스코드에서 ID로 객체를 호출하는 방법도 함께 알아보겠습니다.



자바(Java) 소스에서 ID 값을 찾을때 사용하는 함수는 findViewById() 함수입니다.
findViewById() 함수의 사용 방법은 아래와 같습니다.


MainActivity.java 소스에 아래 화면과 같이 버튼 객체 소스를 추가합니다.



버튼 객체를 추가하면 버튼 밑에 빨간 줄이 나타난 것을 볼 수 있습니다. 이 빨간줄을 없애기 위해서 Ctrl+Shift+O(알파벳)를 눌러주면 이클립스는 자동으로 Button 클래스를 import합니다.

Java에서는 해당 클래스를 사용하려면 import를 해주어야합니다. 그렇지 않으면 컴파일 오류가 발생합니다.
이클립스는 import를 하지 않은 클래스를 자동으로 import 해주는 기능이 바로 단축키로 Ctrl+Shift+0(알파벳)입니다. 

클래스를 자동으로 import할 때, 특정 함수 이름이 동일할 때는 사용자에게 알맞은 클래스를 선택하라는 다이얼로그 팝업이 뜨게됩니다. 우리는 View 클래스안의 OnClickListener를 사용하기 때문에 첫번째 것을 import로 선택하면 됩니다.




그럼 이제 MainActivity.java 를 다음과 같이 변경해보도록 하겠습니다.

onCreate() 함수안에 Button 클릭에 관한 소스를 추가합니다.



안드로이드 어플리케이션을 실행한 뒤에 Button을 클릭하면 OK 버튼 클릭이라는 문구가 표시되는 것을 확인할 수 있습니다.


안드로이드 프로그래밍을 이해하는 좋은 방법


안드로이드 프로그램을 이해하는 좋은 방법은 해당 소스코드를 실행시켜서 구현되는 화면을 확인하는 것입니다.
안드로이드 프로그래밍을 처음 접하는 입문자의 경우에는 실제 스마트폰에서 구동되는 화면과 소스코드 어떻게 엮여있는지 시스템의 구성을 이해하는 것이 중요합니다. 

이번 시간에는 이전에 만든 HelloAndroid 소스코드를 수정해서 프로그램 소스와 소스가 변할 때 어떻게 가상 스마트폰에 어떻게 변화되어 적용되는지를 함께 살펴보도록 하겠습니다.

이어지는 내용으로 선행 학습과정이 필요합니다. 이전 내용은 아래 포스팅을 참고바랍니다.


안드로이드 에뮬레이터 구동확인


먼저 프로그램을 실행해보기 위해서는 아래 화면과 같이 에뮬레이터가 구동되어 있어야 합니다. 에뮬레이터의 구동이 완료되어있다면 AVD Manager 창은 닫아도 됩니다.



이클립스의 왼쪽 Package Explorer에서 HelloAndroid 를 선택하고 Run As > Android Application을 클릭합니다. 애플리케이션을 실행하는 기능은 자주 사용하게 되므로 단축키인 Ctrl + F11 을 기억해두는 것이 좋습니다.



처음 애플리케이션이 구동되면서 Logcat을 사용할 것인지를 물어보는 화면이 나옵니다.
로그를 보기 위해서 Yes에 체크를 하고 OK 버튼을 클립니다.



애뮬레이터에서 우리가 만든 HelloAndroid 앱 프로그램이 구동된 것이 보입니다. 화면에 Hello world! 문구가 나타납니다.
해당 문구가 나타나는 곳을 찾고 수정해보도록 하겠습니다. 프로그램 소스를 조금씩 변경하면서 실행화면이 어떻게 변경되는지 확인할 것입니다.



안드로이드 소스코드 수정하기


왼쪽 화면의 Package Explorer에서서 우리가 만들어보았던 MainActivity.java 소스를 찾아서 클릭해보도록 하겠습니다.
MainActivity.java는 안드로이드 앱이 구동될때 가장먼저 실행되는 Java 소스입니다.

소스를 유심히 보면 onCreate() 함수가 있습니다.
R.layout.activity_main 이라는 소스코드에 마우스커서를 가져다 놓고 Ctrl 키를 누릅니다.
그리고 Open Declaration in layout을 클릭합니다. 마우스 클릭을 하면 이클립스 기존 화면에서 activity_main.xml 소스 화면으로 이동하게 됩니다.



여기에서도 조금전과 동일하게 마우스를 @string/hello_world 소스코드위에 올려놓고 Ctrl키를 누른 상태에서 클릭을 하면 strings.xml 소스로 이동하게 됩니다. 이클립스는 이렇게 Ctrl 키를 사용해서 해당 소스로 편리하게 이동 할 수 있습니다.



strings.xml 화일안에 Hello world!라는 문구를 디스플레이 하는 부분이 있음을 알 수 있습니다.
안드로이드나 자바개발환경뿐 아니라 요즈음의 대부분 개발도구는 xml 화일을 많이 사용합니다.

xml을 사용하면 많은 이점이 있습니다. 소스코드내에 변동이 많은 부분을 xml 화일로 관리하게 되면 프로그램이나 시스템의 유지보수 시간과 비용을 절약 할 수 있기 때문입니다.
 
xml을 사용하지 않는다면 하드코딩이나 파일IO, 혹은 데이터베이스를 사용해야하므로 불필요한 자원을 사용하게 됩니다.



예를 들어서 조금전에 보았던 Hello World!라는 글씨를 Java 소스코드 상에 작성하여놓았다면 어느날 Hello Wolrd!를 Hello Android!로 바꾸려면 소스코드를 수정하고 다시 컴파일 하는 과정을 거쳐야합니다. 또한 소스코드 중간 중간에 설정값들이 들어있다면 소스를 분석하는데도 결코 쉽지 않을 것입니다.

그래서 가능한 설정이 가능한 부분은 가능한 xml화일로 따로 분리해서 관리하는 것이 안드로이드 시스템뿐아니라 Java 시스템에서도 좋은 프로그램 방법입니다.

그럼 xml 화일을 다음과 같이 바꾸어 보겠습니다.






안드로이드 애플리케이션 실행하기


이클립스에서 Ctrl + F11을 클릭해서 안드로이드 프로젝트를 실행합니다.
변경된 소스가 적용되어서 가상 스마트폰에 Hello Android!로 문구로 바뀐 것을 볼 수 있습니다.




xml 화일의 위치


참고로 조금전에 살펴보았던 xml 화일은 res 폴더안에 다음과 같이 위치하고 있습니다.

여기서 소스의 참조를 살펴 볼 수 있습니다. strings.xml 참조 -> activity_main.xml 참조 -> MainActivity.java
호출은 참조의 역으로 진행됩니다.


첫번째 안드로이드 프로젝트 만들기


첫번째 프로젝트를 만들어보겠습니다. 자바 프로그래밍을 공부하다보면 언제나 만나는 단어는 Hello 입니다. 안드로이드 프로그래밍도 자바 프로그램입니다. 첫번째 안드로이드 프로젝트의 이름은 HelloAndroid 으로 만들겠습니다.
이클립스의 File > New > Other 메뉴를 클릭하거나 단축키인 Ctrl+N 를 누릅니다.




다음과 같은 팝업이 나옵니다. 여기서 Android > Android Application Project를 클릭합니다.




Next 버튼을 클릭해서 다음 단계로 진행합니다.




Application Name에 HelloAndroid 라고 입력을 하면 Project Name과 Package Name이 자동 생성되는 것을 알 수 있습니다.

화면에 디스플레이 되는 항목은 중에서 위에 세 가지는 다음과 같습니다.
Application Name : 앱 사용자에게 보여지는 앱 사용자를 위한 이름입니다.
Project Name : 패키지 구분을 위한 개발자를 위한 이름입니다.
Package name : 안드로이드 시스템이 이해하기 위한 안드로이드 시스템을 위한 이름입니다.




그런데 Package Name 항목에 경고 아이콘이 보입니다. com.example 은 접두어로 적합하지 않다는 것입니다.
com.example을 com.ex로 변경하도록 하겠습니다.
com.ex로 변경 후 경고표시가 없어진 것을 알 수 있습니다. 

Minimum Required SDK 항목은 SDK 호환성 부분입니다.
Minimum Required SDK은 자신이 만든 앱이 구동되는 최소한의 안드로이드 버전으로 사용자가 최소한 이정도 되는 사양의 스마트폰 단말기를 사용해야 제작한 앱을 구할 수 있는 것입니다. Next 버튼을 클릭해서 다음 화면으로 이동합니다.






안드로이드 버전별 사용 현황


잠시 안드로이드 버전별 사용 현황을 확인해보고 다음 단계를 계속 진행하겠습니다.
SDK 호환성부분을 보다보면 현재 전세계에서 안드로이드 스마트폰에 어떤 OS를 가장 많이 사용하는지 궁금하게 됩니다.
안드로이드 개발자 사이트는 안드로이드 버전별 사용현황 통계치를 실시간으로 보여줍니다. 아래 사이트에 들어가면 확인할 수 있습니다.


아래 화면과 같이 현재는 안드로이드4.4 KitKat 버전이 점유율 35.5%로 가장 많이 사용하는 버전입니다.




 

프로젝트 환경 설정


이 화면은 프로젝트의 환경 설정을 하는 부분입니다.
아래 화면과 같이 Create custom launcher icon은 해제하고 Next 버튼을 클릭합니다.



앱의 첫화면 설정하기


앱의 첫화면을 설정하는 화면입니다. 각각을 클릭해보면 앱 화면이 변경되는 것을 알 수 있습니다.
여기서는 간단한 Black Activity를 선택하고 Next 버튼을 클릭합니다.



만들고자 하는 앱 첫 화면의 소스화일 이름을 설정하는 화면입니다.
디폴트로 MainActivity가 기입되어있습니다. 입력되어 있는 값을 그대로 두고 Finish 버튼을 클릭합니다.



공란이었던 이클립스 편집기 화면에 자동으로 소스가 생성된 것을 볼 수 있습니다.





소스의 가독성을 높이기 위해서 간단을 작업을 하도록 하겠습니다.
가독성 높은 폰트를 사용하는 것은 아래 포스팅을 참고 바랍니다.


가독성이 높은 Dejavu San Mono 폰트를 적용하면 다음과 같은 가독성 높은 화면으로 변경됩니다.



에뮬레이터 구동하기


이번에는 에뮬레이터를 구동해보도록 하겠습니다. 에뮬레이터는 실제 물리적인 스마트폰을 가지고 있지 않아도 컴퓨터에서 가상의 스마트폰을 만드는 것입니다.
그럼 이클립스 화면 메뉴에서 

 아이콘을 클릭합니다.

에뮬레이터가 구동되기 위해서는 AVD라고 하는 Android Virtual Device를 설정해주어야 합니다. Create 버튼을 클릭합니다.



힙메모리와 AVD 설정하기


AVD 설정 화면을 다음과 같이 입력하고 세팅합니다. 세팅이 완료되면 OK버튼을 클릭합니다.
VM Heap 은 64MB 입력합니다. VM 힙의 크기가 작으면 앱이 동작하지 않고, 너무 크면 메모리 부족이 발생할 수 있습니다.
테스트 해본결과 64MB 가 적정 힙사이즈인 것 같습니다. 입력후 OK 버튼을 클릭합니다.



AVD Name이 Android4x로 생성된 AVD가 보입니다. Start 버튼을 클릭해서 가상 디바이스를 구동합니다.



Start 버튼을 클릭하면 시작 옵션팝업이 뜹니다. Launch 버튼을 클릭해서 구동을 진행합니다.



에뮬레이터가 시작되고 있습니다.


구동되는데 시간이 소요됩니다.



구동이 완료된 가상 스마트폰 화면입니다.

현재 인텔i5 프로세서를 사용하고 있는 제 경우 1분10초 정도가 소요되었습니다.
VGA800 모드일때 1분10초였지만, 해상도가 높은 WXVGA800으로 구동시에는 훨씬더 많은 시간이 소요됩니다.




가상 스마트폰에서 한글 설정하기


가상 스마트폰인 에뮬레이터에서 설정부분을 클릭합니다.



아래 화면과 같이 Custom Locale 아이콘을 클릭합니다.



Custom Locale 아이콘을 클릭하면 아래와 같이 언어를 설정하는 화면이 나타납니다. 현재 영어로 되어있기 때문에 모든 언어가 영문으로 나타납니다. 



아래쪽으로 내리다보면 한국어인 ko 로케일이 있습니다. ko-Korean을 선택하고 선택버튼을 클릭합니다.



한국어를 선택하자 언어 설정부분이 모두 한글로 변경되는 것을 확인할 수 있습니다. 오른쪽 키패드에서 홈키를 클릭해서 스마트폰 홈화면으로 이동합니다.



홈화면으로 이동하면 영문으로 되어있던 카메라가 한글로 변경된 것을 확인할 수 있습니다.


이클립스를 편리하게


이클립스는 자바나 안드로이드 프로그래밍을 할 때 개발자들이 가장 많이 사용하는 개발도구입니다. 이클립스 같은 개발도구를 IDE 개발도구라고 명명합니다. 이클립스에는 개발을 위한 많은 기능들이 내장되어 있습니다. 이클립스만 제대로 공부하는데에도 책한권 분량의 메뉴얼이 있습니다. 오늘은 이클립스를 사용하면서 편리한 두 가지 팁을 공부하고자 합니다. 

첫번째는 소스코드의 자동 정렬기능이고 두번째는 소스코드를 입력하는 편집기내에 프린트 안내선을 설정하는 것입니다.



가독성과 이클립스의 소스코드 자동정렬 기능


프로그래밍을 할 때 소스코드의 정렬은 가독성에 무척 중요한 요소입니다. 작성한 소스코드가 제대로 정렬되어 있지 않다면 다른 사람뿐아니라 프로그래밍을 한 자신도 차후에 해당 코드를 수정할 때 코드를 알아보는데 시간이 소요됩니다.

실제 개발 현장에서는 긴급 사항으로 빠른 시간내에 소스코드를 대량으로 수정하는 일이 비일비재하게 발생합니다. 예를 들어서 운영중인 시스템의 시스템 정기 반영시점에 테스트를 한다고 했더라고 실제 운영 반영시점에서 오류를 발생할 수 있기 때문입니다.



요즈음과 같이 많은 거래가 웹사이트에서 이루어지는 상황에서 시스템이 오류로 먹통이 되는 상황이 발생한다면 그것은 엄청난 규모의 비용 손실을 가지고오게 됩니다. 따라서 그런 전산 시스템 상의 긴급 상황이 발생했을 때는 직전 소스로 복원하는 일을 진행하거나 소스 코드를 긴급 수정해야 합니다.

소스코드의 정리와 정돈은 단순히 코드의 가독성뿐만 아니라 긴급 투입된 개발자가 빠른 시간에 문제를 해결하는데 큰 도움을 주는 것이 사실입니다.



이클립스가 사용하지 않던 과거에는 개발자가 스스로 소스코드를 수작업으로 정렬하는 일이 많았습니다.
그렇지만 이클립스는 소스코드를 자동 정렬하는 기능을 지원합니다.

사용 방법은 간단합니다. 이클립스에서 단축키로 Ctrl + Shift + F 를 클릭하면 소스코드가 자동 정렬됩니다.

자동 정렬되는 규칙을 변경하기 위해서는 이클립스 메뉴에서 Window > Preference 화면에 들어갑니다.
왼쪽 트리 메뉴에서 Java > Code Style > Formatter에서 자동 정렬 규칙을 설정할 수 있습니다. 오른쪽에 Edit 버튼을 클릭합니다.



Edit 버튼을 클릭하면 다음과 같은 설정 화면이 뜹니다. 만약 TAB키를 누를때마다 스페이스바를 네번 누른것과 같은효과를 얻으려면 Tab size에 4를 입력하면 됩니다.





소스코드의 가독성을 높이는 프린트 안내선 표시


사용하는 노트북이나 컴퓨터마다 해상도가 틀리기 때문에 코드를 가로 방향으로 어느 부분까지 작성할지 설정할 수 있습니다.
이클립스는 가장 적정한 코드선을 프린트 안내선으로 제공한다.

이클립스 메뉴에서 Window > Preference에 들어가서 Text Editor를 클릭합니다.
오른쪽 항목에서 Show print margin 을 체크합니다. 디폴트가 80입니다. OK 버튼을 클릭합니다.



이클립스의 소스코드창에 세로로 프린트 안내선이 생성되었음을 볼 수 있습니다.  프린트 안내선은 프린트 용도 뿐아니라 소스코드의 가독성을 높이는데 활용할 수 도 있습니다.


전화걸기와 인터넷 접속기능 실습 선수과정


이번 시간에는 안드로이드 프로그래밍으로 전화걸기 기능과 인터넷 접속기능을 실습할 것입니다.
이전 강좌와 이어지는 내용으로 학습을 원할하게 하기 위해서는 아래 이전 포스팅을 참고하여 학습바랍니다.



전화걸기와 인터넷 접속 기능 버튼 소스 추가하기


그러면 이제 두개의 버튼을 생성해서 전화걸기와 인터넷 구글 접속하기 기능을 구현해 보도록 하겠습니다.
먼저 아래 activity_main.xml 소스 안에 1번 내용을 복사해서 두 개의 버튼을 만드는 소스 코드를 아래와 같이 작성합니다.

[ activity_main.xml 소스코드 ]



xml 화일이 수정이 아래와 같이 모두 끝나면 Graphical Layout 탭을 클릭해서 xml 소스에서 작성된 실제 화면의 layout을 확인합니다. activity_main.xml 소스 상에서 추가적으로 두 개의 버튼을 만들어서 현재 레이아웃상에서는 버튼이 겹쳐보입니다.




버튼 위치를 조정하기 위해서 아래 화면과 같이 해당 버튼을 마우스로 드래그 해서 원하는 위치로 이동합니다.



전화걸기와 인터넷 접속기능 버튼에 이벤트 연결하기


이제 전화과 구글 접속 버튼에 이벤트를 연결시킬 차례입니다. 이벤트를 연결할 때는 MainActivity.java을 수정해야합니다.
아래 순서대로 소스코드를 작성합니다.
첫째, Button 클래스를 생성하고 activity_main.xml에서 정의 했던 두번째 전화 버튼의 식별자인 startBtn02를 findViewById() 메소드의 인자로 입력합니다. 




버튼을 클릭할때 발생하는 이벤트를 Listening하는 setOnClickListener() 메소드를 사용하고 Intent 클래스를 활용해서 버튼 클릭시의 실행할 이벤트를 정의합니다.

둘째, 안드로이드에서 사용하는 Intent 클래스의 의미는 '나는 이런 의도로 무언가를 실행 하려고 합니다' 라고 생각하면 됩니다.
Intent 클래스를 생성하고 Uri.parse 부문에 tel:을 입력하면 전화를 걸 수 있습니다.

Intent 클래스 생성이 완료되면 startActivity() 메소드를 사용해서 해당 클래스를 Active 합니다.

세째, 버튼을 클릭할 때 구글을 접속하게 하는 부분도 동일한 방법으로 작성합니다.
소스가 아래와 같이 완성되었으면 에뮬레이터를 기동시킨뒤 어플리케이션을 실행합니다.(Ctrl + F11)



어플리케이션을 실행하면 아래 그림과 같이 전화 버튼과 구글 접속 버튼이 생성되었음을 확인할 수 있습니다.



전화 버튼 및 구글 접속 버튼을 실행하여 해당 동작이 시행될때 휴대폰에 있는 홈키가 없으면 불편할 수 있습니다.
따라서, 에뮬레이터 설정화면에 들어가서 화면 조작에 필요한 가상키 화면을 추가해서 에뮬레이터를 가동해보록 하겠습니다.
이클립스 메뉴 화면에서 Android Virtual Device Manager(안드로이드 로고 모양 아이콘)를 클릭합니다.



사용하려는 AVD Name을 선택하고 Edit 버튼을 클릭합니다.
Edit Andorid Virtual Device(AVD) 대화상자의 Skin 항목부분의 Display a skin with hardware controls 부문의 체크박스를 체크한 뒤 OK 버튼을 클릭합니다.  Android Virtual Device Manager 대화상자에서 AVD를 선택한 후 Start 버튼을 클릭하여 에뮬레이터를 재기동 합니다.



안드로이드폰 화면 오른쪽에 기본적인 가상 홈/메뉴 버튼이 생성되어 가동되어짐이 보입니다.



전화걸기 실습하기


전화 버튼을 클릭해보겠습니다.



전화 버튼을 클릭하자 아래 화면과 같이 사전에 입력된 전화번호로 전화를 걸 수 있도록 전화번호가 입력되는 것을 확인할 수 있습니다. 전화기 모양의 통화 아이콘을 클릭합니다.



통화 아이콘을 클릭하자 실제 스마트폰 처럼 통화를 시도하는 화면으로 변경됨을 볼수 있습니다.
물론 개통이 않되었으므로 실제 전화가 연결되지는 않습니다. 
이번에는 구글에 접속해 보도록 합시다. 우측 가상 스킨의 되돌아가기 이미지 버튼을 클릭해서 이전화면으로 이동합니다.




인터넷 접속기능 실습하기


구글 접속 버튼을 클릭합니다.



구글 접속 버튼을 클릭하자 구글 모바일 웹화면으로 화면이 나타나는 것을 확인할 수 있습니다.



안드로이드 프로그래밍 - 버튼 이벤트 실습 선수과정


이번 시간에는 스마트폰 화면에 버튼을 만들고 버튼을 클릭할 때 이벤트를 발생하는 것을 실습하겠습니다.
이전 강좌와 이어지는 내용이므로 실습을 제대로 진행하기 위해서 이전 포스팅 내용을 확인하고 진행바랍니다.


스마트폰에 출력하는 텍스트 문구 변경해보기


지난시간에 아래 화면과 같이 가상의 안드로이드 스마트폰에 Hello World 라는 문구를 출력하는 것을 학습하였습니다.
버튼을 생성하기에 앞서서 이전에 실습했던 어플리케이션(Application)에서 입력하지도 않은 Hello world!라는 문구가 어디에서 설정되어 있는지 소스를 찾아서 확인해보겠습니다.



이클립스에서 MainActivity.java 소스를 열어보겠습니다. 
아래 소스를 살펴보면 Java의 표준 문법에서 보이는 Java의 시작을 알리는 main() 함수가 존재하지 않습니다.
그렇다면 어디서 Hello world!라는 문구를 표시하게 하는 것일까요?

아래 setContentView(R.layout.activity_main); 함수 부분을 보겠습니다. setContentView() 함수에 인자로 쓰인 R.layout.activity_main 부분에 열쇠가 있습니다.



왼쪽 네비게인션 화면의 HelloJava 프로젝트의 res폴더를 펼쳐 보도록합니다. res > layout 폴더를 열면 activity_main.xml 이라는 화일이 있습니다. activity_main.xml 화일을 클릭해 보도록 하겠습니다.  클릭하면 오른쪽 화면에 디자인 설계를 하는 Graphical Layout 화면이 나타납니다. Graphical Layout 탭옆의 activity_mail.xml 탭을 클릭합니다.


activity_main.xml 탭을 클릭하면 아래 화면과 같이 activity_main.xml에 대한 소스 화면이 보입니다. xml소스안에도 Hello world라는 문구는 보이지 않습니다.

그렇다면 실제 텍스트 문구를 나태내는 String 문자에 대한 정의를 해두는 곳이 있을 것입니다.
<TextView /> 태그안을 살펴보면 @string/hello_world 부분이 있습니다. 이곳이 String 문자를 별도 정의한 부분입니다.



res/values 폴더를 클릭합니다. 이곳에 strings.xml과 styles.xml 화일이 존재합니다.



strings.xml 화일을 클릭하면 오른쪽에 다음과 같은 화면이 나타납니다.



오른쪽 화면에서 hello_world (String) 항목을 클릭하면 Value값에 Hellow world! 라는 문구를 찾을 수 있습니다
하단의 Resources 탭옆에 strings.xml 탭을 클릭합니다.



조금전 Resource 탭에서는 UI 형태로 값을 입력할 수 있지만 strings.xml 탭을 클릭하면 xml 소스코드를 그대로 볼 수 있습니다.
소스안의 hello_world라는 string 태그안에 Hello world!라는 String 문자를 발견할 수 있습니다.

문자가 출력되는 소스의 연결고리를 정리해보면 /res/values/strings.xml 소스의 hello_world는 /res/layout/activity_main.xml 안의 @string/hello_world와 연결되어 참조되고 activity_main.xml 는 /src/MainActivity.java 안의 setContentView(); 함수에 R.layout.activity_main 라는 파라미터로 전달되어짐을 알수 있습니다.




그러면 string 문자를 다음과 화면과 같이 안녕 Java라고 변경하고 어플리케이션을 재실행시킵니다. 재실행 단축키는 Ctrl + F11 입니다.



안드로이드 어플리케이션을 재실행 시키면 에뮬레이터인 가상의 스마트폰에서 실행결과가 나타납니다. 아래 화면과 같이 출력 문구가 변경되는 것을 확인할 수 있습니다.




스마트폰에 버튼만들기


버튼을 만들기 위해서 이번에는 activity_main.xml 화일안의 <TextView> 태크를 <Button>이라는 이름의 태그로 변경합니다.
변경된 소스를 저장한 뒤 어플리케이션을 재실행(Ctrl + F11) 합니다


어플리케이션이 재실행되고 나니 텍스트였던 부분이 버튼으로 변경된 것을 확인할 수 있습니다.



버튼 클릭 이벤트 발생시키기


이번에는 버튼을 클릭했을때 버튼 클릭 이벤트를 발생시키도록 하겠습니다.
버튼 클릭 이벤트를 발생시키기 위해서는 두 가지 작업을 진행하면 됩니다.

첫번째는 xml 화일인 activity_main.xml에 정의된 버튼의 ID를 추가합니다.
이벤트 발생을 시키려면 <Button> 태그안의 속성에 ID 속성을 추가해야합니다.
ID속성은 @+id 을 표기하여 지정합니다. 
 
형식 : @+id/정의하려는 이름
사용예) @+id/startBtn



두번째는 Java 화일인 MainActivity.java에 정의된 버튼의 이벤트 처리 코드를 추가합니다.

onCreate() 메소드 안에 Button 클래스를 생성하고findViewById() 함수로 xml에 정의되 startBtn ID 값을 매핑시킵니다.


Button 클래스의 setOnClickListener() 메소드를 활용해서 클릭이벤트를 Listening 합니다.



클릭시에 필요한 onClick() 메소드를 활용합니다.


메시지를 보여주기 위해서 Toast 클래스를 사용합니다.

            
완성된 소스 코드는 다음과 같습니다.



어플이케이션을 실행해서 버튼을 클릭하면 버튼 클릭이벤트가 아래 화면과 같이 제대로 동작하는 것을 확인할 수 있습니다.



유용한 이클립스 단축키 Tip)
Ctrl + Shift + O : 이클립스가 필요한 자바 Class를 자동으로 import 해줍니다.


앱개발의 시작, 간단한 안드로이드 앱프로그램 만들기


이번 시간에는 간단한 안드로이드 앱을 만들고 구동하는 것을 실습해보겠습니다.
간단한 스마트폰앱이라고 하는 것은 안드로이드 스마트폰에 특정 문구를 보여주는 것입니다.

원활한 학습을 위해서 안드로이드 개발환경 구성 및 선행 학습은 아래 포스팅을 참고해서 진행바랍니다.



새로운 안드로이드 프로젝트를 만들기 위해서 이클립스를 실행한 뒤에 File > New > Other 메뉴를 클릭합니다.



Select a wizard


New 대화 상자에서 아래 화면과 같이 Android Application Project 항목을 선택한 후 Next 버튼을 클릭합니다.



New Android Application


New Android Appliaction 대화상자에서 Application Name 항목에 HelloJava 라고 입력한뒤 Next 버튼을 클릭합니다. 
Application Name에 HelloJava 라고 입력하면 Project Name 항목과 Package Name 항목의 이름은 자동으로 생성됩니다.



아래 화면과 같이 선택사항을 디퐅트로 두고 Next 버튼을 클릭합니다.



Configure Launcher Icon


Configure Launcher Icon 화면은 앱의 아이콘을 설정하는 화면입니다.
Image 버튼을 클릭하여 원하는 이미지를 가져올 수 있습니다. Clipart 버튼은 클립아트를 가져올 수 있으며 Text 버튼은 텍스트를 입력하여 앱 아이콘으로 사용할 수 있습니다. 기본으로 설정상태를 그대로 두고 Next 버튼을 클릭합니다.



Create Activity


Create Activity 는 앱의 첫 화면을 지정하는 화면으로 각 항목마다 다른 화면 구성을 보여 줍니다.
여기서는 BlacnkActivity를 선택한 뒤 Next 버튼을 클릭합니다.



만약 FullscreenActivity를 선택한다면 화면 구성은 아래와 같을 것입니다.



New Blank Activity


첫 화면을 구체적으로 구성하기 위한 화면으로 디폴트 상태에서 Finish 버튼을 클릭합니다.



Finish 버튼을 클릭하면 이클립스 화면에 해당 프로젝트가 Loading 되면서 왼쪽 화면에 Package Exploer 항목에 HelloJava 프로젝트가 생성되었음이 보여집니다.



왼쪽 화면의 src 폴더를 클릭하여 트리를 펼쳐서 ManActivity.java를 클릭합니다. 왼쪽 네이게이션 화면에서 클릭을 하면 오른쪽 소스 정보 화면에 해당 소스가 펼쳐집니다. 오른쪽 소스는 조금 전 대화상자 Wizard를 통해서 생성한 MainAcitity.java의 소스입니다. 안드로이드 소스는 자바로 구현되어 있습니다. 자바 프로그램 소스를 이해하기 위해서 자바 기본 문법에 대해서 기초가 없다면 자바에 대한 별도의 공부가 필요합니다.



안드로이드 에뮬레이터 실행하기


안드로이드 에뮬레이터를 실행하기 위해서 툴바의 여섯번째 Android Virtual Device Manager 안드로이드 이미지 버튼을 클릭합니다.



AVD Name에서 Android41 항목을 클릭하고 Start 버튼을 클릭합니다.



Launch Options 대화 상자에는 Scale 항목이 0.51이 되도록 Sceen Size 는 4.0, Monitor dpi는 120수치를 입력한 뒤 Launch 버튼을 클릭합니다



안드로이드 에뮬레이터가 구동되고 있습니다.

 



에뮬레이터가 구동되었습니다.



안드로이드 어플리케이션 실행하기


이제 프로젝트의 Application을 실행해 보도록 합니다.
왼쪽 화면 HelloJava 프로젝트에 오른쪽 마우스 버튼을 클릭하여 Run As > 1 Android Application 항목을 클릭합니다

어플리케이션을 실행하는 방법이 번거로우므로 단축키를 활용하는 방법이 좋습니다. 단축키는 Ctrl + F11 입니다.



Android Device를 선택하는 화면으로 하단의 OK 버튼을 클릭합니다



다음은 로그정보를 보기위해서 Logcat을 사용하겠느나는 대화상자가 나타납니다. 이클립스상에서 로그는 모니터링 해야되기때문에 Yes 항목의 라디오 버튼을 선택한 뒤 OK 버튼을 클릭합니다.




Android41s 라는 작은 사이즈의 에뮬레이터를 만든후 에뮬레이터를 구동합니다. 에뮬레이터 구동뒤 HelloJava 프로젝트를 실행시키면(Ctrl + F11 사용) 안드로이드 어플리케이션이 실행되고 Hello World 라는 텍스트 문구가 나타납니다.

   


프로그램 소스코드와 가독성


시스템 개발업무를 하다보면 많은 시간을 컴퓨터 모니터 앞에서 프로그램 소스코드와 씨름해야 합니다.
프로그램 소스코드와 장시간 씨름을 해야하다보니 가능하면 가독성이 뛰어난 폰트를 사용하는 것이 일을 하는데 능률적인 것이 사실입니다.



자바 프로그래밍을 할 때에는 개발도구로 이클립스를 많이 사용합니다. 개발 환경을 구성하면서 이클립스를 설치하면 디폴트 폰트는 아래 화면에 보이는 Consolas 폰트입니다.

Consolas 폰트도 괜찮겠지만 이 폰트보다 조금 더 가독성이 뛰어난 폰트가 있다면 효율적인 개발을 위해서 적용해 보는 것이 좋을 것입니다.

[ 이클립스 개발환경에서 Consolas 폰트 예 ]




윈도우에 데자뷰(DejaVu) 폰트 설치하기


데자뷰(DejaVu) 폰트는 전세계 개발자들이 애용하는 무료 폰트입니다. 이클립스 자바 개발환경에서 가독성 높은 폰트를 설치하기 위해서 데자뷰 폰트 다운로드 사이트에 접속합니다.



데자뷰 폰트 사이트에 접속하면 아래 화면과 같이 데자뷰 폰트를 다운로드 할 수 있는 화면이 나타납니다. 오른쪽에 Download 버튼을 클릭해서 폰트 소스를 다운로드 합니다.






로컬컴퓨터에 다운로드된 DejaVu 폰트의 압축을 풀면 다음과 같은 많은 폰트들이 들어있는 것을 확인할 수 있습니다. 다운로드한 압축파일을 해제합니다.




데자뷰 폰트 폴더에서 dejavu-fonts-ttf-2.34\ttf 폴더 안의 ttf 폰트를  C:\Windows\Fonts 로 복사합니다.



아래 화면과 같이 데자뷰 폰트를 모두 선택해서 왼쪽에서 오른쪽 화면으로 드래그해도 됩니다.



복사가 완료되면 글꼴 화면에 정상적으로 폰트들이 복사된 것을 확인할 수 있습니다.



여기서 주의할 점이 있습니다. 해당 폰트를 아래 화면과 같이 표시 버튼을 눌러서 숨기기 해제를 해야합니다.




이클립스에서 가독성 좋은 폰트로 변경하기


이클립스 메뉴에서 Window > Preference를 클릭합니다.



Preferences 화면의 왼쪽 트리 메뉴에서 General > Appearance > Colors and Fonts를 선택합니다.



Colors and Fonts 항목에서 마우스로 화면 스크롤을 아래로 내립니다.



Basic 폴더에서 맨 아래에 Text Font 항목이 나타납니다. Text Font를 더블 클릭합니다.




Text Font를 클릭하면 폰트를 설정하는 팝업이 나타납니다. 현재는 글꼴이 Consloas로 되어있습니다.



글꼴 항목에서 Consolas 폰트 대신에 가독성이 좋은 DejaVu Sans Mono 폰트를 선택합니다.
여기서 폰트 크기를 설정할 때 주의해야할 점이 있습니다. 폰트 크기를 10으로 설정하면 한글이 깨지는 경우가 발생하므로 폰트 크기를 9나 11로 설정합니다. 선택을 완료한 뒤에 확인 버튼을 클릭합니다.



가독성이 좋은 DejaVu Sans Mono 폰트로 변경되어 다음과 같이 이클립스 소스화면에 적용되었습니다.
물론 가독성이 높은 글꼴을 선택하는데 있어서는 개인차가 있겠지만 아래 화면과 같이 DejaVu Sans Mono 폰트가 Consolas 폰트보다 가독성이 좋은 것을 눈으로 확인할 수 있습니다.


안드로이드 에뮬레이터


이클립스를 통해서 안드로이드앱을 개발할 때 필수적으로 필요한 것은 에뮬레이터입니다. 안드로이드 에뮬러이터는 실제 안드로이드 스마트폰이 아니라 컴퓨터안에서 구동되는 가상의 스마트폰이라 생각하면 됩니다.

에뮬레이터에 대해서 위키피디아는 다음과 같이 정의합니다.


에뮬레이터(Emulator)는 한 시스템에서 다른 시스템을 복제한다. 그리하여 두 번째 시스템이 첫 번째 시스템을 따라 행동하는 것이다. 외부의 행동에 대해 똑같이 따라하려고 하는 이 관점은 시뮬레이션과는 정 반대이다. 왜냐하면, 시뮬레이션은 자주 내부 상태와 관련하여, 흉내내는 시스템의 추상적인 모델과 관계가 있기 때문이다.


이클립스에서 안드로이드 에뮬레이터 사용하기


안드로이드 에뮬레이터는 이클립스에서 사용할 수 있습니다. 안드로이드 SDK를 설치하였다면 이클립스 메뉴에 아래와 화면과 같이 Anroid Virtual Device Manager 라는 아이콘이 보입니다. 해당 안드로이드 아이콘을 클릭합니다.

아직 안드로이드 SDK를 설치하지 않았다면 아래의 포스팅을 참고하여 설치후 다음 단계를 진행하면 됩니다.





안드로이드 아이콘을 클릭하면 Android Virtual Device Manager 팝업화면이 열립니다. 오른쪽에 New 버튼을 클릭합니다.



New 버튼을 클릭하면 아래와 같이 AVD(Android Virtual Device)를 생성하는 팝업이 나타납니다.

Name 항목에 'Android41' 이라고 입력합니다. Device 항목에는 4인치인 'Nexus S'를 선택합니다. Target 항목은 'Android 4.1.2 - API Level 16'을 입력합니다.

가상의 SD Card를 만들기 위해서 SD Card 항목에는 Size에 100을 입력합니다. 그러면 100M 용량의 SD카드가 생성됩니다
입력을 완료한뒤 OK 버튼을 클릭합니다.


Android Virtual Device Manager 대화상자에 AVD Name에 'Android41'이 생성된 것이 보입니다.
Android41을 선택한 후 오른쪽 Start버튼을 클릭합니다.



Launch Options 대화상자에서 Launch 버튼을 클릭하여 에뮬레이터를 실행합니다.



Launch 버튼을 클릭하면 아래 화면과 같은 에뮬레이터 실행화면이 구동됩니다.



에뮬레이터가 구동되는 시간은 PC 사양에 따라서 다소 시간이 걸릴 수 있습니다. 구동이 완료되면 하단 중앙에 OK 버튼이 나타납니다. OK버튼을 클릭합니다.



OK 버튼을 클릭하면 실제 스마트폰 홈화면과 동일한 화면이 나타납니다.



에뮬레이터를 종료하고 다시 실행하면 자물쇠 모양의 잠금 버튼 이미지가 생성되고 해당 자물쇠 이미지를 오른쪽으로 밀면 잠금 장치가 해제 됩니다.


안드로이드(Android) 개발 환경 설치 과정


안드로이드앱 프로그래밍을 하기 위해서는 안드로이드 개발 환경을 구성해야합니다. 안드로이드 개발 환경의 구성을 위한 설치 과정은 아래와 같이 네 가지로 구성됩니다.

첫째, JDK 다운로드 및 설치하기
둘째, 자바 개발도구 이클립스 다운로드 및 설치하기
세째, 안드로이드 개발도구 ADT 설치하기
네째, 안드로이드 SDK 설치 및 이클립스 연동하기





JDK 다운로드 및 설치하기


JDK 다운로드를 다운로드하기 위해서 오라클 자바 다운로드 사이트에 들어갑니다.


아래와 같이 자바 플랫폼 스탠다드 에디션인 SE 버전을 다운로드합니다.






자신의 운영체제에 맞게 다운로드 하면 됩니다. 윈도우10, 윈도우8, 윈도우7을 사용한다면 화면상의 Windows x64 부분의 'jdk-8u73-windows-x64.exe' 항목을 클릭하여 JDK 설치파일을 다운로드 한뒤 설치를 진행합니다.



이클립스 다운로드 및 설치하기


이클립스는 이클립스 홈페이지에 들어가서 윈도우 버전의 64bit를 다운로드합니다.
이클립스는 별도의 Install과정이 필요하지 않으며 이클립스 패키지 압축화일을 로컬 PC에 다운로드 한뒤 압축을 해제하면 설치가 완료됩니다.





다운로드 모양의 버튼을 클릭해서 이클립스 압축화일을 다운로드 받습니다.




특정폴더에 eclipse-SDK-4.2.1-win32-x86_64.zip 화일을 다운로드 한뒤에 zip 화일의 압축을 풉니다.



압축을 풀고 나면 eclipse라는 폴더가 생성되고 자신의 로컬 디렉토리 경로에 eclipse 폴더를 복사합니다.



안드로이드 개발도구 ADT의 설치하기


안드로이드 개발도구인 ADT를 설치하기 위해서는 이클립스를 구동시켜야 합니다. ADT는 이클립스에서 플러그인 형태로 설치할 수 있기 때문입니다. 이클립스가 설치된 폴더에서 eclipse.exe 를 클릭하여 이클립스를 실행합니다.



이클립스 메뉴의 Help > Install New Software를 클릭합니다.



Add 버튼을 클릭하면 뜨는 팝업화면의 Name 부문에 ADT라고 입력을 하고 Location 항목에 https://dl-ssl.google.com/android/eclipse/를 입력합니다.



Select All 버튼을 클릭한 후 Next 버튼을 클릭합니다.




안드로이드 SDK 다운로드하기


안드로이드 개발을 위한 소스들이 들어있는 개발킷을 안드로이드 SDK라고 합니다. 안드로이드 SDK를 설치하기 위해서는 안드로이드 개발자 공식사이트로 접속합니다. 아래쪽에 Other Download Options 링크를 클릭합니다.





installer_r24.4.1-windows.exe 를 클릭해서 안드로이드 SDK 설치를 진행합니다.




사용정책에 동의를 한 뒤에 다운로드 버튼을 클릭해서 다운로드 진행합니다.





145MB 정도의 크기의 안드로이드 SDK 파일이 다운로드 됩니다.




안드로이드 SDK 설치하기


다운로드가 완료되면 설치화일을 실행합니다.




윈도우7 64bit의 경우 안드로이드 SDK 설치시 다음과 같은 오류가 발생할 수 있습니다.



해결 방법은 두 가지가 있으며 아래와 같이 진행합니다. 테스트해본 결과 두 가지 방법이면 정상적으로 해결되는 것을 확인하였습니다.

1. Back 버튼 클릭 후 다시 한번 Next 버튼을 클릭해봅니다.
2. C:\Windows\System32 안의 java.exe, javaw.exe 화일을 C:\Windows\SysWOW64 로 복사한후   다시 설치를 진행합니다.

문제가 해결되면 아래와 같이 설치화면이 나타날 것입니다. Next 버튼을 클릭합니다.



폴더 경로는 디폴트로 둔 상태에서 Next 버튼을 클릭합니다.



설치가 완료되었습니다. Next 버튼을 클릭합니다.



Start SDK Manager 항목에 체크한 상태에서 Finish 버튼을 클릭하면 SDK Manager를 실행시킬 수 있습니다. 체크한 상태에서 Finish 버튼을 클릭합니다.



안드로이드 SDK Manager 의 패키지를 선택해서 인스톨할 수 있는 화면이 나타납니다.



SDK Manager 화면의 Package를 선택하는 체크 화면에서 기본으로 체크되어 있는 Android 4.2 (API 17)외에  Tools와 Android 4.1.2(API 16), Android 2.2(API 8), Extras 부문의 체크박스를 체크한뒤에 Install 29 packages 부분을 클릭해서 Install을 진행합니다.



라이센스 동의 화면에서는 Accept All을 선택한뒤에 Install 버튼을 클릭합니다.



안드로이드 SDK 설치가 진행되고 있습니다.



안드로이드 SDK 설치가 완료가 되면 Close 버튼을 클릭한다




이클립스에서 안드로이드 ADT 연결하기


안드로이드 SDK설치가 끝나면 이클립스에 Plug-in 되어있는 안드로이드 ADT가 안드로이드 SDK를 인식할수 있도록 연결작업을 해주어야 합니다. 연결작업은 이클립스의 Preferences 메뉴를 통해서 진행합니다.

이클립스를 실행하여 Window > Preferences 를 선택합니다.



Preferences 화면의 왼쪽 트리에서 'Android'를 클릭하면 오른편에 SDK Location을 설정 할 수 있습니다. 오른편의 Browse 버튼을 클릭합니다.




설치된 Android SDK 폴더를 선택합니다. 확인 버튼을 클릭합니다. Apply버튼을 클릭한후 OK 버튼을 클릭합니다.



이클립스에 안드로이드 SDK가 정상적으로 로드되면 이클립스 우측 하단 화면에 Android SDK Content Loader라는 문구가 디스플레이됩니다.




+ Recent posts