반응형

안드로이드 어플을 개발하다보면 진동효과를 사용하고 싶을때가 있다.


기본적으로 모바일기기이다 보니 사운드효과보다는 손으로 잡고잇기에 진동효과가 더 감지하는 데에는 좋다.


이미 안드로이드에서는 그 방법에 대한 클래스가 만들어져있으므로 우리는 객체를 만들고 사용하기만 하면 된다.


Vibrator라는 클래스로부터 객체를 만들어서 거기에 맞는 사용법에 따라 사용하면된다.

사용법은 간단하다.!!!


아래처럼 진동값

Vibrator vibe = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);   

vibe.vibrate(값);                                                   //( 값 / 1000)초 동안 진동이 울린다.     

//vibe.vibrate(패턴, 0)                                          //패턴(진동,무진동)에 맞게 설정가능


기본적인 소스사용법은 이렇지만 빼먹으면 안돼는 설정이 있는데

AndroidManifest.xml에서 permission권한을 주어야한다.

<uses-permission android:name="android.permission.VIBRATE"></uses-permission>


이렇게 설정이 완료되면 어플에서도 개발하여 사용할 수 있다.


반응형
블로그 이미지

Mr.비타민

,
반응형

Thread를 이용하여 타이머를 만드는 방법중인 하나인 (마지막시간-시작한시간)을 계산하여 출력하는 방법을 사용해보려고한다.

 

Thread t = new Thread(new Runnable() {
	public void run() {
         //첫 시작한 현재시간
		final long start = System.currentTimeMillis();
         //시간포맷팅을 위한 포맷설정
		final SimpleDateFormat sdf = new SimpleDateFormat("mm:ss:SSS");
		
		while (!(t.isInterrupted())) {
			runOnUiThread(new Runnable() {
				public void run() {
                    //쓰레드가 돌때마다 계속 현재시간 갱신
					long end = System.currentTimeMillis();
                    //진행된시간을 계산하여 포맷에 맞게 TextView에 뿌리기
					dc.setText(sdf.format(end - start).substring(0, 8));
				}
			});
            //0.01초마다 Thread돌리기
			SystemClock.sleep(10);
		}
	}
});
t.start();
 이렇게 하게되면 00:00:00 의 형식으로 뷰에 뿌릴수가 있다
반응형
블로그 이미지

Mr.비타민

,
반응형

흔히 Java를 사용하다가 안드로이드로 넘어오게되면 Thread.stop(), Thread.destroy가 안먹히게 된다.

 

그래서 안드로이드에서는 interrupt()를 사용하게 되는데 이것마저 적용이 안될때가 있다.

 

그럴때는 Thread의 isInterrupt()를 while의 조건으로 넣어주면 interrupt()메소드를 실행했을때 멈추게 할수 있다.

 

Thread t = new Thread(new Runnable() {
	public void run() {
		while (!(t.isInterrupted())) {//Interrupt메소드가 호출되면 중지
			runOnUiThread(new Runnable() {
				public void run() {
					//Thread로 UI를 변경하고자한다면 
				}
			});
			SystemClock.sleep(10);
		}
	}
});
사용하고자하는 곳에서 Interrupt()를 호출하게 된다면 중지되게 된다.
반응형
블로그 이미지

Mr.비타민

,
반응형


1. JDK 설치하기

2. 안드로이드 SDK 설치하기


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

2. 안드로이드 SDK 설치하기


안드로이드 SDK에는 개발에 필요한 API와 에뮬레이터가 포함되어 있다.

최근 안드로이드SDK에는 이클립스도 포함되어 있어서 따로 이클립스를 설치할 필요가 없다.

Android SDK-Bundle이라고해서 기본적으로 이클립스에 셋팅해야할 부분이 자동적으로 다되어있다.

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

 

자신의 OS버전에 맞는것을 선택후 다운로드!!



압축을 풀고 이클립스 폴더에있는 이클립스를 실행시킨다.!

처음에뜨는 workspace는 작업할 위치로 설정해주면되고, 실행하여 들어가게되면

위에 메뉴아이콘중에 빨간표시되있는것을 선택하면 안드로이드 디바이스 버전에 맞게 API를 설치할수있다.



원하는 버전을 다운받은후! New - Android Project 를 만들어서 개발하면 된다!

반응형

'IT관련 > MobileWeb' 카테고리의 다른 글

안드로이드&웹앱&모바일웹앱 작업환경구축(JDK)  (0) 2014.05.16
블로그 이미지

Mr.비타민

,
반응형


1. JDK 설치하기

2. 안드로이드 SDK 설치하기


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

1. JDK 설치하기


안드로이드는 Java Development Kit인 JDK를 사용하기때문에 꼭 필요한 툴입니다.

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

위 주소로 가서 JDK를 자신의 OS에 맞게 설치하여야합니다.




JDK를 받고 사용자지정폴더에 설치하면 JDK설치는 끗~!

다음으로 환경변수설정이 남았습니다.


환경변수설정을 위해서는 내컴퓨터->시스템속성->고급시스템설정->고급탭의 환경변수를 선택하면됩니다.




JAVA_HOME과 JRE_HOME이 없다면 새로만들기 / 있다면 편집을 선택하셔서 입력해주면된다!

JAVA와 JRE가 버전 및 설치경로에 따라 달라질수 있으니 본인의 경로를 넣어주면 됀다.


Path는 JAVA => %JAVA_HOME%\bin;    /   JRE => %JRE_HOME%\bin;  을 추가하면 된다.

이로서 자바설정은 끗!

반응형

'IT관련 > MobileWeb' 카테고리의 다른 글

안드로이드&웹앱&모바일웹앱 작업환경구축(SDK)  (0) 2014.05.16
블로그 이미지

Mr.비타민

,
반응형

안드로이드에서 서비스(Service)는 화면없이 동작하는 프로그램이라고 할 수 있다.

액비티비(Activity)는 화면이 종료되면 응용프로그램이 작동하지않지만 서비스는 백그라운에서 실행되기때문에 화면과 관계없이 동작한다.

일반적으로 서비스는 onStartService()로 요청을 받고 onCreate(), onStartCommand()가 기본적으로 실행되어 서비스가 계속적으로 백그라운드에서 돌게 된다. 서비스 중지 요청을 받게되면 onDestroy()가 호출되어 서비스가 종료되게 된다.

이 서술에 관한 내용은 다음 그림과 같다. 

왼쪽은 데몬형식이고, 오른쪽은 원격호출인터페이스 서비스의 경우이다.





Mservice.java

public class Mservice extends Service{
	@Override
	public IBinder onBind(Intent intent){
		return null;
	}
	@Override
	public void onCreate(){
		android.util.Log.i("서비스 테스트", "onCreate()");
		super.onCreate();
	}
	@Override
	public void onDestroy(){
		android.util.Log.i("서비스 테스트","onDestroy()");
		mp.stop();
		super.onDestroy();
	}
	@Override
	public void onStartCommand(Intent intent, int flags, int startId){
		android.util.Log.i("서비스 테스트","onStartCommand()");
		mp = MediaPlayer.create(this. R.raw.song1);
		mp.setLooping(true);
		mp.start();
		return super.onStartCommand(intent, flags, startId);
	}
}


MainActivity.java
public class MainActivity extends Activity{
	Intent intent;
	Button btnStart, btnStop;
	@Override
	public void onCreate(Bundle savedInstanceState){
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		setTitle("서비스 테스트 예제");

		intent = new Intent(this, Mservice.class);
		btnStart = (Button)findViewById(R.id.btnStart);
		btnStop = (Button)findViewById(R.id.btnStop);

		btnStart.setOnClickListener(new View.OnClickListener(){
			public void onClick(View v){
				startService(intent);
				android.util.Log.i("서비스 테스트","startService()");
			}
		});
		btnStop.setOnClickListener(new View.OnClickListener(){
			public void onClick(View v){
				stopService(intent);
				android.util.Log.i("서비스 테스트","stopService()");
			}
		});
	}
}
Service가 시작될경우는 startService()를 Service가 정지될경우 stopService()를 넣으면된다. LifteCycle은 startService()->onCreate()->onStartCommand()->stopService()->onDestroy() 순이 된다.
반응형
블로그 이미지

Mr.비타민

,
반응형


데이터베이스를 이용해 데이터를 관리하기 위해서는 우선 테이블을 생성해야한다.

여기서 잠깐 ! !

DDL이란 무엇인가?

DDL(Data Definition Language)라고 해서 데이터를 정의하는 목적으로 생성,추가,변경 등을 하는 언어이다. 이에 해당하는 종류로는 CREATE, DROP, ALTER, TRUNCATE, RENAME, COMMENT 등이 있다.




1) CREATE : 데이터베이스 객체를 생성합니다.

그럼 우선적으로 테이블생성에 대해 알아보겠다.
테이블 생성하는 쿼리문으로는 아래와 같다.

 CREATE TABLE 테이블명
 (컬럼명 자료형)

 


여기서 컬럼명은 사용자가 지정가능하지만 자료형은 그곳에 데이터를 저장하는 자료에 따라 달라진다.

자료형으로는 여러가지가 있는데 다음과 같다.

 자료형 설명
 CAHR(N)  주어진 크기만큼 고정 길이의 문자 저장
 (1Byte ~ 2000Byte)
 VARCHAR2(N)  주어진 크기만큼 가변 길이의 문자 저장
 (1Byte ~ 4000Byte)
 NVARCHAR2(N)  국가별 국가 집합에 따른 크기의 문자 또는 바이트의 가변 길이 문자(1Byte ~ 4000Byte)
 NUMBER(p, s)  정밀도와 스케일로 표현되는 숫자
 DATE  날짜 형식을 저장
 ROWID  테이블내 행의 고유 주소를 가지는 64진수 문자
 해당 6Byte 또는 10Byte
 BLOB  대용량의 Binary Data를 저장, 최대 4GB
 CLOB  대용량의 Text Data를 저장, 최대 4GB
 BFILE  대용량의 Binary Data를 파일로 저장, 최대 4GB
 TIMESTAMP(n)  DATE 형의 확장된 형태
 INTERVAL YEAR TO MONTH  년과 월을 이용하여 기간을 저장
 INTERVAL DAY TO SECOND  일, 시, 분, 초를 이용하여 기간 저장
 두 날짜 값의 정확한 차이를 표현하는데 유용


2) DROP : 데이터베이스 객체를 삭제합니다.

DROP TABLE 테이블명

 

3) ALTER : 기존에 존재하는 데이터베이스 객체를 다시 정의하는 역할을 합니다.

3-1)컬럼추가 : 새로운 컬럼을 추가하여 값을 지정할 수 있다.

ALTER TABLE 테이블명ADD(컬럼명 자료형)

 

3-2)컬럼변경 : 컬럼의 타입, 크기, 기본 값을 변경할 수 있다.

ALTER TABLE 테이블명MODIFY 컬럼명 자료형

 

3-3)컬럼제거 : 특정 컬럼과 컬럼의 데이터를 제거 할수 있다

ALTER TABLE 테이블명DROP COLUMN 컬럼명


4) RENAME : 데이터베이스의 컬럼명을 변경합니다.

RENAME 현재테이블명 TO 변경할테이블명

 


5) TRUNCATE : 테이블을 최초 생성된 초기상태로 만들며, ROLLBACK이 불가능합니다.

TRUNCATE TABLE 테이블명


반응형

'IT관련 > SQL' 카테고리의 다른 글

개발을 위한 MYSQL 설치  (0) 2018.03.16
SELECT 문자열포함한 내용 검색(like)  (0) 2014.08.21
SQL 관리자 / 사용자 관리  (2) 2011.10.10
기본적으로 제공되는 iSQL * Plus의 테이블  (0) 2011.10.10
SQL * Plus의 명령어  (0) 2011.10.09
블로그 이미지

Mr.비타민

,
반응형

SQL을 처음 설치하면 제공되는 계정은 SYSTEM계정과 Scott계정이 있습니다.

SYSTEM계정은 말그대로 관리자용 계정입니다. SQL서버자체를 관리할수있는 계정이며 관리자권한을 가지고 있습니다. Scott계정은 소스에도 오픈소스가 있듯이 모든 사용자들이 접근할수 있도록 만들어놓은 계정입니다. 설치시 계정의 비밀번호를 설정해둬야하는건 물론이죠.
여기서 관리자가 하는 일과 사용자가 할수 있는 일에 대해 간략히 설명하자면,

 

 



이렇듯 관리자와 사용자는 하는 일이 따로 정해져있습니다. 지금은 간략하게 테이블스페이스 생성, 사용자계정만드는 방법과 사용자권한 설정 및 시스템권한 설정에 대한 간단한 설명만하도록 하겠습니다.

우선 사용자계정을 만들기전에 테이블스페이스를 만든후 사용자 계정이 그 공간을 참고하도록 해야하는데, 시스템에 접근하는 명령어를 사용하기 위해서는 SYSTEM계정으로 접속하여야합니다. 현재 로그인한계정이 SYSTEM계정이라면 다음과 같은 명령어를 사용할수 잇습니다. 우선 테이블스페이스생성하는 명령어로는

CREATE TABLESPACE -테이블스페이스명-
DATAFILE '경로\테이블스페이스명.dbf' SIZE 용량(K/M);
[AUTO EXTEND ON NEXT 용량(K/M) MAXSIZE 용량(K/M);]

여기서 경로는 오라클이 설치된 경로입니다. 용량은 보통 10M를 사용하며, 사용용도에 따라서 용량을 지정해줄수있습니다. 아래의 []안에 있는 내용은 추가사항이므로 사용하여도 되고 사용하지 않아도 됩니다. AUTO EXTEND ON 구문을 쓰게되면 처음 지정해준 만큼의 공간을 다 사용하게 된다면 NEXT 용량만큼을 늘려주며 MAXSIZE를 넘지않게 만들어줍니다

그리고 다음은 사용자 계정생성인데, 사용자 계정은 아래와 같이 생성합니다.

CREATE USER -계정명- IDENTIFIED BY -패스워드-
DEFAULT TABLESPACE -테이블스페이스명-;

계정명과 패스워드를 지정할수 있으며, 그계정이 참고할 테이블스페이스도 지정할수 있습니다. 앞의 명령어에서 만든 테이블스페이스를 위의 테이블스페이스명을 넣는 자리에 넣어주기만하면 사용할수 있습니다. 테이블스페이스와 계정을 만들었다고해서 다끝난것이 아닙니다. 만약 본인의 계정이 Scott계정과 같이 검색 및 출력자료로서만 사용한다면, 굳이 권한은 필요없을 것이지만, SQL문을 공부하기위해서라면 UPDATE도 해야하며 뷰,테이블,인덱스 삽입/삭제 등 위해서는 권한을 부여해야합니다. 이러한 권한을 시스템 권한이라고 합니다. 권한은 대략 130개정도 되며, 자주사용하는 시스템 권한을 패키지처럼 사용할수 있는 명령어들이 있습니다.

GRANT CONNECT, RESOURCE TO -계정명-;

위의 명령어를 사용하면 거의 일반적인 권한은 설정된다고 보면됩니다.

이렇게 만들어진 계정을 이제 SQL문을 사용할수 있습니다.
반응형
블로그 이미지

Mr.비타민

,
반응형


제가 사용할 SQL은 iSQL * Plus라는 것인데요.

iSQL * Plus는 오라클 10g를 다운받아서 사용할수 있습니다.

현재 11g도 나와있지만 10g가 상용화되어있기에 저도 10g를 쓰고있어요.

오라클10g는 웹사이트(http://www.oracle.com/technology/software/products/database/oracle10g/index.html)에 접속하여 다운받을수 있습니다. 화면하단에서 Realease1을 찾아서 해당 OS에 맞는 버전을 설치하시기바랍니다.

오라클 10g iSQL * Plus에는 다음 3가지의 테이블이 관리자계정에 저장되어있습니다.
EMP Table, DEPT Table, SALGRADE Table 3가지의 테이블이 있습니다.

EMP Table

 




DEPT Table


 




 

SALGRADE Table


 



이 3가지 테이블은 앞에서 함수 및 쿼리사용법에 대해 쓰일 테이블예제들입니다.
반응형

'IT관련 > SQL' 카테고리의 다른 글

개발을 위한 MYSQL 설치  (0) 2018.03.16
SELECT 문자열포함한 내용 검색(like)  (0) 2014.08.21
테이블 생성 및 변경, 삭제하기(DDL)  (0) 2011.10.25
SQL 관리자 / 사용자 관리  (2) 2011.10.10
SQL * Plus의 명령어  (0) 2011.10.09
블로그 이미지

Mr.비타민

,
반응형

SQL * Plus 편집 명령과 파일 조작 명령

버퍼에 있는 내용을 나타내기 위한 LIST 명령어
SQL> select ename, sal*12
    2   from emp;
연봉을 구하기 위해선 위와 같이 입력합니다

이전에 사용한 쿼리문을 다시 한번 나타나기위해서는
SQL> list

위와 같이 입력하면
 SQL> list
     1   select ename, sal*12
     2*  from emp
SQL>

이런식으로 이전 쿼리문을 출력할수 있습니다.

명령어 버퍼의 각각의 줄은 번호가 부여되어 있으며, list 대신 줄여서 l 이라고축약표현을 써도 무방합니다.

버퍼에 저장된 쿼리문을 실행시키기위한 명령어(/, RUN)

 SQL> /

list로 버퍼에 저장된 쿼리문을 참고하여 /, R[un] 명령어로 버퍼의 쿼리문에 해당하는 출력문을 실행할수있다.

결과


-> iSQL*Plus에 기존에 저장된 내용을 활용하여 출력된 테이블

list와 마찬가지로 run또한 r이라고 축약표현을 써도 무방합니다.

반응형
블로그 이미지

Mr.비타민

,