본문 바로가기
[ Developer ]/Android

[Android] 안드로이드 가상머신 앱 구동

by 김현섭. 2016. 7. 7.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Android 가상머신으로 앱 실행하기

이전에 배웠던 방식으로 Android Studio와 가상 머신이 설치되어 있다면 가상 머신을 실행 시킨 후 
소스를 앱으로 실행시켜 본다

실행시키기 위해서 기본 소스에서 Shift + F10을 누르면 디바이스가 뜨게 된다


만약에 USB로 핸드폰이 연결되어 있다면 기기가 한개 더 뜨겠지만 현재는 가상머신 1개가 뜬 상태이다
OK 버튼을 누르면 실행 중 표시가 뜨고 기다리면 앱으로 실행된다


이제 가상 디바이스를 보면 실행된 것을 볼 수 있다


Hello World가 나온 것을 볼 수 있다 저 문구를 수정하려면 다음의 경로로 가서 수정을 해야 한다
res -> layout -> activity_main.xml에서 수정을 하면 된다


소스에서 aandroid:text 값을 바꿔본다


화면의 값이 변경된 것을 볼 수 있다
안드로이드는 화면에 보이는 것을 layout에서 관리가 된다는 것을 알아두면 된다
위에 앱 제목을 변경하려면 res -> values -> strings.xml에서 변경을 해주면 된다



변경이 된 것을 볼 수 있다
manifests에서 AndroidMainfest.xml을 확인해 본다


android:label=에서보면 @string/app_name이라고 적혀 있는데 values 안에 있는 strings.xml에서 app_name을 가져오는 것이다


Android Button 추가
activity_main.xml에서 버튼을 추가해본다 디자인 탭을 본다면 Widgets에서 버튼이 있는것을 볼 수 있다


버튼을 끌어다가 화면에 드랍하면 버튼이 생성된다


그리고 난 후 오른쪽에 Properties에서 text 부분에 글자를 넣어주면 된다


그런 후 Text 탭으로 오면 추가가된 것을 볼 수 있다


프로그램을 실행시켜 보면 버튼이 생성된 것을 볼 수 있다



@ Button 이벤트 주기
아직 이벤트가 걸려있지 않기 때문에 아무 반응이 없는 것을 알 수 있다
버튼을 주기 위해서는 버튼의 Properties에서 onClick을 검색해서 이벤트를 줄 수 있다


onClick안에 onCall이라고 적어주면 Method로 인식을 하게 된다


java에서 MainActivity를 이용해서 onCall을 메소드로써 정의를 해주면 된다


onCall을 보면 button을 파라미터로 받고 makeText 시켜주는 구문이다

실행 결과를 보면 다음과 같다


버튼이 눌리면 알림이 뜬 것을 알 수 있다 View는 화면에 보이는 전부를 의미 한다
그리고 View는 전부 클릭 이벤트가 가능하다 그래서 View로 받는 것이 누구를 클릭했는지에 대한 값을 갖는것이다

@ Text 클릭 이벤트
이제 버튼 위에 안녕하세요!에 이벤트를 주어 본다


이제 텍스트를 클릭하면 이벤트가 실행될 것이다



@ 이벤트 다르게 처리하기
activity_main을 보면  id값이 다른것을 볼 수 있다


그것을 가져와서 다른 이벤트를 처리할 것이다


위와 같이 id를 int로 받을 수 있다 안드로이드 자체에서 id값을 모두 int로 처리하기 때문이다


메소드에서 위와 같이 처리할 수 있다
R.id.을 누르면 생성된 id값들이 전부 나오게 된다 그래서 선택을 하면 된다


이제 실행 후 텍스트를 클릭하면 다른 이벤트가 나오는 것을 볼 수 있다



*onCall - Method
1
2
3
4
5
6
7
8
9
10
    public void onCall(View view) {
        int id = view.getId();
 
        if ( id == R.id.button2 ) {
            Toast.makeText(view.getContext(), "버튼을 눌렀습니다.", Toast.LENGTH_SHORT).show();
        }
        else if ( id == R.id.textView ){
            Toast.makeText(view.getContext(), "텍스트를 눌렀습니다.", Toast.LENGTH_SHORT).show();
        }
    }
cs


Android 암묵적 인텐트 (Intent)

이전에 글자와 버튼을 생성해서 이벤트를 걸어줬던 것에서 버튼 클릭 시 전화 화면으로 넘겨보자
Activity (화면) 간 전환을 위한 용도로 인텐트를 사용한다


위와 같이 적어주면 버튼 클릭 시 버튼을 눌렀습니다가 출력 후 전화 화면으로 전환이 된다

*onCall - Method
1
2
3
4
5
6
7
8
9
10
11
12
    public void onCall(View view) {
        int id = view.getId();
 
        if ( id == R.id.button2 ) {
            Toast.makeText(view.getContext(), "버튼을 눌렀습니다.", Toast.LENGTH_SHORT).show();
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("tel:010-3333-4444"));
            startActivity(intent);
        }
        else if ( id == R.id.textView ){
            Toast.makeText(view.getContext(), "텍스트를 눌렀습니다.", Toast.LENGTH_SHORT).show();
        }
    }
cs

실행 결과 

Android 가상머신으로 앱 실행하기

이전에 배웠던 방식으로 Android Studio와 가상 머신이 설치되어 있다면 가상 머신을 실행 시킨 후 
소스를 앱으로 실행시켜 본다

실행시키기 위해서 기본 소스에서 Shift + F10을 누르면 디바이스가 뜨게 된다


만약에 USB로 핸드폰이 연결되어 있다면 기기가 한개 더 뜨겠지만 현재는 가상머신 1개가 뜬 상태이다
OK 버튼을 누르면 실행 중 표시가 뜨고 기다리면 앱으로 실행된다


이제 가상 디바이스를 보면 실행된 것을 볼 수 있다


Hello World가 나온 것을 볼 수 있다 저 문구를 수정하려면 다음의 경로로 가서 수정을 해야 한다
res -> layout -> activity_main.xml에서 수정을 하면 된다


소스에서 aandroid:text 값을 바꿔본다


화면의 값이 변경된 것을 볼 수 있다
안드로이드는 화면에 보이는 것을 layout에서 관리가 된다는 것을 알아두면 된다
위에 앱 제목을 변경하려면 res -> values -> strings.xml에서 변경을 해주면 된다



변경이 된 것을 볼 수 있다
manifests에서 AndroidMainfest.xml을 확인해 본다


android:label=에서보면 @string/app_name이라고 적혀 있는데 values 안에 있는 strings.xml에서 app_name을 가져오는 것이다


Android Button 추가
activity_main.xml에서 버튼을 추가해본다 디자인 탭을 본다면 Widgets에서 버튼이 있는것을 볼 수 있다


버튼을 끌어다가 화면에 드랍하면 버튼이 생성된다


그리고 난 후 오른쪽에 Properties에서 text 부분에 글자를 넣어주면 된다


그런 후 Text 탭으로 오면 추가가된 것을 볼 수 있다


프로그램을 실행시켜 보면 버튼이 생성된 것을 볼 수 있다



@ Button 이벤트 주기
아직 이벤트가 걸려있지 않기 때문에 아무 반응이 없는 것을 알 수 있다
버튼을 주기 위해서는 버튼의 Properties에서 onClick을 검색해서 이벤트를 줄 수 있다


onClick안에 onCall이라고 적어주면 Method로 인식을 하게 된다


java에서 MainActivity를 이용해서 onCall을 메소드로써 정의를 해주면 된다


onCall을 보면 button을 파라미터로 받고 makeText 시켜주는 구문이다

실행 결과를 보면 다음과 같다


버튼이 눌리면 알림이 뜬 것을 알 수 있다 View는 화면에 보이는 전부를 의미 한다
그리고 View는 전부 클릭 이벤트가 가능하다 그래서 View로 받는 것이 누구를 클릭했는지에 대한 값을 갖는것이다

@ Text 클릭 이벤트
이제 버튼 위에 안녕하세요!에 이벤트를 주어 본다


이제 텍스트를 클릭하면 이벤트가 실행될 것이다



@ 이벤트 다르게 처리하기
activity_main을 보면  id값이 다른것을 볼 수 있다


그것을 가져와서 다른 이벤트를 처리할 것이다


위와 같이 id를 int로 받을 수 있다 안드로이드 자체에서 id값을 모두 int로 처리하기 때문이다


메소드에서 위와 같이 처리할 수 있다
R.id.을 누르면 생성된 id값들이 전부 나오게 된다 그래서 선택을 하면 된다


이제 실행 후 텍스트를 클릭하면 다른 이벤트가 나오는 것을 볼 수 있다


*onCall - Method
1
2
3
4
5
6
7
8
9
10
    public void onCall(View view) {
        int id = view.getId();
 
        if ( id == R.id.button2 ) {
            Toast.makeText(view.getContext(), "버튼을 눌렀습니다.", Toast.LENGTH_SHORT).show();
        }
        else if ( id == R.id.textView ){
            Toast.makeText(view.getContext(), "텍스트를 눌렀습니다.", Toast.LENGTH_SHORT).show();
        }
    }
cs


Android 암묵적 인텐트 (Intent)

이전에 글자와 버튼을 생성해서 이벤트를 걸어줬던 것에서 버튼 클릭 시 전화 화면으로 넘겨보자
Activity (화면) 간 전환을 위한 용도로 인텐트를 사용한다


위와 같이 적어주면 버튼 클릭 시 버튼을 눌렀습니다가 출력 후 전화 화면으로 전환이 된다

*onCall - Method
1
2
3
4
5
6
7
8
9
10
11
12
    public void onCall(View view) {
        int id = view.getId();
 
        if ( id == R.id.button2 ) {
            Toast.makeText(view.getContext(), "버튼을 눌렀습니다.", Toast.LENGTH_SHORT).show();
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("tel:010-3333-4444"));
            startActivity(intent);
        }
        else if ( id == R.id.textView ){
            Toast.makeText(view.getContext(), "텍스트를 눌렀습니다.", Toast.LENGTH_SHORT).show();
        }
    }
cs


실행 결과