태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

20130602-Linux 명령어 사용하기

 

Content_TopTitle_OS

 

  1. 시스템 정보 출력 명령어

    • man

      • 리눅스에서 사용되는 명령어에 대한 도움말 제공
      • 002
      • 003
    • cal & date
      • 원하는 연도의 달력 정보를 보여주거나 현재 시각을 보여
      • 004
    • who & whoami & finger & last
      • 현재 시스템을 사용 중이거나 마지막에 로그인한 사용자를 보여
      • 005
    • arch & hostname & uname
      • 머신 아키텍처, 운영체제, 커널 정보들을 보여
      • 006
    • free & vmstat
      • 현재 메모리 사용 상태에 대한 정보를 보여
      • 007
    • du & df
      • 디스크 사용 상태에 대한 정보를 보여줌
      • 008
      • 009
  2. 프로세스 관리 명령어

    1. ps -> 상세 실행 명령어 > ps –ef
      • 현재 시스템에서 실행중인 프로세스에 관한 정보를 보여줌
      • 010
    2. Top
      • CPU의 사용 현황을 보여줌
      • 011
    3. pstree
      • 현재 시스템에서 실행중인 프로세스들을 트리 구조로 출력
      • 012
    4. kill & killall
      • 실행중인 프로세스를 종료시킴
      • 실습 과정 ) 프로세스 정보를 먼저 찾음
      • Ps aux|grep firefox
        • 013
      • Kill 명령어를 사용하여 종료 후 종료되었는가 확인
      • kill -9 5367
      • grep aux|grep firefox
        • 014
  3. 디렉터리 명령어

    1. ls (list)
      • 현재 위치한 디렉토리 내에 있는 파일과 디렉토리의 내용을 보여줌
      • 015
    2. pwd (print working directory)
      • 시스템 내에서 작업을 수행하는 현재 위치의 디렉토리를 알려주는 명령어
      • 016
    3. mkdir (make directory)
      • 새로운 디렉토리를 만들어주는 명령어
      • 017
    4. rmdir (remove directory)
      • 특정 디렉토리를 삭제하는 명령어로서 내부에 아무런 파일이나 디렉토리가 없어야 함
      • 018
    5. cd (change working directory)
      • 현재의 작업 디렉토리에서 다른 디렉토리로 이동하기 위한 명령어
      • 019
  4. 파일 명령어

    1. Cat
      • 파일의 내용을 화면에 출력하는 명령어
      • 020
    2. More
      • 연속적으로 화면의 내용이 출력될 경우 페이지 단위로 출력하는 명령어
      • 021
    3. head & tail
      • 파일의 앞부분 10줄 혹은 뒷부분 10줄을 출력하는 명령어
      • 022
    4. cp (copy)
      • 파일이나 디렉토리를 다른 이름으로 복사하거나 다른 디렉토리로 복사하는 명령어
      • 023
    5. rm (remove file)
      • 시스템 내의 특정 파일을 삭제하는 명령어
      • 024
    6. chmod (change mode)
      • 특정 파일이나 디렉토리에 대한 접근 권한을 변경하는 명령어
      • 025
    7. ln (link) && 하드 링크 (hard link)
      • 하나의 특정한 파일(디렉토리)을 다른 파일(디렉토리) 이름으로도 사용하도록 하는 명령어
      • 026
    8. 심볼릭 링크 (symbolic link)
      • 다른 파일을 가리키는 링크 정보를 갖는 파일을 생성
      • 027
    9. mv (move file)
      • 파일/디렉토리의 이름을 변경하거나 위치를 이동시키는 명령어
      • 028
신고

Android - 시간 및 날짜와 관련된 위젯을 이용한 "날짜/시간 예약을 흉내 낸 앱" 만들기 (샘플)

이 게시물은 대학 수업 과정을 들으며 혼자 연습한 뒤에 공유하는 게시물입니다.

따라서 완성도가 떨어질 수 있으니, 욕하지 마세요 ㅠ..ㅠ

 

★ 구동할 최소 안드로이드 SDK 사양

        android:minSdkVersion="11"
        android:targetSdkVersion="16"

 

  • 시간 및 날짜와 관련된 위젯을 이용한 “날짜/시간 예약을 흉내 낸 앱” 만들기 (샘플)

    • Design
      • 002
    • src
      • MainActivity.java
      • package com.example.reservation;
        
        import android.app.Activity;
        
        import android.os.Bundle;
        
        import android.os.SystemClock;
        
        import android.view.Menu;
        
        import android.view.View;
        
        import android.view.View.OnClickListener;
        
        import android.view.ViewGroup;
        
        import android.widget.Button;
        
        import android.widget.Chronometer;
        
        import android.widget.DatePicker;
        
        import android.widget.RadioButton;
        
        import android.widget.RadioGroup;
        
        import android.widget.RadioGroup.OnCheckedChangeListener;
        
        import android.widget.TextView;
        
        import android.widget.TimePicker;
        
        import android.widget.Toast;
        
        public class MainActivity extends Activity implements OnClickListener, OnCheckedChangeListener {
        
            
        
            private Button buttonReservationStart;
        
            private Button buttonReservationComplete;
        
            private RadioGroup radioGroup;
        
            
        
            private DatePicker datePicker;
        
            private TimePicker timePicker;
        
            
        
            private Chronometer chronometerReservationTime;
        
            
        
            private TextView reservationDateTimeText;
        
            
        
            private TextView textReservationStatus;
        
            
        
            @Override
        
            protected void onCreate(Bundle savedInstanceState) {
        
                super.onCreate(savedInstanceState);
        
                setContentView(R.layout.activity_main);
        
                
        
                buttonReservationStart = (Button)findViewById(R.id.buttonReservationStart);
        
                buttonReservationStart.setOnClickListener(this);
        
                
        
                buttonReservationComplete = (Button)findViewById(R.id.buttonReservationCompleted);
        
                buttonReservationComplete.setOnClickListener(this);
        
                
        
                datePicker = (DatePicker)findViewById(R.id.datePicker);
        
                timePicker = (TimePicker)findViewById(R.id.timePicker);
        
                
        
                chronometerReservationTime = (Chronometer)findViewById(R.id.chronometerReservationTime);
        
                
        
                reservationDateTimeText = (TextView) findViewById(R.id.textReservatedDateTime);
        
                textReservationStatus = (TextView) findViewById(R.id.textReservationStatus);
        
                
        
                radioGroup = (RadioGroup)findViewById(R.id.radioGroup);
        
                radioGroup.setOnCheckedChangeListener(this);
        
                
        
                initViewObjects(false);
        
            }
        
            @Override
        
            public boolean onCreateOptionsMenu(Menu menu) {
        
                // Inflate the menu; this adds items to the action bar if it is present.
        
                getMenuInflater().inflate(R.menu.main, menu);
        
                return true;
        
            }
        
            
        
            /**
        
             * @see android.view.View.OnClickListener#onClick(android.view.View)    
        
             * @author        : minam.cho
        
             * @methodName    : onClick
        
             * @param v    
        
             */
        
            public void onClick(View v) {
        
                if(v instanceof Button) { // 클릭한 주체가 버튼이라면
        
                    Button clickButtonObj = (Button) v;
        
                    
        
                    //현재 어떤 버튼이 클릭되었는지 확인
        
                    if(R.id.buttonReservationStart == clickButtonObj.getId()) { //[1] 예약 시작 버튼일 경우
        
                        textReservationStatus.setText(getResources().getString(R.string.reservationStatusReservating));
        
                        
        
                        initViewObjects(true);
        
                        
        
                        Toast.makeText(MainActivity.this, "Start reservation from now!!", Toast.LENGTH_SHORT).show();
        
                        chronometerReservationTime.setBase(SystemClock.elapsedRealtime());
        
                        chronometerReservationTime.start();
        
                        
        
                        reservationDateTimeText.setVisibility(View.INVISIBLE);
        
                        reservationDateTimeText.setText(getResources().getString(R.string.none));
        
                        
        
                        if(radioGroup.getCheckedRadioButtonId() == R.id.radioChooseCalendar) {
        
                            datePicker.setVisibility(View.VISIBLE);
        
                            timePicker.setVisibility(View.INVISIBLE);
        
                        } else if(radioGroup.getCheckedRadioButtonId() == R.id.radioChooseTime){
        
                            datePicker.setVisibility(View.INVISIBLE);
        
                            timePicker.setVisibility(View.VISIBLE);
        
                        }
        
                        
        
                    } else if(R.id.buttonReservationCompleted == clickButtonObj.getId()) { //[2] 예약 완료 버튼일 경우
        
                        textReservationStatus.setText(R.string.setReservationCompleted);
        
                        
        
                        String reservationCompleted = String.format(getResources().getString(R.string.reservationCompleted));
        
                        
        
                        initViewObjects(false);
        
                        
        
                        Toast.makeText(MainActivity.this, "Reservation completed!!", Toast.LENGTH_SHORT).show();
        
                        int day = datePicker.getDayOfMonth();
        
                        int month = datePicker.getMonth() + 1;
        
                        int year = datePicker.getYear();
        
                        int hour = timePicker.getCurrentHour();
        
                        int minute = timePicker.getCurrentMinute();
        
                        reservationDateTimeText.setVisibility(View.VISIBLE);
        
                        reservationDateTimeText.setText("예약날짜: "+year+""+month+""+day+"일("+hour+":"+minute+")"+reservationCompleted);
        
                        
        
                        chronometerReservationTime.stop();
        
                    }
        
                }
        
            }
        
            @Override
        
            public void onCheckedChanged(RadioGroup rg, int arg1) {
        
                RadioButton radButton = (RadioButton) findViewById(rg.getCheckedRadioButtonId());
        
                
        
                if(radButton.getId() == R.id.radioChooseCalendar) {
        
                    datePicker.setVisibility(View.VISIBLE);
        
                    timePicker.setVisibility(View.INVISIBLE);
        
                } else if(radButton.getId() == R.id.radioChooseTime){
        
                    datePicker.setVisibility(View.INVISIBLE);
        
                    timePicker.setVisibility(View.VISIBLE);
        
                }
        
            }
        
            
        
            private void initViewObjects(boolean makeDisable) {
        
                ViewGroup itemGroup = (ViewGroup)findViewById(R.id.itemGroup);
        
                
        
                for(int i=0; i < itemGroup.getChildCount(); i++) {
        
                    View v = (View)itemGroup.getChildAt(i);
        
                    
        
                    v.setEnabled(makeDisable);
        
                }
        
            }
        
        }
        
    • res/layout
      • activity_main.xml
      • <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        
            xmlns:tools="http://schemas.android.com/tools"
        
            android:layout_width="match_parent"
        
            android:layout_height="match_parent"
        
            android:paddingBottom="@dimen/activity_vertical_margin"
        
            android:paddingLeft="@dimen/activity_horizontal_margin"
        
            android:paddingRight="@dimen/activity_horizontal_margin"
        
            android:paddingTop="@dimen/activity_vertical_margin"
        
            tools:context=".MainActivity" >
        
            <LinearLayout
        
                android:layout_width="wrap_content"
        
                android:layout_height="wrap_content"
        
                android:layout_alignParentBottom="true"
        
                android:layout_alignParentLeft="true"
        
                android:layout_alignParentRight="true"
        
                android:layout_alignParentTop="true"
        
                android:gravity="fill_vertical|center_horizontal"
        
                android:orientation="vertical" >
        
                <LinearLayout
        
                    android:layout_width="match_parent"
        
                    android:layout_height="wrap_content" >
        
                    <TextView
        
                        android:id="@+id/txtCurrentTime"
        
                        android:layout_width="wrap_content"
        
                        android:layout_height="wrap_content"
        
                        android:text="@string/currentTime" />
        
                    <DigitalClock
        
                        android:id="@+id/digitalClock1"
        
                        android:layout_width="wrap_content"
        
                        android:layout_height="wrap_content"
        
                        android:text="" />
        
                </LinearLayout>
        
                <LinearLayout
        
                    android:layout_width="match_parent"
        
                    android:layout_height="wrap_content" >
        
                    <TextView
        
                        android:id="@+id/textReservationStatus"
        
                        android:layout_width="wrap_content"
        
                        android:layout_height="wrap_content"
        
                        android:text="@string/reservationStatusWaiting"
        
                        android:textAppearance="?android:attr/textAppearanceMedium" />
        
                </LinearLayout>
        
                <LinearLayout
        
                    android:layout_width="match_parent"
        
                    android:layout_height="wrap_content"
        
                    android:gravity="center" >
        
                    <TextView
        
                        android:id="@+id/textView1"
        
                        android:layout_width="wrap_content"
        
                        android:layout_height="wrap_content"
        
                        android:text="@string/reservatedDuringTime"
        
                        android:textAppearance="?android:attr/textAppearanceLarge" />
        
                    <Chronometer
        
                        android:id="@+id/chronometerReservationTime"
        
                        android:layout_width="wrap_content"
        
                        android:layout_height="wrap_content"
        
                        android:text="@string/chronoText" />
        
                    <TextView
        
                        android:id="@+id/textView2"
        
                        android:layout_width="wrap_content"
        
                        android:layout_height="wrap_content"
        
                        android:text="@string/duringTime"
        
                        android:textAppearance="?android:attr/textAppearanceSmall" />
        
                </LinearLayout>
        
                <Button
        
                    android:id="@+id/buttonReservationStart"
        
                    android:layout_width="match_parent"
        
                    android:layout_height="wrap_content"
        
                    android:layout_marginLeft="0dp"
        
                    android:gravity="center_vertical|center_horizontal"
        
                    android:text="@string/reservationStart" />
        
                <LinearLayout
        
                    android:id="@+id/itemGroup"
        
                    android:layout_width="match_parent"
        
                    android:layout_height="0dp"
        
                    android:orientation="vertical" 
        
                    android:layout_weight="1">
        
                    <RadioGroup
        
                        android:id="@+id/radioGroup"
        
                        android:layout_width="match_parent"
        
                        android:layout_height="wrap_content" >
        
                        <RadioButton
        
                            android:id="@+id/radioChooseCalendar"
        
                            android:layout_width="wrap_content"
        
                            android:layout_height="wrap_content"
        
                            android:checked="true"
        
                            android:text="@string/setDate" />
        
                        <RadioButton
        
                            android:id="@+id/radioChooseTime"
        
                            android:layout_width="wrap_content"
        
                            android:layout_height="wrap_content"
        
                            android:layout_weight="1"
        
                            android:text="@string/setTime" />
        
                    </RadioGroup>
        
                    <DatePicker
        
                        android:id="@+id/datePicker"
        
                        android:layout_width="match_parent"
        
                        android:layout_height="match_parent" />
        
                    <TimePicker
        
                        android:id="@+id/timePicker"
        
                        android:layout_width="match_parent"
        
                        android:layout_height="match_parent"
        
                        android:visibility="invisible" />
        
                </LinearLayout>
        
                <LinearLayout
        
                    android:layout_width="match_parent"
        
                    android:layout_height="wrap_content"
        
                    android:background="#FDF5E6"
        
                    android:textAlignment="center" >
        
                    <Button
        
                        android:id="@+id/buttonReservationCompleted"
        
                        android:layout_width="wrap_content"
        
                        android:layout_height="wrap_content"
        
                        android:text="@string/setReservationCompleted" />
        
                    <TextView
        
                        android:id="@+id/textReservatedDateTime"
        
                        android:layout_width="wrap_content"
        
                        android:layout_height="wrap_content"
        
                        android:text="@string/none"
        
                        android:visibility="invisible" />
        
                </LinearLayout>
        
            </LinearLayout>
        
        </RelativeLayout>
    • res/values
      • strings.xml
      • <?xml version="1.0" encoding="utf-8"?>
        
        <resources>
        
            <string name="app_name">Reservation</string>
        
            <string name="action_settings">Settings</string>
        
            <string name="hello_world">Hello world!</string>
        
            <string name="title">예약을 해 봅시다</string>
        
            <string name="currentTime">현재 시간: </string>
        
            <string name="reservatedDuringTime">예약에 걸린 시간: </string>
        
            <string name="reservationStatusTitle">예약 진행 상태: </string>
        
            <string name="reservationStatusWaiting">대기 중</string>
        
            <string name="reservationStatusReservating">예약 중</string>
        
            <string name="reservationStart">예약 시작</string>
        
            <string name="reservationCompleted">예약됨</string>
        
            <string name="chronoText">%s</string>
        
            <string name="duringTime"></string>
        
            <string name="setDate">날짜 설정(DatePicker)</string>
        
            <string name="setTime">시간 설정(TimePicker)</string>
        
            <string name="setReservationCompleted">예약 완료</string>
        
            <string name="none">-</string>
        
        </resources>
신고

안드로이드 시작하기 Chapter 1 - 4 (설치+이클립스 연동)


목차

1. 안드로이드 SDK 다운로드

2. 자바 JDK(1.5 or Higher Version) 다운로드

3. 이클립스 3.5(3.4 or Higher Version) 다운로드

4. 이클립스와 안드로이드 연동하기

5. Hello World 작성하기.


1. 안드로이드 SDK 다운로드

현재 안드로이드 SDK 의 최신버전은 2.2 입니다.

웹 페이지 주소http://developer.android.com/sdk/index.html 에서 다운받으실 수 있습니다.

개발하고자 하는 운영체제(Platform)에 맞게 다운받으시면 됩니다.



안드로이드 SDK의 실지적인 개발 관련 핵심 부분은 이후에 이클립스에서 개발SDK를 다운받게 되며, 이곳에서는

안드로이드의 에뮬레이터와 부가적인 Tool 등을 받게 됩니다.


2. 자바 JDK(1.5 or Higher Version) 다운로드

안드로이드는 자바 1.5 이상에서 문제없이 동작합니다.

따라서, 아래의 주소를 통하여 1.5 이상버전의 자바를 다운받아 설치(복사)합니다.

주소http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html


3. 이클립스 3.5(3.4 or Higher Version) 다운로드

안드로이드를 개발할 때, 불필요한 플러그인(JAVA EE 혹은 Flex 등)이 많이 포함된 이클립스 보다는 순정의 이클립스로 개발하는 것을 추천해 드립니다. 안드로이드 SDK 와의 연동에 문제가 생길 수도 있으며, 개발 시에 충돌이 생길 수 있기 때문입니다.

필자는 따라서, 개발할 때는 항상 Flex (FLEX SDK 3)용, 순수 JSP (JAVA EE) 등을 개발할 때 사용하는 것을 모두 각각 사용합니다.

이클립스는 아래의 주소에서 다운받을 수 있습니다.

주소http://www.eclipse.org/downloads/

3.5(Galileo)받기

(http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/SR2/eclipse-java-galileo-SR2-win32.zip)

최근에는 Windows 7의 등장으로 인해 64Bit 로의 접근이 용이해져 많은 사용자들이 64bit 를 사용하고 있는 추세입니다. 그래서 필자 또한 Windows 7 64Bit를 사용하고 있는데요. 이에 맞춰서 이클립스 또한 64Bit용 버전을 따로 제공하고 있습니다.

각 운영체제 (Platform)에 맞는 것을 다운받아 사용하시면 됩니다.

1. 이클립스와 안드로이드 연동하기

4.1 이클립스용 안드로이드 플러그인 다운받기

아래의 주소로 이동하여 이클립스용 안드로이드 ADT 플러그인을 다운받을 수 있습니다.

(http://developer.android.com/sdk/eclipse-adt.html)

설치한 이클립스의 버전에 따라서, 위의 화면과 같이 설명된 설치방법을 확인하면서 진행하시면 됩니다.

필자는 3.5 버전을 기준으로 설명을 진행하겠습니다.

1. 이클립스를 실행하여 상단 메뉴의 Help -> Install New Software.로 들어갑니다.


2. Install 마법사에서 Add… 를 클릭합니다.

3. Add Site 창에서 이클립스 3.5에 맞는 플러그인 이름(사용자 지정)과 경로를 지정합니다.

경로: https://dl-ssl.google.com/android/eclipse/

4. 경로를 입력하고 OK 를 클릭하면 아래와 같은 설치가능 목록이 나타나게 됩니다.

모두 선택하고 Next 를 클릭합니다.

5. Next 를 클릭하면 약관에 동의하라는 창이 뜨게 되고, 이후에 설치를 진행합니다.


6. 가끔 위의 주소로 설치되지 않는 경우가 있는데, 플러그인 설치 안내 페이지에도 나와있듯이, Https 의 s를 제외하고 Http 로 수정하여 설치하면 됩니다.

(Note: If you have trouble acquiring the plugin, you can try using "http" in the URL, instead of "https" (https is preferred for security reasons).

7. 설치 중에 보안 경고가 나오게 되는데, 계속 진행하면 됩니다.

8. 설치가 끝나면 다시 시작합니다.

9. 설치가 성공적으로 완료되면, 상단의 툴바에 아래와 같은 아이콘이 보이게 되면, 성공적으로 설치가 된 것입니다. 하지만 모든 과정이 끝난 것이 아니고 안드로이드 SDK 를 플러그인을 통하여 설치해야 합니다.

  • 다음 장 예고

4. 이클립스와 안드로이드 연동하기

5. Hello World 작성하기.

저작자 표시 비영리 변경 금지
신고
|  1  |  2  |  3  |