Git 관련 내용을 최근 너무 블로깅을 하지 않아서 진도를 빼려고 했는데,
프린트를 해놓은 것을 잃어버려서... 요즘 진도를 빼고 있는 안드로이드 앱 개발 내용으로 블로깅을 하겠다.


앞에서 버튼을 여러개를 만들어서 웹 페이지도 보여주고 전화거는 것도 보여주고 했다.
그런데, 앞에서 다른 내용을 보여준 것은 내가 직접 만든 것이 아니라 안드로이드가 보여주는 것이었다.



이번에는 내가 새로 도화지를 하나 더 만들어서 그 곳에 그림을 그리는 것을 해보자.

안드로이드 용어를 사용해서 다시 말을 해보면,
이전에는 Activity 하나만 만들어서 작업을 했는데, 이번에는 Activity를 추가로 하나 더 만들어보자!



안드로이드에서 하나의 단위를 Activity라고 생각하면 된다.
Avtivity 단위로 별도의 소스파일을 사용하고 별도의 레이아웃을 사용한다.

완전히 새로만들면 귀찮으니 기존의 파일을 가지고 복사해서 사용해보자.


'HelloAndroidActivity.java' 파일 위에서 오른쪽 버튼을 누르고 'Copy'를 한 이후에
바로 [Ctrl]+[v]를 눌러서 붙여넣기를 하면 아래와 같은 화면이 나온다.


이름을 바꿔주자.


이번에는 레이아웃 파일을 복사하자.


'main.xml' 파일 위에서 오른쪽 버튼을 누르고 'Copy'를 선택하고,
[Ctrl]+[v]를 눌러서 붙여넣기를 하면 아래와 같은 화면이 나온다.


일단 파일이름을 아래와 같이 적어보자.


입력은 되는데, 오른쪽 밑의 창을 보면 아래와 같은 붉은 글씨가 보인다.
대문자를 사용하면 안되나보다.


파일 이름에서 [F2] 버튼을 누르고는 아래와 같이 소문자로만 파일이름을 변경하자.


레이아웃을 바꿔보자.


이번에 만든 Activity로 전환이 되었을 경우에
mainActivity로 되돌아가는 기능을 하는 버튼 하나만 만들어보자.


버튼 하나만 남기면 된다.

주의할 것은 아래와 같다.
   - R.layout.otheractivity
   - R.id.backBtn
   - finish();


그런데, 이렇게 만든 Activity는 바로 사용할 수 없다.
등록을 해야하는 것이다.


'Package Explorer'의 밑부분에 위치한 'AndroidManifest.xml' 파일을 선택해보자.


밑의 탭에서 "AndroidManifest.xml"을 선택하면 나오는 화면에서 아래의 내용을 추가하자.

<activity android:name=".OtherActivity">
</activity>


이제 새로 만든 Activity를 사용할 준비는 모두 끝났다.

마지막으로 새로 만든 Activity를 호출하는 부분을 추가하자.


기존에 만든 첫 번째 버튼에 새로 만든 Activity로 넘어가는 코드를 추가하자.

Intent myIntent = new Intent(getApplicationContext(), OtherActivity.class);
startActivity(myIntent);


이제 다 되었다.
에뮬레이터로 결과를 확인해보자.


기본적인 앱에 대해서 충분히 살펴보았다.


지금까지의 내용에 대해서는 '이지스퍼블리싱'에서 출판한 '안드로이드 앱 프로그래밍'이라는 책을 참조하였다.

반응형

앞에서 간단한 수정으로 버튼을 추가하는 것에 대해서 살펴보았다.
이번에는 버튼을 조금 더 추가해보자.


     <Button
        android:id="@+id/callBtn"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="전화걸기" />
   
    <Button
        android:id="@+id/naverBtn"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="네이버" />

각 버튼에 전화를 거는 기능과, 웹페이지를 보여주는 기능을 추가해보겠다.


Button callButton = (Button) findViewById(R.id.callBtn);
callButton.setOnClickListener(new OnClickListener() {
   public void onClick(View v) {
      Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("tel:/010-1234-5678"));
      startActivity(myIntent);
   }
});

Button naverButton = (Button) findViewById(R.id.naverBtn);
naverButton.setOnClickListener(new OnClickListener() {
   public void onClick(View v) {
      Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.naver.com"));
      startActivity(myIntent);
   }
});

소스 파일을 수정하기 전에, 'main.xml'파일을 세이브를 먼저 하자.
그런 후 위와 같이 소스 수정을 한 후 [Ctrl]+Shift]+[O] 기능 단축키로 import 를 확장하자.


그런 후 에뮬레이터에 실행 후 버튼을 하나씩 눌러보면... ^^


그런데, 소스를 보면 좀 재미있는 것이 많다.

그 중 하나가
웹페이지를 여는 것과 전화를 거는 것이 방식이 같다는 점이 재미있다.
프로토콜로 "tel:/"을 보내면 된다~!

반응형

'잘난놈되기 > 안또라이들' 카테고리의 다른 글

안드로이드 어플 개발 환경 만들기  (0) 2019.03.31
새로운 판 만들기  (0) 2012.03.12
버튼을 추가해보기  (0) 2012.03.06
첫 소스 분석 - HelloAndroid  (0) 2012.03.05
여보세요!? 안또라이들!!!  (0) 2012.02.28

새로 소스를 만들기보다는 처음 만들었던 것을 가지고 수정해나가도록 해보자.

우선 Button을 하나 만들어보자.
기존에 단순히 글씨만 보여주었던 TextView를 Button으로 변경해보겠다.


본래 위와 같았던 소스에서, "TextView"를 "Button"으로 글씨만 변경해보자.


위와 같이만 하면 된다.
그리고 에뮬레이터로 Run As 시키면...


위와 같이 버튼으로 바뀐다.
눌러보면 색이 반전되면서 눌려지는 Button인 것을 확인할 수 있을 것이다.


그러면, 이번에는 눌리기만 하는 것이 아니라
누르면 뭔가 행동을 취하도록 해보자.

그러기 위해서는 이 Button을 지칭하기 위해서 id를 만들어줘야 한다.


 android:id="@+id/chaniBtn"

<Button ... /> 사이에 위와 같이 id를 지정해주는 한 줄을 추가해주면 된다.

그리고 해당 버튼을 조작하기 위해서 소스파일에서 받아오는 부분을 넣어보자.


 Button chaniButton = (Button)findViewById(R,id,chaniBtn);

위 스크린샷에는 오타가 하나 있다 ^^
박스에 있는 것이 맞다! ^^

Resource의 id 중에서 chaniBtn이라는 놈을 찾는데,
그 속성은 Buuton이고 그 놈을 chaniButton이라는 변수에 지정하라는 의미이다.


chaniButton.setOnClickListener(new OnClickListener() {
   public void onClick(View v) {
      Toast.makeText(getApplicationContext(), "차니 버튼 꾹!", 1500).show();
   }
});

그 밑에 위와 같은 부분을 추가하자.

chaniButton이 꾹 눌리는 것을 감시하고 있다가,
눌려지면 "차니 버튼 꾹!"이라는 글씨가 나오는 작은 창을 1500ms 시간 동안만 보여주라는 의미이다.

그런데, 위 스크린샷과 같이 빨간 줄이 되어있는 부분이 꽤 보일 것이다.
C언어의 #include <>와 같이 사용할 함수들이 들어있는 헤더파일과 같은 것들을 적어줘야 하는데
물론 Java에서는 import를 해주는 것이지만...

일일이 기억하고 적어주기가 귀찮은 귀차니스트 여러분을 위한 편리한 기능이 물론 있다.
[Ctrl]+[Shift]+[O]를 눌러주면 된다!!!


그런데도 빨간줄이 그어져 있다면 오타가 났을 확률이 높다.
마우스를 가져다대면 위 스크린샷과 같이 친절한 안내를 해준다.

수정하자!!!


자~이제 위와 같이 빨간펜 선생님의 지적이 없어지면 된다!!!

Run Application 해보자.

버튼을 누르면 밑에 작은 창(?)이 나오는 것이 보이면 성공!!!



쨘~
반응형

'잘난놈되기 > 안또라이들' 카테고리의 다른 글

새로운 판 만들기  (0) 2012.03.12
버튼을 더 추가해보기  (0) 2012.03.11
첫 소스 분석 - HelloAndroid  (0) 2012.03.05
여보세요!? 안또라이들!!!  (0) 2012.02.28
Android Emulator 실행  (2) 2011.12.11

지난 번에 만든 첫 프로그램에 대해서 조금 더 살펴보자.



C 언어의 main(){} 의 역할을 하는 것은 무었일까?!
위 샘플 소스를 보면 잘 알 수 있을 것이다.


화면에 글씨를 뿌린 부분은?!

 setContentView(R.layout.main);

그런데, 화면에 뿌려진 글씨는 어디에 있을까!?



'Package Explorer'에서 [HelloAndroid]-[res]-[layout]-[main.xml]을 선택하자.
그 다음 오른쪽 화면 밑 부분에서 'Graphical Layout' 옆에 있는 'main.xml'을 선택하자.


중간 아래 부분을 잘 살펴보면, layout 말고 "android:text="@string/hello" 부분이 있다.
텍스트를 설정을 하는데, 그 내용은 string 타입의 변수(?) 'hello'에 저장된 값을 사용하라는 의미로 볼 수 있다.

그러면, 그 변수값은 어디서 확인할 수 있을까?!

'Package Explorer'에서 [HelloAndroid]-[res]-[values]-[strings.xml]을 선택하자.
그 다음 오른쪽 화면 밑 부분에서 'Resources' 옆에 있는 'strings.xml'을 선택하자.


xml 파일의 중간을 보면, 아래 부분을 확인할 수 있을 것이다.

 <string name="hello">Hello World, HelloAndroidActivity!</string>


전체적인 구조를 파악할 수 있을 것이다!!!



이제는 조금 바꿔볼까요!?


위와 같이 string 내용을 살짝 바꿔보고,


'Run HelloAndroid'를 실행하자!


그런데, 수정 후 저장을 안했기에 실행 전에 Save를 할 것인지 물어보는 창이 뜬다.
저장을 해주면 된다.


그러면, 변경된 내용으로 App이 실행되는 것을 확인 할 수 있다.


위 과정을 보면, 실제로 소스 파일을 수정하지 않고 리소스 파일 수정만으로 다른 결과가 나오는 것을 확인할 수 있다.
프로그램과 리소스의 분리를 기본으로하는 안드로이드의 철학을 엿볼 수 있다.

반응형

'잘난놈되기 > 안또라이들' 카테고리의 다른 글

버튼을 더 추가해보기  (0) 2012.03.11
버튼을 추가해보기  (0) 2012.03.06
여보세요!? 안또라이들!!!  (0) 2012.02.28
Android Emulator 실행  (2) 2011.12.11
Android SDK 설치하기  (0) 2011.12.10

프로그래밍 언어를 배울 때에 제일 먼저 하는 것!!!!

Hello 만들기!!!



이클립스 실행 후, [File]→[New]→[Other] 선택


(Android)→(Android Project)→[Next>]


Project Name: "HelloAndroid"

기재 후 나머지는 Default 값 그대로 진행


Target 을 골라야하는데,
최신 버전으로 고르고 싶더라도 낮은 버전을 고르는 것이 좋다.

하위 버전을 대상으로 개발을 해야 하위 호환성이 좋아진다.
높은 버전을 대상으로 개발을 하게 되면 낮은 버전에서 실행이 안될 수가 있다.

"Galaxy Tab" 用 App을 개발해보기 위해서 아래와 같이 선택해 보았다.


Package Name: com.whatwant.hello

패키지 이름을 지어줘야 하는데, 도메인주소를 거꾸로 해놓은 방식으로 만들어줘야한다.


오른쪽의 Package Explorer에서 소스파일을 선택해보면 제공된(?) 소스를 확인 할 수 있다.


위 스크린샷의 스마트폰 모양의 아이콘을 누르면 에뮬레이터를 실행할 수 있다.


App을 실행할 수 있는 가상 디바이스를 만들어보자.


GALAXY Tab으로 만든 후, Start를 해보자.


Scale display to real size는 에뮬레이터를 디스플레이할 때 어떤 비율로 할 것인지를 정하는 것이다.
밑의 Scale, 0.54 비율로 디스플레이하라는 것이다.

GALAXY Tab 해상도가 높기 때문에 조금 줄여서 디스플레이하도록 했다.


잘 실행된다.


미리 한 번 눌러버려서 위 스크린샷처럼 나오는데...

Run As를 누르면 어떤 형식으로 실행할 것인지 물어보는 창이 뜬다.
Android Application 을 고르면 된다.


에뮬레이터에 해당 어플리케이션이 잘 실행된 것을 볼 수 있다!!!



우리의 Hello 프로젝트는 여기까지~!!!
반응형

'잘난놈되기 > 안또라이들' 카테고리의 다른 글

버튼을 더 추가해보기  (0) 2012.03.11
버튼을 추가해보기  (0) 2012.03.06
첫 소스 분석 - HelloAndroid  (0) 2012.03.05
Android Emulator 실행  (2) 2011.12.11
Android SDK 설치하기  (0) 2011.12.10

안드로이드 에뮬레이터를 하나 만들어서 실행하여 보자.


이클립스를 실행 후,
[Window] - [AVD Manager]


[New] 클릭


각 개별 옵션들에 대한 설명은 다음 기회에 하기로 하고,
일단 위와 같이 설정을 하고 AVD를 만들어 보도록 하자.


위와 같이 만들어 준 후, [Start]


여기서도 각 항목에 대한 설명은 다음 기회에 되면 하기로 하고,
일단은 '닥치고 런치!'


그런데, 이렇게 실행을 하면 화면이 나와야 하는데 BS(Black Screen)만 나왔다.

뭐가 문제일까...
이러한 경우 종종 권한으로 인한 문제로 발생하곤 한다.
즉, root 권한으로 실행을 하면 해결이 될 것으로 보인다.

열심히 구글링을 해본 결과,
에뮬레이터가 아니라 실제 기기를 USB로 연결해서 사용하는 경우 root 권한 문제가 있다고 한다.

하지만, 이와 같이 에뮬레이터 실행의 경우에는 root 권한 문제가 있다는 말은 별로 없었다.


일단은, 닥치고 root 권한으로 에뮬레이터 실행을 해봤다.

 $ sudo /srv/install/android/android-sdk-linux/tools/emulator-arm -avd Chani_2.2

제일 뒤의 Device 이름은 저 위에서 생성한 것의 이름이다.


에뮬레이터 쨘~

반응형

'잘난놈되기 > 안또라이들' 카테고리의 다른 글

버튼을 더 추가해보기  (0) 2012.03.11
버튼을 추가해보기  (0) 2012.03.06
첫 소스 분석 - HelloAndroid  (0) 2012.03.05
여보세요!? 안또라이들!!!  (0) 2012.02.28
Android SDK 설치하기  (0) 2011.12.10

1. JDK install

   - http://www.oracle.com/technetwork/java/javase/downloads/index.html


   - 최신 버전을 받아서 사용하면 좋겠지만, 안드로이드 작업을 위해서는 이전 버전이 필요하다.

 $ wget http://download.oracle.com/otn-pub/java/jdk/6u29-b11/jdk-6u29-linux-i586.bin
 $ chmod +x ./jdk-6u29-linux-i586.bin
 $ sudo ./jdk-6u29-linux-i586.bin

 $ sudo update-alternatives --install /usr/bin/java java /srv/install/jdk/jdk1.6.0_29/bin/java 1
 $ sudo update-alternatives --install /usr/bin/javac javac /srv/install/jdk/jdk1.6.0_29/bin/javac 1
 $ sudo update-alternatives --install /usr/bin/javah javah /srv/install/jdk/jdk1.6.0_29/bin/javah 1
 $ sudo update-alternatives --install /usr/bin/jar jar /srv/install/jdk/jdk1.6.0_29/bin/jar 1



2. eclipse install

   - http://www.eclipse.org/


   - 이클립스 파일을 다운 받아서, 압축을 해제하면 설치 끝!

 $ wget http://ftp.daum.net/eclipse/technology/epp/downloads/release/indigo/SR1/eclipse-java-indigo-SR1-linux-gtk.tar.gz
 $ tar zxvf ./eclipse-java-indigo-SR1-linux-gtk.tar.gz

   - 아래와 같이 경고가 발생할 수도 있다.

 (eclipse:1859): Gtk-WARNING **: 모듈을 module_path에서 찾을 수 없습니다: "pixmap",

   - 다음과 같이 패키지를 추가 설치하면 해결이 된다.

 $ sudo apt-get install gtk2-engines-pixbuf




3. android SDK

   - http://developer.android.com/sdk/index.html


 $ wget http://dl.google.com/android/android-sdk_r15-linux.tgz
 $ tar zxvf ./android-sdk-r15-linux.tgz
 $ nano ~/.bashrc
...
export ANDROID_PATH=/srv/install/android/android-sdk-linux
export PATH=$PATH:$ANDROID_PATH/tools
 $ source ~/.bashrc



4. Install ADT Plugin

   - Eclipse에서 개발하기 위해 ADT Plugin 설치 !!


   - Eclipse 실행 → [Help] → [Install New Software...]



   - [Add...]


   - Name : ( Android )
   - Location : ( https://dl-ssl.google.com/android/eclipse/ )


   - [Select All] → [Next>]


   - [Next>]


   - 'I accept the terms of the license agreements' → [Finish]


   - Installing...


   - [Restart Now]


 
5. Choose Packages to install


   - 사용할 Packages들을 다운로드 받아야 한다.

 $ cd /srv/install/android/android-sdk-linux
 $ ./tools/android update sdk

   - execute


   - "Accept All" → [Install]


   - Installing...



안드로이드 App 개발 준비 완료~!!
반응형

'잘난놈되기 > 안또라이들' 카테고리의 다른 글

버튼을 더 추가해보기  (0) 2012.03.11
버튼을 추가해보기  (0) 2012.03.06
첫 소스 분석 - HelloAndroid  (0) 2012.03.05
여보세요!? 안또라이들!!!  (0) 2012.02.28
Android Emulator 실행  (2) 2011.12.11

우리 아가 붕붕카에 LED도 좀 달아주고 모터제어도 할 겸,
나도 뭔가 좀 만들어 볼 겸 해서 알아보다가 알게 된 '아두이노'

공식사이트
http://www.arduino.cc/

사용자 삽입 이미지

[ 구매 내역 ]

저항 모음 (NT-1/4W Axial Resistors 128Value Kit 1%(F)) : 99,000원
LED 몽창 (5파이 고휘도 LED 반투명 (녹색) 등등) : 66,000원 정도
아두이노 (아두이노 (Arduino) Atmega328P (HD-DFR0001)) : 35,000원
빵판 (어떤 곳에서 집어옴 ^^) : 0원

* 위 물품은 전부 www.devicemart.co.kr 을 통하여 구매하였으며, 부가세 별도 ㅠㅠ
* 저항이나 LED는 나중을 위해 몽창 구매한 것!

사용자 삽입 이미지

아두이노 정품이 아니라 복제품(?)이지만...
거의 99% 호환된다고 한다.
친절하게도 USB 케이블도 들어있다.

사용자 삽입 이미지

정전기 방지 비닐에 쌓여서 온다.

사용자 삽입 이미지

정품하고 똑같이 생겼다.

노트북에 연결해서 LED가지고 간단히 테스트 해 본 결과.... 잘된다 ^^

반응형

+ Recent posts