안드로이드 스튜디오_안드로이드 버튼에 메시지 넣기

버튼을 사용한다는 것은 이벤트를 처리한다는 것인데 기존의 표준 자바를 사용해본 분이라면 자바에서는 코드 상에서 이벤트를 처리한다는 것을 아실겁니다. 안드로이드에서도 표준 자바와 동일한 방식을 사용할수 있습니다. 그렇지만 지금까지 만든 버튼은 res/layout/activity_main.xml 파일안에 들어가 있으므로 자바 소스가 아니며 자바 소스에 이벤트 처리를 위한 고드를 추가할 수 없어 보입니다. 그래서 코드에서 이벤트 처리가 가능하도록 추가 작업이 필요합니다.

 

1.XML 레이아웃 파일의 버튼에 onClick 속성 값 넣기

res/layout/activity_main.xml 파일에서 정의된 버튼에 onClick 속성 추가

2. 자바 파일에 이벤트 처리 메소드 추가하기

이벤트 처리 메소드의 이름은 위에 넣은 onClick속성 값과 같아야 함


XML 레이아웃 파일의 버튼에 onClick 속성 값 넣기

안드로이드 스튜디오 화면의 가운데 영역에서 ‘activity_main.xml’이라는 이름으로 표시된 탭을 활성화 한후 design 탭을 누르면 스마트폰 화면이 보이게 됩니다.

 

화면에서 버튼을 선택 후 Properties 영역을 보면 ‘onClick’라는 속성을 볼 수 있습니다.


그 속성값으로 ‘onButton1Clicked’ 글자를 입력합니다. 이렇게 값을 지정하면 이버튼이 클릭되었을 때 ‘onButton1Clicked’ 라는 함수를 찾아 실행하라는 의미가 됩니다.

 

스마트폰 화면 모양이 보이는 영역에서 아래쪽 Text탭을 열어 보면 XML 원본 코드가 보입니다.

 

이 코드를 보면 <Button>으로 시작하는 태그안에 ‘android:onClick’이라는 속성이 추가되어 있고 그값으로 방금전 입력한 ‘onButton1Clicked’가 들어가 있는 것을 알 수 있습니다.

 


코드가 변경 되었으므로 버튼 클릭시 속성은 ‘android:onClick’이라는 이름을 가진다는 것을 알 수 있습니다.

스마트폰 화면 모양이 보이는 곳에서 속성 값을 넣어 주면 이 코드도 자동으로 바뀐다는 것을 확인할 수 있습니다.

 



자바 파일에 이벤트 처리 메소드 추가하기


XML레이아웃 파일에서 버튼 태그에 onClick속성을 추가하고 이 속성 값을 이용해 자바 코드에서 만든 메소드를 자동으로 실행할 겁니다.

이제 메소드를 추가해 봅시다메소드 추가는 ‘MainActivity.java’탭에서 합니다.


 

다음은 버튼 객체를 눌렀을 때 실행되도록 추가한 onButton1Clicked()함수입니다.

이 코드는 onCreate()메소드 하단에 추가합니다.


함수: public void onButton1Clicked(View V) {Toast.makeText(getApplicationContext(),"시작 버튼이 눌렸어요", Toast.LENGTH_LONG).show();

}


Toast(토스트)는 작고 간단하게 메시지를 보여주는 방법으로 그냥 따라 입력하면 됩니다.

코드를 추가 하면 안드로이드 스튜디오는 자동으로 코드를 체크하고 그 후에 오류가 있으면 오류를 표시합니다.

새로 추가된 Toast클래스를 발견할수 없다는 의미로 Toast밑에 줄이 생기는 것을 볼수 있습니다.

또한 파일이름탭에도 빨간 밑줄이 표시됩니다이 오류표시줄을 없애려면 alt+enter 키를 눌러주시면 됩니다.

 

Toast는 잠시 보였다가 없어지는 메시지를 표시할 수 있도록 해주는 것으로 makeText()메소드와 show()메소드를 이용해 메시지를 보여줍니다

여기에서는 버튼이 눌렸을 때 시작버튼이 눌렸어요’ 라는 메시지를 보여주도록 했습니다.

코드가 오류없이 완성되었다면 실행을 눌러 화면에 보이는 버튼을 클릭합니다.

 

간단한 메시지가 보였다가 사라지는 것을 볼 수 있습니다




안드로이드 스튜디오 안드로이드 화면에 버튼 넣기

화면에 버튼을 만들고 버튼을 눌렀을 때 정보를 보여주는 기능을 넣어보겠습니다.

 

▶res/layout/activity_main.xmltext를 다시한번 들어갑니다.

 



▶<TextView>태그를 <Button>태그로 변경



<Text View> 태그가 화면에 나타나는 글자를 참조한다는 것을 알아 보았으니 텍스트를 보여주는 태그가 여기 들어있다는 것을 알 수 있습니다

이제 <Text View>태그를 <button>으로 바꾼 후 실행해 보겠습니다.

 

*button으로 입력하면 오류가 뜰 수 있습니다. Button으로 대문자를 유의하여 입력해주세요

 

▶<Button>태그 입력 후 다시 실행한 화면

 

TextViewButton으로 변경한 것 뿐인데 화면에 버튼이 하나 만들어졌지요?

안드로이드는 기초가 되는 코드부터 디자인 패턴을 많이 적용하여 만들어졌기 때문에 쉽게 이해하며 프로그래밍 할 수 있는 구조를 가지구 있어요.

 

그 특징중 하나가 buttonTextView를 상속하고 있는 것인데 이렇게 상속하여 정의된 버튼은 TextView태그를 Button 태그로만 바꿔도 텍스트뷰의 속성을 그대로 사용할수 있고 오류없이 화면이 바뀌게 됩니다.




 

안드로이드 스튜디오- 안드로이드 화면 글자 바꾸기

 

화면에 보이는 글자를 바꾸어 봅시다.

 


글자는 ‘activity_main.xml’ 파일 안에 들어있는 것을 알고 있으니 쉽게 변경할 수 있습니다.





‘activity_main.xml’탭을 활성화한 상태에서 아래의 ‘text’탭을 선택해줍니다.

 



> hellow world를 선택


>안녕 안드로이드 입력


‘activity_main.xml’ > ‘text’ > ‘hellow world’ > ‘안녕 안드로이드로 변경

 


글자를 변경후 안드로이드 스튜디오 상단의 실행 버튼을 눌러 앱을 다시 실행해 주시면 잠시후 ‘hellow world‘에서 >> ‘안녕 안드로이드로 변경된 화면을 볼 수 있습니다.



첫 번째 앱 구조

앱이 만들어졌고 에뮬로 실행되는것도 확인했습니다.

앱이 실행되었을 때 보이는 글자는 직접 입력한것도 아닌데 화면에 나타나게 됩니다. 이 글자들이 어떻게 보이게 된것인지 알아 보겠습니다.

 

안드로이드 스튜디오의 mainactivity.java‘탭을 열어 확인해보겠습니다.

 


 

mainactivity.java 탭을 열어 자바 내용을 보면 표준 자바나 다른 언어에서 볼 수 있는 main함수를 찾아볼수 없습니다. 애플리케이션의 시작점이 되는 적으로 생각되는 main함수가 없는 것을 보아 안드로이드에서는 main 함수가 아닌 다른함수가 시작점이 되는것이라고 추측할 수 있습니다.




아마도 onCreate()함수가 시작점이 되는 것 같은데 그안에 매우 간단한 두줄의 코드만 들어있습니다. 첫 번째 줄에서는 super이라는 키워드를 사용하고 있는데 상속을 받은 클래스가 부모 클래스를 가르킬 때 super키워드를 사용하므로 부모클래스에 있는 동일한 이름의 oncreate()함수를 호출하는 것임을 알수있는데요. 따라서 이 코드에는 큰 의미를 두지 않아도 될거같습니다. 그렇다면 한줄의 코드가 화면에 글자를 보이도록 한 것으로 생각할 수 있습니다.

 



이 한줄코드에서 보이는 setcontentView()라는 함수에 대해 그 의미를 알수없다고 해도 굉장히 중요한 역할을 한다고 짐작할수 있습니다. 파라미터로 전달된 R.layout.activity_main은 기존의 자바에서는 보기힘든 형태인데 결국화면에 어떤 내용이 보이도록 만든 정보라는 것을 이해해야 합니다.

 




그럼 src폴더가 아닌 다른 폴더의 정보를 보겠습니다


안드로이드 스튜디오 화면의 왼쪽에 보이는 영역이 프로젝트 영역인데 Android 탭 안에 트리 구조로 만들어진 내용이 표시되어 있습니다


이곳에서 app이라는 하위에 ‘/res’ 폴더를 보면 

그 밑에 있는 여러 폴더중 ‘layout’ 폴더를 찾을수 있고 그밑에 ‘activity_main.xml‘이라는 파일이 있습니다.



 












‘activity_main.xml‘ 파일을 열어 보면 프로젝트가 만들어 질 때 만들어진 탭이 다시 화면에 보이는데 그안에 ’hellow world’ 글자가 들어있습니다. 결국 ‘activity_main.xml‘파일의 내용은 앱을 실행 했을 때 처음 보이는 화면이 어떤 모양으로 구성되는지를 담고 있는 것입니다.






 ‘activity_main.xml‘ > Text 창


‘activity_main.xml‘ > Design 창



화면 하단에 있는 탭중에 Text탭을 누르면 XML의 내용을 직접 볼수 있고 바꿀수 있습니다.

‘design’탭을 선택하면 마우스를 이용해 버튼과 같은 것들을 화면에 직접 넣을 수 있는 디자인화면이 표시됩니다.

 

이를 통해 ‘activity_main.xml‘파일에서 만들어준 화면 모양을 앱이 그대로 보여준다는 것을 이해할 수 있습니다. ’mainactivity.java 파일 안에 들어 있는 ‘setContentView()’함수를이용해 ‘activity_main.xml‘의 내용을 화면에 설정하는 것도 어느 정도 이해할수 있습니다


에뮬레이터 만들기


새로 만들어진 프로젝트에 어떤 것들이 들어 있는지 구체적으로 알아보기 전에 먼저 프로젝트에서 자동으로 만든 앱의 기능이 어떤 것인지 앱을실행해서 확인해보겠습니다.

앱을 실행하려면 우선 에뮬레이터를 띄워야 합니다.


에뮬레이터(Emulator)는 단말 등의 다른 장치를 똑같이 흉내 내도록 설계된 장치나 프로그램, 한 시스템에서 다른 시스템을 복제한다. 그리하여 두 번째 시스템이 첫 번째 시스템을 따라 행동하는 것이다.

에뮬레이터는 다른 프로그램이나 장치를 모방하는 "컴퓨터 프로그램 또는 전자기기의 능력"을 뜻한다.

In computing, an emulator is hardware or software that enables one computer system (called the host) to behave like another computer system (called the guest). An emulator typically enables the host system to run software or use peripheral devices designed for the guest system. Emulation refers to the ability of a computer program in an electronic device to emulate (or imitate) another program or device.




안드로이드 스튜디오 상단 툴바에 있는 여러 아이콘 중에서 오른쪽 끝에서 다섯 번째쯤에 있는 AVD manager 아이콘을 클릭하면 에뮬플랫폼으로 만들고 실행할 수 있는 창을 띄울 수 있습니다.



 


만들어져있는 에뮬이 없기 때문에 새로운 가상 단말을 만들라는 안내화면이 나옵니다.

 가운데 있는 create virtual device 버튼을 눌러 새로운 에뮬생성과정을 단계별로 진행합니다.



 


첫 번째: select hardware

가상으로 보일 에뮬을 위한 하드웨어를 선택합니다넥서스5가 선택된 그대로 next를 눌러주세요




두 번째: system imege 화면

에뮬을 실행할 이미지를 선택해야합니다. 이미지란 단말기 하드웨어의 종류에 따라 달라지는 것으로 하드웨어를 실행하기 위한 정보를 담고 있는 하나의 파일이라고 생각하면 됩니다. ABI 칼럼 값 x86을 선택합니다.

 

API lv 값은 25로 되어있습니다. 이 숫자는 최신 버전이 달라지면 더 높은 숫자로 표시될수있는 것을 주의하세요. ABI 값은 ‘x86’ API level값은 최신버전인 항목을 선택후 next버튼 클릭해주세요. next버튼이 활성되 되지 않는다면 누가(nougat)의 옆에 Download 부분을 눌러 내려받은후 선택해주세요.

 



마지막으로 선택한 정보가 맞는지 확인하는 창이 나타나요. 위쪽에 AVD name 항목에 새로 만들어질 에뮬의 이름이 자동으로 들어가있습니다

AVD화면에 에뮬레이터를 만들기 위해 입력한 정보를 확인하고 수정할수 있습니다.



next버튼을 눌러주시면 새로운 에뮬이 만들어집니다. AVD 매니저 화면안에 새로운 에뮬이 만들어 진 것을 확인할 수 있습니다.

 


추가된 에뮬의 actions 항목에 있는 초록색 세모 실행 아이콘을 클릭합니다. 잠시 기다리면 안드로이드 표시와 함께 에뮬이 실행되고 안드로이드 단말의 홈화면이 구현됩니다.

 







  




안드로이드 스튜디오를 실행하면 옆의 화면이 나타납니다.

가장 위쪽의 start a new android studio project를 눌러주시면 

새로운 안드로이드 프로젝트를 만들기위한 창이 생깁니다.






application name에 어플 이름을 적어주시고 아래 

company domain에 주소를 적어주시면 자동으로 package name이 설정됩니다.



Package name이란 

앱을 구분하는 고유한 값으로 앱이 단말에 설치되었을 때 다른 앱과 구분될 수 있는

역할을 합니다. 다른 패키지 이름과 충돌하지 않도록 고유한 이름으로 바꾸어야 합니다.

자동으로 입력되는 패키지 이름과 다른 이름을 사용하고 싶다면 

오른쪽의 Edit버튼을 클릭한 후 직접 입력하면 됩니다.





어떤 플랫폼을 위한 앱인지를 선택하는 화면이 나타납니다.

phone and tablet 항목이 선택되어 있는 것을 볼수있습니다.


이건 스마트폰과 태블랫을 위한 앱을 만들겠다는 뜻입니다.

아래의 항목은 새로 만들 앱이 예전의 단말기종에서 어떤것 까지 지원할것인지 선택하는 것입니다.

자동으로 선택된것을 두고 다음으로 넘어가세요.





Empty Activity를 선택하고 다음으로 넘어갑니다.



디자인창과 레이아웃창의 이름을 정하는 것입니다.


다음을 누르고 끝내기를 눌러줍니다.


보안경고가 뜨죠? 자바프로그램이 인터넷을 사용하면 윈도우 보안경고가 뜰수있습니다. 

액세스 허용해주세요



드디어 프로젝트 창이 떴습니다.

팁창은 close 버튼을 눌러주세요



왼쪽 목록과 가운데 창으로 나눠저 있습니다.

가운데 상단에 보시면 아까 적었던 

Activity 네임과(Activity_main) layout이름(MainActivity)이 보이시죠?

지금 보이는 화면이 activity 화면으로 자바소스 파일이라는걸 알수있습니다.



옆의 Activity_main 을 눌러주시면 위와같은 화면이 나타납니다

첫번째 화면은 화면에 보일 그대로를 나타내며

두번째 화면은 구조를 청사진으로 나타낸 것입니다.



show design을 누르면 첫번째 화면만 보입니다.


show blueprint를 누르면 청사진 화면만 보이게 됩니다.


그럼 다시 Design+Blueprint를 눌러 주세요!



'안드로이드' 카테고리의 다른 글

안드로이드 스튜디오- 앱구조 파악  (0) 2017.11.22
안드로이드 스튜디오 에뮬레이터 만들기 01  (0) 2017.11.20
JAVA JDK 설치  (0) 2017.11.10
JAVA JDK 다운방법  (0) 2017.11.10
안드로이드 버전  (0) 2017.11.10

검색창에 안드로이드 스튜디오 라고 검색하고 홈페이지로 이동해 주세요

https://developer.android.com/studio/index.html?hl=ko


다운로드 눌러주세요 ㅎㅎ


다운하려면 어쩔수 없죠 정책에 동의해야해요


여기부터는 다음다음다음 으로 


설치가 되고 있죠?



이제 안드로이드 스튜디오를 실행해 봅시다


띠용??? 이게뭐람

맞아요 사실 아직 설치안된거였습니다.


다시 다음다음다음 눌러줄게요


다음이 안눌러짐 ㅠㅠ

그럼 피니쉬를 눌러봅시다


그럼 갑자기 설치가 시작됩니다. 위의 목록들을 설치하는거죠


여기서 ...안드로이드 스튜디오가 설치 or 실행이 안되는 경우가 있습니다.

네 그게 바로 접니다.


>사용자계정이 한글이 아닐경우

사용자 계정이 한글이름으로 되어있다면 사용자 폴더의 경로에 C:/users/가나다 처럼 한글이 포함됩니다. 이 경우에 프로그램이 제대로 실행되지 않을 수 있어요 ㅜ_ㅜ 윈도우에서 새로운 영문 계정을 만든 후 그 계정으로 로그인하여 새로 설치해 주세요


>자바 버전이 낮을 경우

설치한 자바 버전이 1.8보다 낮은 경우 프로그램이 제대로 실행 할 수없습니다. 이경우에는 기존 자바를 삭제하고 다시 깔아주세요


>실행할 수 있는 메모리의 용량이 적은 경우

안드로이드 스튜디오가 실행될 때 메모리가 적어서 실행할 수 없다는 오류 메시지가 표시되는 경우가 있어요.

이때는 안드로이드 스튜디오에서 사용 할 수있는 최대 메모리의 크기를 늘려야 해요.

파일 탐색기를 열고 안드로이드 스튜디오가 설치된 폴더 아래있는 빈폴더를 찾아요.

이 폴더 아래에 studio64.exe.vmoptions 파일이 있으면 그 파일을 메모장에서 엽니다 그리고 -Xmx로 시작하는 줄의 숫자를 더 크게 수정해줘요

-Xmx2048m

수정하고 파일을 저장후에 다시 안드로이드 스튜디오를 실행해 보아요


설치가 완료되면 피니쉬를 눌러줘요



그럼 설치 끝!



오픈소스

안드로이드는 오픈 소스로서 개발자에게 개방되어 있으며 아파치 2.0 사용

자바 개발 언어

안드로이드를 개발할 때 사용하는 언어는 자바JAVA 따라서 전세계의 자바 개방자가 안드로이드 앱 개발에 뛰어들 수 있다

스마트폰을 위한 

컴포넌트 제공

안드로이드는 오픈 소스이지만 스마트폰을 위한 컴포넌트를 제공한다

핵심적인 커널 부분만 제공하고 다른부분은 개발자에게 맡기는 방식이 아니라 제공된 소스를 사용하면 스마트폰이라는 전화기가 그대로 만들어 지므로 대부분의 개발자는 그 위에 올라가는 앱만 만들면 된다

쉬운 앱간 연동

안드로이드로 만든 앱은 다른 앱에서 제공하는 기능을 쉽게 사용할 수 있도록 만들어져 있다

사진을 찍기 위해 단마의 사진 앱을 연동하면 카메라 미리보기 화면을 직접 만들기 않아도 된다

다양한 기능 지원

안드로이드는 리눅스를 기반으로 하므로 새로운 하드웨어의 기능을 쉽게 연동할 수 있다

또한 빠른 업그레이드를 통해 플랫폼에서 다양한 기능을 제공하고 있다


안드로이드 특징


첫째 오픈소스

오픈소스의 특징 덕분에 안드로이드 플랫폼의 단점을 빠르게 개선하고 전세계의 개발자를 끌어들이는 효과를 발휘

 

둘째 안드로이드에서 앱을 개발할 때 자바언어를용한다는 것

자바는 전세계많은 대학의 학생들이 배우는 기본언어이기도 하고 동시에 수많은 어플 개발자들이 사용하고 있어서 안드로이드 개발시장에 활력을 불어넣고 있음

 

셋째 개발자들은 미리 제공된 컴포넌트를 이용할 수 있어 플랫폼까지 신경쓰지 않고 그위에 올라가는 앱만 잘만들어 배포하면 되므로 오픈 소스가 가지고 있던 취약점은 거의 없는 셈이다.

 

넷째 다른사람이 만든 앱을 쉽게 연동할수있다는 점

만약 사진찍기 기능을 포함하는 앱이라면 카메라 미리보기 기능이 들어간 화면을 직접 만들지 않고 단말의 카메라 앱을 실행시켜 사진을 찍을 수 있다.

 

다섯째 안드로인드 플랫폼에서 다양한 기능을 지원

안드로이드 OS는 빠르게 업그레이드 되고 있고 다양한 기능을 제공하고 있다 또한 리눅스 기반으로 되어 있기 때문에 새로운 하드웨어가 나왔을 때 안드로이드에 탑재하는 것이 어렵진 않아 신기술을 쉽게 접목할 수 있다.

 

여섯째 안드로이드에는 ART라는 런타임이 탑재되어 있는데 이 런타임의 성능은 매우 뛰어나다. 런타임은 프로그램을 실행시키는 엔진과 같아서 성능이 가장 중요한 요소이다. 하지만 아드로이드에서 사용하는 자바는 예전부터 성능이 느리다는 고질적인 문제를 안고 있었고 이 때문에 옛날에는 표준 자바를 휴대 단말에서 사용할 때 가상머신의 속도가 느려 성능 문제가 계속 제기되었지만 안드로이드는 빠른 속도의 런타임을 만들고 성능을 지속적으로 개선했기 때문에 현재는 성능 문제가 거의 없다.

'안드로이드' 카테고리의 다른 글

open GL  (0) 2017.11.10
Open GL ES  (0) 2017.11.10
SQLite  (0) 2017.11.10
ART Runtime  (0) 2017.11.10
런타임 Runtime  (0) 2017.11.10

+ Recent posts