[04-D1] 간단한 Application을 통한 개발 환경 테스트, 안드로이드 Application 구조

[[[ 한글 문자열뒤에 공백이나 '.'을 출력해야 한글이 정상적으로 출력 될수 있으나
    불규칙적임. 따라서 이문제는 지역화에서 해결해야함. 문자의 양쪽에 공백을 넣는 것도 하나의 해결 방법 임]]


[01] 간단한 Application을 통한 개발 환경 테스트

1. 프로젝트 생성
   - Project Type: Android Project
     Project name: Test_Hello_4            <------또는 SDK 2.1은 Test_Hello_7
     Application name: Test_Hello_4
     Package name: android.test           <------ 패키지명은 2단 이상 지정, 단일 패키지 안됨.
     Create Activity(Activity name): HelloAct   <------- 클래스명으로 쓰임으로 첫자를 대문자로 지정
     Min SDK Version: 4                          <------ API 번호

 


2. project --> Properties --> Android --> Android 1.6 다시 체크 후 Apply

 


3. 실행
   [Run as --> Android Application] emulator 출력후 잠시 후
   화면에서 [menu]버튼 클릭
   * emulator는 loading속도가 느림으로 계속 실행합니다.

 


4. 출력 문자열의 변경
   C:/workspace_android/Hello/res/values/strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">안녕하세요? 안드로이드 입니다.</string>
    <string name="app_name">Hello~ Android</string>
</resources>

 

 

[02] Application의 구조

1. 환경 설정
    1) AndroidManifest.xml
        - 프로젝트의 구성 정보를 가지고 있음.
    2) application의 빌드 정보가 들어 있슴.


2. src/*.java
    - 자바 클래스 선언


3. gen/R.java
    - 프로젝트에서 사용되는 View 및 각종 리소스를 16진수의 정수 형태로 관리함, 툴이 자동으로
      관리하며 개발자는 관여하지 않음.


4. assets
    - 리소스 폴더로 비디오, 오디오등의 대용량 파일을 저장함.


5. res/drawable
    - 이미지 파일을 저장하며, 어플리케이션의 기본 아이콘, 각각의 해상도별로 자동으로 적용되는
      이미지 폴더가 있으며, png형식을 권장함.


6. res/layout/main.xml
    - Java와 XML을 이용하여 구현 가능.
    - 복잡한 레이아웃의 구현은 코드로 구현이 어렵기 때문에 XML 사용을 절대 권장.
    - 디자이너와 개발자가 분리 작업을 할 수 있어 전문성을 강화할 수 있음.
    - Activity의 디자인을 담당, 파일명은 영어 소문자와 숫자만 가능.


7. res/values/strings.xml
    - 프로젝트에서 사용하는 문자열을 저장.
 

9. bin
    - apk 파일이 있으며 핸드폰에 설치할 수 있는 패키지임.

    adb install Test_Hello.apk
    adb uninstall Test_Hello.apk
    adb install -r Test_Hello.apk

 

 


[03] 버튼을 누르면 현재 시간을 알려주는 Application의 작성

1. 프로젝트 생성
   - Project Type: Android Project
     Project name: Test_Date_4
     Application name: Activity Test
     Package name: android.test.date   <-- 2단이상의 패키지 사용
     Create Activity(Activity name): TestActivity
     Min SDK Version: 4

 

2. resource의 선언
   [res --> values --> strings.xml]

   Resources Elements - String
   String Name: msg, Value: Activity 실습입니다.

   Resources Elements - String
   Name: btnDate, Value: 버튼을 클릭하세요.

>>>>> res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Activity Test2</string>

    <string name="msg">TestActivity 입니다.</string>
    <string name="btnDate">버튼을 클릭하세요.</string>
</resources>

 


3. Layout의 선언
   [res --> layout --> main.xml]
   Button 추가
   Properties View에서 Text속성에 문자열 자원 할당
   Id: @+id/btn01, Text: @string/btnDate


>>>>> res/layout/main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<TextView android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/txvMsg"
    android:text="@string/msg" android:textSize="10pt"/>

<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnDate"
android:text="@string/btnDate" android:textSize="10pt"/>

<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnClear" android:text=" 삭제 "
android:textSize="10pt" android:textColor="#00AA00"></Button>
</LinearLayout>

 


4. Activity class
    - JDK 1.5는 @Override annotation을 지원하지 않음으로 JDK 1.6으로 compiler를
      변경할 것.

>>>>> src/android/test/date/TestActivity.java
package android.test.date;

import java.util.Date;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class TestActivity extends Activity implements OnClickListener{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        // public View   findViewById  (int id)

        // 버튼과 이벤트 핸들러(클릭 기능 처리 메소드) 연결
        // 버튼을 찾아야 함.
        Button btnDate = (Button)findViewById(R.id.btnDate);
        // 버튼이 클릭 되었을 때 버튼 클릭 소리를 듣고 처리할
        // 객체를 콘트롤에 등록
        // this == TestActivity
        // TestActivity가 OnClickListener를 구현했음으로 this로 선언
        btnDate.setOnClickListener(this); // this = TestActivity
       
        Button btnClear = (Button)findViewById(R.id.btnClear);
        btnClear.setOnClickListener(this);
       
    }

    @Override
    /**
     * v: 이벤트가 발생한 View콘트롤이 들어가 있음.
     */
    public void onClick(View v) {
        // Toast.makeText(this, "버튼이 클릭 되었습니다.",  Toast.LENGTH_LONG).show();
       
        // Toast t = Toast.makeText(this, "버튼이 클릭 되었습니다.",  Toast.LENGTH_LONG);
        // t.show();
        
        /*
        TextView txvMsg = (TextView)findViewById(R.id.txvMsg);
        String date = new Date().toLocaleString();
        txvMsg.setText(date);
        */
        
         if (v.getId() == R.id.btnDate){
             TextView txvMsg = (TextView)findViewById(R.id.txvMsg);
             String date = new Date().toLocaleString();
             txvMsg.setText(date);           
         }else if(v.getId() == R.id.btnClear){
             Toast.makeText(this, "날짜 삭제",  Toast.LENGTH_SHORT).show();
            
             TextView txvMsg = (TextView)findViewById(R.id.txvMsg);
             txvMsg.setText("");
         }
        
    }

}

 


5. 참조 관계
   - id 속성의 특징
     @    : id는 @기호로 시작 되어야 함.
     @+id/txvName : 리소스(View)에 새로운 아이디 선언.
     @id/txvName  : 기존에 선언된 리소스를 참조 할 경우.
     @android/id:list: Android에서 시스템에서 사용하는 지정된 id일 경우

   TestActivity.java
   setContentView(R.layout.main)
                  |
                  |
                  gen/android.test.date.R.java
                  R.layout.main
                           |
                           |                 
                           res/layout/main.xml
                           android:text="@string/msg"
                                                 |
                                                 |
                                                 res/values/strings.xml

 

 
 
 

Posted by ▶파이팅◀


[03-D1] Ubuntu 10.04 리눅스에서의 개발 환경 설정(ADT, SDK, AVD)

[01] Android SDK starter package 설치

1. Android SDK Updater 설치
   - Android open source 프로젝트 진행 사이트
     http://developer.android.com/sdk/index.html
   - 다운 로드: /home/dev/setup
     cd setup
     tar -xvf android-sdk_r07-linux_x86.tgz

 


2. 이동
   dev@ubuntu:~/setup$ mv android-sdk-linux_x86 /home/dev
   cd ..
   ls -l

 

 

[02] Eclipse에 Android ADT(Android Development Tools) 설치

1. ADT 설치
   [Eclipse --> Help --> Install New Software... --> Add...]
   Name: android
   Location: https://dl-ssl.google.com/android/eclipse/

   'Developer Tools'선택 --> Install
 
   [참고] 인식이 안되는 경우 'Available Software Sites' 링크를 클릭하고 들어감.
                name이 'android'을 클릭하고 'Test Connection'버튼 클릭,
                그래도 항목이 출력이 안되면  'Install New Software... '를 닫고 다시 실행.

 


2. Eclipse 재 시작

 


3. Android SDK 설치
   1) [Windows --> Preferences --> Android --> SDK Location]
      /home/dev/android-sdk-linux_x86 지정
   
   2) SDK 경로 설정 후 활성화된 구글의 SDK 사용 수집 정보창에서 'Proceed'버튼 클릭.
  
   3) [Window --> Android SDK and AVD Manager] 실행

   4) Available Packages 선택후 설치
      - 2.1을 기본 설치하며 자신의 폰에 해당하는 API를 추가로 설치.

   5) License Accept화면에서 'All Accept' 전부 동의 하고 진행
       - 수업은 2.1 기준, 자신의 폰에 해당하는 버전 등록.

   6) /home/dev/android-sdk-linux_x86/platforms 폴더에서 설치된
      SDK 확인

 

 


[03] AVD(안드로이드 가상 장치, Android Virtual Device)
    
1. 안드로이드폰 에뮬레이터의 설정
   [Window --> Android SDK and AVD Manager --> Virtual Devices]

   Name   : AVD_4
   Target  : Google APIs (Google Inc.)- API Level 4
             Android 1.6 API Level 4
   SD Card : 512
   Skin    : Default(HVGA) 320 X 480
   Hardward: Abstracted LCD density, GPS support, SD Card support
  

 

2. Emulator 테스트
   emulator는 많은 메모리를 사용하고 실행 속도가 느림으로 종료하지말고 개발을 진행 할 것.
   그렇지 않으면 테스트폰을 USB로 연결하고 작업하면 작업 속도가 많이 향상 될 수 있다.

 


3. /home/dev/android-sdk-linux_86/tools의 경로 등록

   - 기존 경로의 확인
     echo $PATH

   sudo gedit .bashrc

   - 맨 아래에 등록
   export PATH=$PATH:/home/dev/android-sdk-linux_86/tools

   - 변경된 소스 적용
   source .bashrc
 

 

4. Android reference
   1) API Level: SDK1.0-API 1, SDK1.1-API 2, SDK1.5-API 3, SDK1.6-API 4,
                             SDK2.0.1-API 6, SDK2.1-API 7, SDK2.2-API 8

   2) URL: http://developer.android.com/reference/packages.html
  

 

  
 
 
 
 

Posted by ▶파이팅◀


[02-D1] Ubuntu 10.04 리눅스에서의 개발 환경 설정(JDK 6, Eclipse Galileo)

[01] VMWare 6.5 ~ 7
     - 안드로이드 오픈소스 프로젝트 팀에서는 UBUNTU 리눅스 사용을 권장함.
     - Samsung S3c6410의 경우 설치 가능 버전: 6.06 ~ 9.04에 최적화 되어 있음.
     - VMWare 사용시 최소 RAM 2GB이상 되어야 하며, 가상 머쉰은 1GB이상의
       메모리 할당과 20GB ~ 30GB 이상의 하드를 할당해야 한다.
     - CPU는 Pentium D 2.8 Ghz또는 Core2DUO 이상을 권장함.

★ VMWare 7.1이상 버전에서 Ubuntu 10.04를 지원함.


1. VMWare의 설치
  

 

2. http://www.ubuntu.com Ubuntu download
   - mirror: https://launchpad.net/ubuntu/+cdmirrors
   - http://ftp.daum.net/ubuntu-releases/
   - http://ftp.daum.net/ubuntu-releases/10.04/
     ubuntu-10.04-desktop-i386.iso

   - http://mirror.khlug.org/ubuntu-releases/10.04/

 


3. VMWare7.1에서의 Ubuntu 10.04 설치
   1) New Virtual Machine
   2) Install disc image file(iso): ubuntu-10.04-desktop-i386.iso
   3) Full name: UbuntuSOA5
      User name: dev   <-- Ubuntu 로그인시 사용
      Password: 1234abcd
   4) VMWare 설치 폴더: F:/UbuntuSOA5/Ubuntu1004
   5) Customize Hardware: RAM 1024로 변경
  

 


[02] Ubuntu 10.04 설정

[참고] 인터넷이 안되는 경우의 설정

1) 화면 상단위 패널에서 ! 아이콘을 클릭하고 [VPN 연결 -->VPN 구성 --> 유선]에서 추가
    입력 정보는 윈도우의 네크워크 설정정보를 입력하되 IP는 다르게 지정.
    IP: 172.16.3.230
    Subnet Mask: 255.255.0.0
    Gateway: 172.16.0.1
    DNS: 168.126.63.1
 
2) 설정 후 'Auto eth0'선택하면 연결됨.


1. VMWare
   - View --> Autofit Guest
   - Full Screen

 


2. FireFox 한글 깨짐 설정
   - 브러우저 -- 보기 -- 문자 인코딩 -- EUC-KR로 변경

 


3. 한글 입출력을 위한 한글 언어팩 등록
   - Ubuntu -- System -- Administration -- Language Support -- Language Install/Remove 버튼 클릭
      , 언어 목록중에 '한국어' 선택후 '변경 사항 적용 버튼' 클릭
   - 재부팅하면 한글이 작동함.
   - 한글 변환: 좌측 Ctrl + Space Key

 


4. Ubuntu -- 시스템 -- 기본 설정 -- 모니터
     - 해상도 조절

 

5. Ubuntu -- 시스템 -- 기본 설정 -- 모양/ 화면 보호기

 


6. 바탕 화면 바꾸기.

 


7. 시간 변경
    시스템 -- 관리 -- 시간과 날짜 -- Asia/Seoul로 지정

 


8. 터미널
   - Ubuntu -- Applications -- Accessories -- Terminal
     (Ubuntu -- 프로그램 -- 보조 프로그램 -- 터미널)
   - 확대: Ctrl + Shift + +
   - 축소: Ctrl + -
 

 


[03] Ubuntu Linux 기본 명령어

1. 기본 콘솔 명령어
   1) pwd: 현재 폴더
   2) mkdir: 폴더 생성
   3) rmdir: 폴더 삭제
   4) cd   : 폴더 이동
   5) cd ..: 상위 폴더 이동, cd 명령뒤 공백 주의.
   6) ls   : 목록 간단히 출력
   7) ls -l: 목록 자세히 출력
   8) tar -xvf: 패키지를 열고 압축을 해제함.
   9) mv   : 파일 이동, mv [원본] [대상 경로]
  10) rm  : 파일 삭제
       rm -r : 디렉토리 삭제
       rm -rf : 디렉토리 내용을 포함한 전체 삭제
  11) cp -r [원본 파일 또는 대상 디렉토리] [대상 디렉토리]: 폴더의 모든 내용 복사
  12) shutdown -h now, halt: 시스템 종료

 


2.  root 패스 변경: 최초 설치시 패스워드 설정이 안되어 있음.
      sudo passwd root
      [sudo] password for dev: 일반 사용자 계정 비밀번호 입력
      Enter new UNIX password: 루트 비밀번호 입력
      Retype new UNIX password: 루트 비밀번호 재입력
      passwd: password updated successfully    

 


3. 심볼릭 링크 명령어
   1) /home/dev에서 실행되도록 파일 링크 등록.
    sudo -s
    root@ubuntu:~# ln -s /home/dev/201006_android_202/FileZilla3/bin/filezilla filezilla
    ./filezilla


   2) 링크 삭제
    rm filezilla

 


4. 권한(permission)의 변경

    1) ls -l, ls al로 권한 목록의 출력


    2)  소유자(사용자, user), 그룹(group), 다른 사용자(방문자, everyone)
         drwx------  2 dev  dev     4096 2010-06-09 17:57 Desktop  : 폴더
         lrwxrwxrwx  1 root root      25 2010-06-10 17:30 ecp -> /home/dev/eclipse/eclipse: 링크
         -rwxr-xr-x 1 dev dev    5 2010-06-15 15:38 per.txt              : 파일
        

    3) Octal mode로 지정
         r  w  x
         4 2 1

         rwxr-xr-x의 지정: # chmod 755 ./per.txt


    4) 그룹과 유저의 변경
         $ sudo -s
         - 하나의 파일 변경
         root@ubuntu:~/temp# chown dev.dev per.txt

         -R은 하위 폴더의 모든 파일을 권한 변경
         # chown -R root.root ./temp
         # chown -R dev.dev ./temp

 

 

[04] JAVA 설치

[다운로드 폴더 설정]
  dev@ubuntu:~$ pwd
  /home/dev
  dev@ubuntu:~$ mkdir setup
  dev@ubuntu:~$ cd setup
  dev@ubuntu:~/setup$ ls -l


1. http://java.sun.com에서 ' jdk-6u21-linux-i586.bin' 파일을 다운.

 


2. 실행 권한 지정
   dev@ubuntu:~/setup$ sudo chmod 755  jdk-6u21-linux-i586.bin

   - 파일명이 실행 할 수 있는 초록색으로 변경됨(permission 변경).

 


3. 설치
./jdk-6u21-linux-i586.bin

 


4. root 권한 획득
   sudo -s

 


5. path 설정
   - 경로 구분자: ":"
   - 변수명은 $으로 시작
   - 현재 경로 확인
   root@ubuntu:~# pwd
   /home/dev

   root@ubuntu:~# ls -al
   root@ubuntu:~# gedit .bashrc

   - 기존 경로의 확인
     echo $PATH

   - 아래의 내용을 파일 맨 아래에 추가할것.
--------------------------------------------------------------------------------------
# java JRE
JRE_HOME=/home/dev/setup/jdk1.6.0_21/jre
export PATH=$PATH:$JRE_HOME/bin

# java Compiler
JAVA_HOME=/home/dev/setup/jdk1.6.0_21
export PATH=$PATH:$JAVA_HOME/bin

CLASSPATH=.:$JAVA_HOME/jre/lib/*:$JAVA_HOME/lib/tools.jar
--------------------------------------------------------------------------------------

   - 변경된 소스 적용
   source .bashrc
 

 

6. 새로운 터미널을 열어 확인 합니다.

   java -version
   javac

 

 

 

[05] Eclipse install
     - http://www.eclipse.org

1. Eclipse galileo 설치
   1) Linux Eclipse download to install_backup
      - eclipse-jee-galileo-SR2-linux-gtk.tar.gz

   2) 압출 풀기
       cd  setup
       tar -xvf eclipse-jee-galileo-SR2-linux-gtk.tar.gz

   3) Eclipse 이동
      dev@ubuntu:~/setup$ mv eclipse /home/dev

   4) 작업 폴더 생성
      dev@ubuntu:~$ mkdir workspace_android

   5) 실행
      dev@ubuntu:~$ cd eclipse
      dev@ubuntu:~/eclipse$ ./eclipse

   6) /home/dev에서 실행되도록 파일 링크 등록.
      root@ubuntu:~# ln -s /home/dev/eclipse/eclipse ecp
      root@ubuntu:~$ ./ecp
  
   ★ eclipse 는 dev 계정 권한으로 설치가되어 있음으로 root에서 실행시 AVD같은 툴에서 에러가
       발생 할 수 있음으로 dev계정으로 나와서 Eclipse를 실행해야 합니다.

 

 

2. 실행 아이콘의 생성
   - 바탕화면에 실행 아이콘을 만들고 eclipse 폴더로 JRE를 복사 할 것.

dev@ubuntu:~$ pwd
/home/dev
dev@ubuntu:~$ cp -r jdk1.6.0_20/jre eclipse

 

 


[06] Google 크롬 브러우저 설치
       - http://www.google.co.kr ---> deb 파일 다운로드
       sudo dpkg -i google-chrome-stable_current_i386.deb

 

 
 
 

Posted by ▶파이팅◀
이전버튼 1 2 3 4 5 6 7 8 ··· 36 이전버튼

블로그 이미지
Let's start carefully from the beginning
▶파이팅◀

태그목록

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

최근에 올라온 글

최근에 달린 댓글

글 보관함