자 이제 디버깅을 한번 해보자.

        setContentView(R.layout.activity_main);

이 부분에 Line Break Point 를 잡아두고 디버깅을 실행해보았다.

 

 라인 브레이크 포인트 설정 후 디버깅 실행 화면

아까 빨간 콩은 체크마크(∨)의 모자를 쓰게 되었다. 이 마크는 설정한 브레이크 포인트가 라인을 잡고있음을 뜻한다.

(break point has been hit)

브레이크 포인트 설정 후 실행 시 화면

그리고 Hello World! 라고 인사해야 할 화면은 건방져져서 인사를 더이상 하지 않는다.

바로 이 부분 (setContentView(R.layout.activity_main)이 화면을 뿌려주는 부분인가부다.

1. 어플은 실행되었으니 실행은 아니지 않을까?

2. 화면을 뿌려주지 않으니 얘가 뿌려주지 않을까?

합리적 의심을 해주자!

 

After debugging; Frames Window, Variables Window

브레이크 포인트가 설정된 지점에 멈추면 다음과 같은 화면이 아래에 뜬다.

저기서 꺽인 화살표(F8)를 클릭하면 다음 진행으로 넘어가게 된다. 디버깅이 끝나면서 시작된다는 말이 아니다. 정말 다음 단계의 스텝까지만 실행된다.

예를 들어 메서드 단위에서 BP를 잡은 뒤 꺽인 화살표 (Step Over)를 눌렀다면, 해당 메서드가 실행 된 뒤 다음 라인까지만 실행된다고 한다. (이게 나도 무슨말인지 아직 정확하게 모른다.)

하지만 실제로 내가 실행해봤을때, 기능의 단위별로 실행되더라. 그냥 기능의 작은 단위별로 실행한다 정도로만 지금은 이해하고 넘어가겠다. (Tistory 포스트에 BP를 걸어두고 다음에 내가 이해되면 꼭 다시와서 이 글을 수정하겠다)

 

 

 

Posted by 공급망관리 최선생
,

디버깅 하기에 앞서 브레이크 포인트(break point)를 활용해보자.

 

1. Line Break Point (라인 브레이크 포인트)

Break point 활용

setContentView(R.layout.activity_main); // 왼쪽에 빨강색 땅콩이 Break Point 이다.

※ 브레이크 포인트란? - 안드로이드 스튜디오에게 잠시동안만 코드를 멈추고 기다려달라는 지점을 설정하는 방법이다. 따라서 어떤 에러가 발생될 때, 내가 의심하는 지점에 LBP를 두고, 그 앞에서 에러가 발생되는지 또는 그 뒤에서 발생되는지 등을 확인하기 용이하다.

 

설정하는 방법은 왼쪽에 보면 널빤지 같은 공간이 있는데, 해당 공간을 의심하는 눈초리로 클릭하면 된다.

(눈초리가 중요하다!)

다시 없애려면 한번 더 클릭

 

2. Method Break Point (메서드 브레이크 포인트)

Method Break Point 활용

    protected void onCreate(Bundle savedInstanceState) { // 왼쪽의 빨강색 다이아가 메서드 브레이크 포인트이다.

라인 브레이크 포인트와 다르게, 어느 라인에 정확하게 브레이크 포인트를 걸어야 할지 모를 때 사용하는 브레이크 포인트다.

 

내가 생각하는 코드 줄이, 특정한 메서드 (기능의 단위라고 생각하자)가 실행될때 나온다고 판단이 선다면

마우스로 내가 MBP 를 걸고 싶은 곳을 한번 클릭 한 뒤, 상위 탭 메뉴에 Run -> Toggle Method Break Point (토글 메서드 브레이크 포인트)를 클릭하면 된다.

단축키로 Ctrl+Alt+Shift+F8 이 있다. 이게 단축킨가??! 뭘 단축한건가!?

(여기서 커밍아웃하자면 난 오랜 엑셀 작업으로 인한 단축키 충이다)

 

※ 메서드 브레이크 포인트 - 이걸 사용하면 디버깅 작업이 엄청나게 느려진다더라. 내가 BP를 걸은 메서드가 다른 쪽에서 사용되는지 아닌지 계속 체크해야되서 그런건가? 혹시나 아시는분 있으시면 말씀 부탁드립니다

 

3. Temporary Break points (일시적 브레이크 포인트)

말 그대로 브레이크 포인트를 일시적으로만 사용한단다. 다른것도 내가 사용한뒤 없앨꺼니까 일시적인거 아닌가?

루프 문을 돌 때, 또는 어떤 라인이 전체 프로그램이 돌 때 실행되는가 (구절이 타는가??) 등의 한정적으로 사용할 때 유용하단다.

※ 루프 문 (Loop Statement) - Loop 란, 코드로 일련의 작업을 반복적으로 시키는 것을 말한다. Statement 는 그냥 코드를 쓰면 그게 statement 다.

 

예를들어, 1부터 100까지 세는 프로그램이 있다면, 어떤 구절이 문제가 있는지 또는 타는지를 확인하기 위해, 일반적인 BP를 걸어뒀다면 1부터 100까지 프로그램이 돌면서 거기서 계속 멈칫멈칫 (두둠칫 두둠칫) 할꺼다. 이런걸 방지하기 위해 Temporary Break Point 를 사용하여, 해당 구절에서 한정적으로만 멈추도록 하는것이다.

 

사용하는 방법은 Run -> Toggel temporary Line Break Point 를 클릭하면 된다.

단축키로 Ctrl+Alt+Shift+F8 이 있다. 이게 단축킨가??! 뭘 단축한건가!?

(여기서 커밍아웃하자면 난 오랜 엑셀 작업으로 인한 단축키 충이다)

 

4. Conditional Break Point (조건부 브레이크 포인트)

기본적인 Line Break Point 를 걸어둔 뒤 조건을 설정하여, 해당 조건이 맞을때만 BP가 작동되도록 하는 방법이다.

브레이크 포인트의 빨강색 땅콩을 오른쪽 클릭하여 조건을 설정하면 된다.

 

 

-------------

 

자, 여기까지 읽으셨다면 정말 고생많으셨습니다.

 

나도 안다.... 나도 코드도 모르는데 지금 이거 알아서 뭐하나 이런생각이 든다는거

이 글을 읽으시는 분들과 마찬가지로 나도 자바 코드 한줄 못본다 (아직까지는!)

하지만 과거에 Macro VBA 를 공부할 때, 디버깅이 없었다면 정말 완성하지 못했을 기능이 정말 수도 없이 많다.

 

남들이 (특히 이미 잘 하고 있는 개발자들)이 강조한다면, 그만한 이유가 있지 않을까?

 

더구나 책의 도입부는 보통 가장 중요한 것들을 적어두는데, 이 디버깅은 고작 챕터 2에서 나올만큼 중요하다!

다들 힘내보자

 

Posted by 공급망관리 최선생
,

챕터 1이 사실 빨리 끝나서 나도 당황스러웠다.

 

사실 내가 여기에 올린 내용이 챕터 1의 거의 대부분이다.

 

챕터 1은 추억으로 묻어두고 두번째 챕터를 시작해보자.

 

Android Studio 를 실행하면

Android studio initial screen; 안드로이드 스튜디오 초기 화면

이런 화면이 반겨주는데, 혹시나 지난 챕터에서 Hello World 프로젝트가 초기화면으로 뜬다면

File -> Close project 해버리고 새로운 마음으로 다시 시작해보자.

 

IDEExplorer 라는 제목을 보니, IDE 기능을 이것저것 해볼듯

Name은 project 이름을 아무거나 정하면 되고, Packagename (하위버전은 Company Domain)은 프로젝트를 담고 있는 패키지 이름인듯 싶다.

 

Save Location은 프로젝트 저장 디렉토리다. 보통은 Default 값을 놔두는걸로 추천한다. 지금의 계획과 기분에 따라 여기저기 프로젝트 디렉토리를 다르게 뿌려두면 나중에 난 분명 못찾는다.

 

Minimum API Level 은 지금 작성하는 프로젝트가 전체 Android 를 사용하는 기기에서 얼마만큼 가동 가능한가에 대해 영향을 준다.

 

초기 생성된 화면

이렇게 해서 화면을 생성하고 나면 activity_main.xml 과 MainActivity.java 라는 두가지 파일을 만들어 준다.

초기 화면의 파일명은 따로 바꾸지 않는 이상은 MainActivity 로 기본 설정되어 있는데, 그 이유는

1) 내부코드가 MainActivity 로 자동 설정되어서, 코드 부작용이 없게 하려함과

2) 다른 사람이 내 코드를 보더라도 MainActivity가 시작점임을 자연스레 알수 있어 협업이 쉽다는 것이다.

 

프로젝트를 생성하고 나서 오른쪽 위에 보면 아래 그림과 같은 메뉴가 있다.

 

Android Studio Toolbar

재생버튼 : 앱 실행 | 단축키 : Shfit + F10

벌레버튼 : 디버그 | Shift + F9

 

재생버튼을 눌러보자.

프로젝트 생성 후 구동 확인; Hello~World~

 

화면 왼쪽에 보면 프로젝트 뷰 (Project View) 창이 있다.

Project View

 

이 창에서 프로젝트에 사용되는 파일들을 생성, 관리, 수정할수 있다는것쯤은 나도 안다.

 

그리고 마지막으로 화면 하단부에 안드로이드 모니터 (Android Monitor) 가 있다.

Android Monitor: 안드로이드 모니터

디버깅을 활용하여 앱을 실행하면 여기에 logcat 이라는 툴이 표시되는데, 거기에 디버깅 과정의 오류를 찾기에 굉장히 도움을 주는 메시지들이 표기된다고 한다.

 

Posted by 공급망관리 최선생
,

나처럼 뭔가 조금씩 건드리다 보면 (사실 내가 잘못한게 아닐수도 있는데..ㅠ)

 

헬로월드라는 간단한 프로젝트를 만들고 나면 (난 어플 이름만 정하면 다 만들어준다),

아직 안드로이드 스튜디오를 사용해봤다고 하기도 뭐한 시점에

 

AVD 로 프로젝트를 실행하는 순간??!

 

Troubleshoooooooot

intel HAXM is required to run this AVD.

VT-x is disabled in BIOS.

 

Enable VT-x in your BIOS security settings (refer to documentation for your computer)

 

뭐 이딴 메시지가 나온다

Troubleshoot : intel HAXM is required to run this AVD

당황하지 말자 병아리들아 (사실 내가 적잖이 놀랬다 삐약삐약)

 

다음과 같은 방식으로 해결해 나가자. 아래의 방법은 Window 10 (윈도우 10) 의 방법이다.

맥북의 방법은 내가 맥북 사면 알아보자.

 

화면에서 Tools -> AVD Manager . (어떤 버전은 Tools -> Android -> AVD Manager)

여기를 들어가면 아까랑 똑같은 메시지가 화면 위에서 빡치게 하고 있음을 다시한번 확인 한 뒤

 

윈도우 키 + R 을 눌러서 실행 창을 키자

실행 msinfo32
Hyper-V 펌웨어에 가상화 사용 - 아니요 확인; Hyper-V Virtualization Enabled in Firmware - No "confirmed"

이게 No 로 되어있으면 안된단다.

 

이렇게 되어 있다면, 컴퓨터를 다시 시작한다(그냥 다시 시작하면 아니됨 ㄱㄷ).

 

지금부터는 화면이 없을테니 연습장을 하나 가져오라

 

1. 우선 다시 시작 버튼을 누르기 전 Shift 버튼을 홀딩하고 있는다.

2. 화면이 꺼지고 나서 다시 켜지면 기존 윈도우 화면이랑 다른게 켜질텐데,

    거기서 Troubleshoot (또는 문제해결) 을 클릭한다

3. Advanced options (또는 고급옵션) 클릭

4. UEFI Firmware settings

여기까지 누르면 다시 시작한다.

 

그 다음 새로 켜지는 화면에서 고급설정 또는 (Advanced) 로 들어가서

Virtualization Technology 이런 항목을 찾아야 하는데, 보통 CPU 쪽 메뉴 클릭하면 거기에 있다.

이거 못찾으면 Vendorpool 찾으셈.

 

이 다음 이걸 Enable 로 바꾼 뒤 -> 나가기 -> 저장하고 재시작 클릭 하면 

아래와 같은 화면이 뜬다.

 

(참고: 위에 내가 말한 스텝은 윈도우 10 기준임)

 

 

 

Hyper-V 펌웨어에 가상화 사용 -예 확인

후우... 다들 고생했어용. 나두 많이 놀랬었다.

 

이제 다시 가상머신 (AVD)를 실행하면 아래처럼 실행이 잘 된다.

 

Virtualization Technology (VT-x) Enabled

뒤에 뭐 뻘건 글씨가 보이기는 하는데 일단 실행 잘 되니, 저건 다음에 알아보자

 

끗.

Posted by 공급망관리 최선생
,

안드로이드 스튜디오 다운(https://developer.android.com/) 받고 나면 대충 뭐 이것저것 못 알아듣는 게 나오긴 하는데, 그냥 next next finish 계속 치는 Default 값 설정을 가장 권고하더라 책에선,

 

그다음에 다 설정되고 나면, 책이랑 나랑 동등 사양인지 확인을 해야 하는데,

 

Setttings -> System Settings -> Android SDK 여기서 Android version 이 서로 맞는지 확인하면 되는 거 같더라

(아래 사진 참조 할 꺼리는 없지만 참조)

Android Studio Version 설치; 안드로이드 스튜디오 버전 설치

쨋든 이렇게 해서 설정 끝내고

 

그다음엔 File -> New -> New Project로 가서 새로운 프로젝트 오픈하면 되더라

 

Name에 Chapter1HelloWorld (아마 나처럼 처음 하다 접은 사람들은 모든 프로그래밍 언어로 hello world 다 쳐봤을 거다)로 만들고 Empty 액티비티 체크하고 다 만들면

Android Studio Empty Project Initial Screen; 안드로이드 스튜디오 엠티 액티비티 초기 화면

 

이렇게 여기까지는 얘가 다 만들어 준다.

 

이 후에 AVD라고 Android Virtual Device를 설정해줘야 되는데, 내가 아마 예전에 이것도 하다 접어서 그런지 몰라도, 난 되어 있더라.

 

오른쪽 위에 재생 버튼 클릭하면

AVD 설치: Android Virtual Device 설치 ; 안드로이드 가상 디바이스 (에뮬레이터)

저기서 Create New Virtual Device 를 영어 발음을 한번 쫙 꽈서 읽으면서 클릭한다 실시!

 

그러면 뭐 설치 화면으로 넘어가는데 필요한 버전 알아서 설치하면 된다.

 

주의 경고 Warning 단점: 난 어플을 못만들어봐서 모르는데, 책에서는 이게 구리다더라. 다른 강의에서도 이게 구리다더라

게임 같은 GPU 많이 쓰는 거 돌릴 때는 실제 모바일 환경보다 구동 속도가 느리다더라 카더라

 

추가 : 버전 뭐를 설치해야 할지 모르겠으면 무조건 Nexus 5x 하라더라 카더라. 가장 공용적인 하드웨어지 아닐까 싶다

 

안드로이드 커뮤니티 중에 Stack Overflow (안드로이드 뿐만 아니라 VBA Macro 할 때 도움 많이 받았던 개발 고인물들의 둥지)

 

Google Android Training (본인은 예비군 7년차 임으로 더 이상의 훈련은 패스)

 

Android Discuss 등의 커뮤니티를 추천하더라.

 

대부분의 개발자들이 커뮤니티를 통해서 얻어가고 서로 공유하면서 과제를 해결하나가는건 많이 봤다.

 

개발 꿈나무인 우리도 참고해두도록 하자!

 

Chapter 1 끝.

Posted by 공급망관리 최선생
,