Eclipse 3.6.x 버전이 되면서 노트북에서 실행되는 이클립스가 얼어버리는 되는 상황들이 빈번하게 발생하기 시작했다. 코딩을 하다가 탭을 바꾸거나 자동완성 기능을 사용하려고 하면 화면이 멈추는 증상에 너무 짜증이 나서 어떻게 할까 고민하던 차다.

지금 노트북에는 외장그래픽으로 ATI Radeon 이 포함되어 있다.

우분투랑 ATI 라데온 조합이 안좋은 건 이 노트북을 사용하면서 실감했다. 우분투와 궁합이 괜찮은 건 엔비디아nVidia 와 인텔intel 이다.

이클립스를 실행할 때마다 너무 짜증이나서 운영체제를 다시 설치할까 했는데, 문득 이에 대한 인터넷 검색을 해보자 하는 생각이 들었다(이렇게 쓴지 한달이 좀 넘은 것 같은데...).

인터넷 검색으로는 ubuntu 14.04 eclipse slow 으로 검색을 시작했다. 그랬더니 나오는 첫번째 결과가 똬악!

을 통해서 간단하게 방법을 찾았다. 해결책은 크게 두 가지 방법이 있다.

  • eclipse.sh 실행 스크립트 작성

    export SWT_GTK3=0
    export UBUNTU_MENUPROXY=0
    ./eclipse
  • eclipse.desktop 애플리케이션 등록정보 수정

    [Desktop Entry]
    Version=4.4
    Name=Eclipse
    Comment=Eclipse IDE
    Exec=env UBUNTU_MENUPROXY=0 SWT_GTK3=0 =/home/honeymon/development/eclipse/eclipse
    Icon=/home/honeymon/development/eclipse/icon.xpm
    Terminal=false
    Type=Application
    Categories=Utility;Application

위의 두 가지 방법 중에 후자의 것을 사용했다.


문제가 생긴 이유는, GTK3 의 SWT 가 최적화되어 있지 않기 때문에 나타나는 버그로 보인다.

GVM(Groovy enVironment Manager) 설치방법

○ 설명

Ruby에는 RVM 과 rbenv라고 하는 도구가 광범위하게 사용되고 있다. 이 도구들을 통해서 루비를 설치하고 개발하고 실행하는데 필요한 환경을 구축하고 있다. Groovy에서도 이와 유사한 도구인 GVM(Groovy enVironment Manager,http://gvmtool.net/)라고 하는 도구를 제공하고 있다.

GVM은 대부분의 유닉스 기반 시스템에서 다양한 소프트웨어 개발도구들의 버전을 관리하는 도구다. 커맨드라인인터페이스(CUI 혹은 터미널)에서 설치, 전환, 제거 및 다른 후보자들에 대한 목록을 관리한다.

현재 제공하고 있는 대상들로는:

  • Groovy
  • Grails
  • Griffon
  • Gradle
  • Groovyserv
  • Lazybones
  • vert.x
  • Crash
  • Glide
  • Gaiden
  • JBake
  • Springboot

등이 있으며, Groovy를 대상으로 하는 제공대상들을 확대해갈 예정이다.
실행되는 플랫폼은 다음과 같다:

  • 리눅스
  • 맥OS
  • Cygwin
  • Solaris
  • FreeBSD

GVM은 bash를 사용하고 여러분의 시스템에서 가능한한 curl unzip에만 의존하도록 되어있다. 설치가 진행되기에 앞서 이미 설치가 되어있는지를 점검할 것이다. 여러분의 홈디렉토리 아래에 .gvm 이라고 하는 폴더가 생성되어 있다면, 등록되어 있는 지원대상들을 설치할 것이다.

○ 설치

설치하는 방법은 간단하다. 선호하는 bach 터미널을 열고 다음과 같이 입력한다.

curl -s get.gvmtool.net | bash

GVM이 실행되는데 필요한 요소들이 설치가 진행되면서 이와 관련한 내용들이 화면에 출력할 것이다. 경우에 따라서는 재시작을 요청할 수도 있다. 혹은 gvm-init.sh라고 하는 스크립트를 실행하여 환경을 설정하도록 요청하기도 한다.

$ ~/.gvm/bin/gvm-init.sh

○ 사용

GVM 사용하는 방법을 확인하는 방법은 간단하다.

$ gvm install <candidate: ex) groovy, springboot ...>

지금 내가 GVM을 통해서 설치한 gradle, groovy, springboot는 다음과 같다.



GVM의 설정과 관련된 파일은 ~/.gvm/etc/config 파일이다.

# make gvm non-interactive, great for CI environments
gvm_auto_answer=false/true

# prompt user to selfupdate on new shell
gvm_suggestive_selfupdate=true/false

# perform automatic selfupdates
gvm_auto_selfupdate=true/false

의 내용으로 설정이 가능하고, 실제로 설정된 것은 다음과 같다.

그레들gradle, 그루비groovy와 스프링부트springboot를 실행하는데 필요한 환경설정에 대한 부담이 확 줄어드니~ gvm으로 대동단결!!

우분투의 언어설정을 변경하면, 그에 따라 우분투의 기본 폴더가 변경되는 특징을 가진다. 일본어로 테스트할 것이 있어서 시스템 환경을 일본어로 변경했다가 한국어로 변경했지만, 기본 폴더들이 일본어로 되어 있어, 이를 수정할 방법을 검색하다가 발견했다.

순서

  1. user-dirs.dirs 삭제
    $ rm ~/.config/user-dirs.dirs
    
  2. xdg-user-dirs-update 실행
    $ xdg-user-dirs-update
    
  3. ~/.config/user-dirs.dirs 수정
    # This file is written by xdg-user-dirs-update
    # If you want to change or add directories, just edit the line you're
    # interested in. All local changes will be retained on the next run
    # Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
    # homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
    # absolute path. No other format is supported.
    # 
    XDG_DESKTOP_DIR="$HOME/desktop"
    XDG_DOWNLOAD_DIR="$HOME/downloads"
    XDG_TEMPLATES_DIR="$HOME/template"
    XDG_PUBLICSHARE_DIR="$HOME/share"
    XDG_DOCUMENTS_DIR="$HOME/documents"
    XDG_MUSIC_DIR="$HOME/music"
    XDG_PICTURES_DIR="$HOME/picture"
    XDG_VIDEOS_DIR="$HOME/video"



Why? 왜 우분투에서 안드로이드 앱 개발을 해야할까?
    1. 윈도우 보다는 안드로이드 개발하기가 편하다.
      이유 : 윈도우에서 안드로이드폰을 테스트하기 위해서는 USB 드라이버를 제조사별로 설치해야 한다.
        -> 우분투에서는 android용 rule.set만 설정해주면 된다.
    2. 무료로 사용할 수 있는 안정적인 리눅스 운영체제이다.
    3. 개발 중에 필요한 서버테스트 환경 등을 손쉽게 구축할 수 있다.



  적어도 안드로이드 앱 개발자에게는 윈도우보다는 나은 환경을 제공한다(맥북에서 써보니까 맥북도 괜찮다. 하지만, 맥북을 사야한다. 우분투는 지금 쓰는 노트북의 운영체제를 밀고 설치하면 된다).
  우분투에서 안드로이드 앱 개발환경을 구축하기는 쉽다.


1. JDK 설치하기
    1.1. JDK 설치 여부 확인
        - honeymon$ java -version
            = 설치되어 있는 경우 : 2.1.로 넘어가자.
            = 설치되어 있지 않은 경우 : 1.2.로 넘어가자.
    1.2. JDK 설치하기
        - JDK 중 하나를 선택하자.
            = OpenJDK(참조하는 라이브러리에서 오류가 발생한다고 합니다. 다른 분들은 이걸 비추.)
            = SunJDK(많은 분들은 이걸 추천합니다.)
            = IBMJDK 듣보잡!
        - JDK를 설치하기
            = sudo apt-get install sun-6-jdk
            = 설치 완료 확인 : java -version
2. Android SDK 설치하기(ADK -> Android SDK로 변경)
    2.1. 구글 안드로이드 개발 사이트 : http://developer.android.com/index.html
        - 우분투용 Android SDK를 다운로드 받는다
            = Android SDK url : http://developer.android.com/sdk/index.html
            ** i386이라고 되어있지만 아키텍쳐(32bit/64bit)는 크게 신경쓰지 않아도 된다.
        - Android SDK를 지정한 위치에 푼다.
            = honeymon : /home/honeymon/Dev/android-sdk 에 설치함
    2.2. Android SDK가 설치된 경로(PATH)를 .bashrc 에서 설정해준다.
        - 설정 이유 : adb, ddms와 같은 안드로이드를 다루는데 필요한 커맨드를 실행할 수 있도록 해주는 것이다.
        - Tip. 윈도우에서는 1개의 경로가 끝나면 끝에 ;(세미콜론)을 붙이지만, 유닉스와 리눅스에서는 :(콜론)을 사용한다.
          = 윈도우 사용자가 유닉스나 리눅스 환경에서 낯설어하는 부분 중 하나다. 윈도우가 유닉스를 따라한 것이다. 모든 운영체제의 시작은 유닉스였다고 보면 된다.

설정방법 :
  .bashrc 제일 마지막 문장에 PATH 추가

ANDROID_PATH=/home/honeymon/Dev/android-sdk
PATH=$PATH:$ANDROID_PATH/bin

    2.3. Android SDK 경로설정이 완료되었는지 확인한다.
        - adb help
3. Eclipse 설치하기
    3.1. Eclipse DownLoad site : http://www.eclipse.org/downloads/
        - Eclipse IDE for Java Developers 가 안드로이드 앱 개발에는 더 적합해 보인다.
        - 내가 처음에 배울 때는 Eclipse classic 을 추천받았었는데...
    3.2. Eclipse의 압축을 푼다.
    3.3. eclipse.ini 환경을 설정한다.
        - 개발에 적합한 것들과 설정했을 때 관련이 있는 것을 알려준다.
    3.4. eclipse를 설치한다.
4. ADT 플러그인 설치하기
    - 참고 사이트 : http://developer.android.com/sdk/eclipse-adt.html
    4.1. eclipse adt update site 추가 : https://dl-ssl.google.com/android/eclipse/
    4.2. Update 목록에 나온 플러그인을 선택하고 설치한다. 설치 완료 후 이클립스 재시작
    4.3. android Manager에서 ADK의 위치를 설정한다.
    4.4. 개발하려고하는 android 버전의 라이브러리를 확인한다.
        - 다운로드 속도가 느린 편이므로 마음의 여유를 가지고 임하자.
    4.5. 라이브러리 다운로드가 완료된 후 이클립스를 다시 시작한다.
5. ADT 설치확인
    5.1. Android manager를 선택한다.
    5.2. Android Emulator를 추가한다.
    5.3. Android Emulator를 실행한다.
    5.4. DDMS perspective를 선택하여 화면전환 후 5.3.에서 실행한 에뮬레이터가 인식되는지 확인한다.
    5.5. 가볍게 화면을 캡쳐해본다.
6. Android Project 생성하기(맛뵈기)
    6.1. Android Project 추가
    6.2. 실행하기
        - Android Application 선택 -> 수행
    6.3. 5.3.에서 실행한 Emulator에서 실행되는지 확인하기
        - Emulator가 동작하는데 걸리는 시간은 실제 안드로이드가 실행되는 시간보다 오래걸린다.
        - CPU의 성능에 따라서 그 차이가 제법 난다.
        - Emulator보다는 넥서스, 넥서스S, 넥서스 프라임과 같은 레퍼런스폰을 개발기기로 연결해서 테스트하는 것이 좋다.
    6.4. 실행시킨 에뮬레이터가 에뮬레이터에 보이면 정상적인 빌드 및 설치가 완료된 것이다.
7. 안드로이드 개발 Tip
    7.1. Java에 대한 공부는 꾸준하게 한다.
    7.2. 커뮤니티 활동을 한다.
    7.2. 로그(Log)를 잘 이용해서 동작을 체크하자.
        - 디버그(Debug)모드를 자주 이용하면 동작을 한눈에 확인하기 어렵다.
        - 기록(로그)을 세밀하게 남겨서 확인하는 습관을 가지자.
    7.3. Android Reference를 꼼꼼히 읽어두자.
        - 어느 개발서적보다 낫다.
        - 개발서적들은 대부분 저자가 자세히 모르는 내용은 얼버무리게 된다.

     



P.S. 안드로이드 개발용 rule.set 설정하기

오늘 불현듯 '나를 위해서, 다른 이들을 위해서' 할 수 있는 것이 뭘까 고민해봤다.

OpenSource Project를 진행해보자.

내가 유용하게 사용하여 왔던 것들에 대한 보답을 할 때가 된 것 같다.

흠... 그런데 뭘 하면 좋을까??

'Programming' 카테고리의 다른 글

내가 짰던 코드를 회상하며,  (0) 2011.03.09
에디터에 대해서  (0) 2011.03.09
Types of software architects  (0) 2011.01.01
What dows 'PMD' mean?  (0) 2010.12.31
[Velocity] velocity.properties  (0) 2010.03.13

+ Recent posts