[이클립스] Android 프로젝트 가져오기 및 AVD(가상 단말기) 설치 및 디버그 모드 활용

반응형

이전에 작성한 게시물(http://sysdocu.tistory.com/725) 그대로 환경을 구축하고, 외부에서 (별도로) 진행되었던 프로젝트를 가져와서 빌딩하면 모듈이 없다는 에러 메세지가 출력 될 때가 있습니다.

이때는 아래와 같은 절차로 진행이 가능니다.



[프로젝트 가져오기]

이클립스 실행 > 왼쪽 'Package Explorer' 빈 공간에서 마우스 우클릭 > Import 선택 >  'Android' 의 'Existing Android Code Into Workspace' 선택 > Next > 'Root Directory' 찾아보기에서 해당 프로젝트 디렉토리 선택 > Next > Finish


* 가져온 프로젝트 빌딩하기

이클립스 실행 > 왼쪽 'Package Explorer' 빈 공간에서 해당 프로젝트를 마우스 우클릭 > 'Debug As' 의 'Android Application' 선택

(만약 하단의 AVD 설치 또는 디버그 모드를 선택 하였다면, 이 과정에서 해당 단말기에 패키지가 자동설치, 구동 됩니다.)



[AVD 설]

빌딩된 apk 를 핸드폰으로 다운로드하여 설치하고, 실행하여 동작이 잘되는지 여부를 체크하는것이 번거로우므로 컴퓨터에 가상 모바일단말기를 설치하여 시뮬레이션 해볼 수 있습니다.


상단 메뉴 'Windows' 선택 > 'Android Virtual Device Manager' 선택 > Create 선택 후, 아래 내용 입력


- AVD Name : test

- Device : Nexus 7 (2012) (7.0", 800 x 1280: tvdpi)

- CPU/ABI : MIPS (mips)

- Skin : No skin

- Front Camera : None

- Memory Options: RAM: 1024  VM Heap: 32

- Internal Storage : 512 MiB


> OK



[Debug mode 선택]

사용하고 있는 스마트폰과 컴퓨터와 연결한 뒤, 스마트폰에서 '개발자 Debug mode' 를 허용하면, 위에서 설명한 'Android Virtual Device (AVD) Manager' 에서 스마트폰이 잡히게 됩니다. 이를 선택하게 되면, 추후 프로젝트를 빌딩할때 스마트폰에 직접 apk 패키지가 설치, 실행되게 됩니다.



[작성] 차동훈


반응형

댓글()

배열 출력하기 (foreach)

프로그래밍/PHP|2015. 1. 27. 11:50
반응형

PHP 연관 배열 (foreach 사용하기) 


저번엔 PHP에서 배열을 사용하는 방법에 대해서 알아봤던 적이 있다. 그 중, 연관배열이란 것이 있었는데

이번엔 연관배열에 대해서 더욱 자세히 알아본다. 


  연관 배열 


인덱스로 배열의 엘리먼트를 찾는 것은 괜찮은 방법이지만, 어떤 숫자가 어떤 결과를 가지고 있는지 알아야 다른 작업을 할 수 있다. 이런 부분을 해소 할 수 있는것이 연관배열이다. 


연관 배열의 아이템 추가 및 획득 

$sameToken_arr["철수"] = "영희";

$sameToken_arr["탐"] = "크루즈";

$sameToken_arr["해리"] = "포터";

 


echo($sameToken_arr["철수"] ."<br/>");

echo($sameToken_arr["탐"]."<br/>");

echo($sameToken_arr["해리"]."<br/>"); 


출력 : 

영희

크루즈

포터



일단 위의 것이 저번에 포스팅했던 연관 배열에 관한 내용. 


PHP 에서는 연관배열을 이용하여 해쉬처럼 사용할 수도 있다. 이건 뭐 굉장히 매력적인것 같다. 

연관배열에 값을 넣는 방법은 위의 방법외에도 다른 방법이 있다. 


 $arr = array($key => $value); 


그럼 이제 연관 배열의 값을 가져오는 방법을 알아보자. 


연관배열을 출력하기 위해서 지저분하게 for 문이나 while 문을 돌릴 필요는 없다. 


  foreach() 사용 


$sameToken_arr["철수"] = "영희";

$sameToken_arr["탐"] = "크루즈";

$sameToken_arr["해리"] = "포터";


foreach($sameToken_arr as $key){

echo $key."</br>"; 

}


출력 : 

영희

크루즈

포터 


foreach($sameToken_arr as $key=>$value){

echo $key . " : " . $value . </br>; 

}


출력 : 

철수 : 영희

탐 : 크루즈 

해리 : 포터 


[출처] 초보개발자 이야기 (http://ra2kstar.tistory.com/114)

반응형

댓글()

iframe 자식창에서 메인창의 url 변경하기

반응형

<script>

    window.parent.location.href="/index.html";

</script>

반응형

댓글()

자식창과 부모창의 관계, iframe 내부와 메인페이지와의 관계제어

반응형

javascript 에서 새로 띄운 자식창과 부모창, iframe 내부와 메인페이지간의 제어 방법에 대한

다양한 예제를 학습해본다.

 

1. 자식창에서 부모창의 특정 Form 에 데이터를 집어넣고 싶을 때

자식창에서 부모창을 가리킬 때 opener 객체를 사용한다. document.Form.input 은 부모창에

속해있는 요소이다.

opener.document.Form.input.value = “”;

 

2. 자식창에서 부모창의 페이지를 이동시키고 싶을 때

부모창을 원하는 페이지로 이동시킨후 자식창(자기자신은 닫는다.

window.opener.location.href = “/admin/login.jsp” ;

window.close();

 

3. 자식창에서 부모창을 새로고침하고 싶을 때

if (!opener.closed){

           opener.document.location.reload();

           window.close();

}

 

4. iframe 내부에서 외부에 있는 메인페이지의 특정 Form 에 값을 집어넣고 싶을 때

iframe 에서 메인을 가리킬때는 parent 객체로 접근한다.

parent.Form.input.value = “”;

 

5. iframe 내부에서 외부에 있는 메인페이지의 스크립트 함수를 실행하고자 할 때

parent.[메인함수명]

parent.DoSend();

 

6. 메인에서 iframe 의 페이지를 이동시키고 싶을 때

[iframe 이름].location.href

frame.location.href=”www.naver.com”;

<iframe name=”frame”>

####

</iframe>

 

7. 위의 2가지 경우를 섞은것이다부모창의 iframe 에서 새창을 하나 띄웠다.

자식창에서 부모창의 페이지를 이동하고 싶은것이다.

이것은 부모창의 iframe 에 갔다가 메인으로 다시 이동해야한다.

2가지의 방법이 있는데 첫번째는 window.opener 를 호출하여 iframe으로간뒤

parent 로 메인에 접근한다.

window.opener.parent.location.href = “URL”;

 

두번째는 top 을 이용해서 부모창을 바로 찾는것이다

top.opener.location.href = “URL”;


[출처] 녹두장군 - 상상을 현실로... (http://mainia.tistory.com/423)

반응형

댓글()

[javascript] 라디오버튼 클릭시 페이지 이동

반응형
<script type="text/javascript"> 
function hospital(v) { 
 location.href="test1.php?tt_kb="+v; 
</script>

<input type="radio" name="tt_kb" value="happy" onclick="javascript:hospital('happy')"> 행복
<input type="radio" name="tt_kb" value="love" onclick="javascript:hospital('love')"> 사랑


반응형

댓글()

URL 의 한글 인자값 넘기기

프로그래밍/PHP|2015. 1. 27. 11:49
반응형

외부 URL 로 한글인자값을 넣어 보내면 안되는것은 아래처럼 URL 인코딩으로 넘기면 됩니다.


잘못된 예) insert.php?message=한글


잘된 예)

<?

$message = urlencode("한글 보내기");
?>
<iframe src="http://sysdocu.com/message/insert.php?message=<?=$message?>" frameborder="0" width="0" height="0" scrolling="no" align="center" name="iframe_test"></iframe> 



반응형

댓글()

[jquery] FAQ와 같은 슬라이드 기능

프로그래밍/PHP|2015. 1. 27. 11:49
반응형

http://www.sir.co.kr/qa/?s_tag=jquery&wr_id=20646

반응형

댓글()

script.aculo.us의 Sortable로 드래그앤드롭(DragNDrop) 사용하기

프로그래밍/PHP|2015. 1. 27. 11:47
반응형
Script.aculo.Us에서는 드래그앤드롭(Drag N Drop)을 쉽게 구현할 수 있는 클래스가 있는데 Draggable(Droppables)과 Sortable 2개의 클래스이다. 둘다 드래그앤드롭을 위한 클래스인데 Draggable는 객체를 드래그 가능하게 만드는 클래스이고 Sortable은 드래그앤드롭이 되면서 정렬이 가능하도록 하는 클래스이다. 정렬을 하고자 한다면 Sortable을 사용하는 것이 편하고 여기서 정리하려는 것은 Sortable이다. 

Sortable.create('id_of_container',[options]);

위 코드이 Sortable을 사용하는 기본 문법이다. id_of_container에 드래그앤드롭을 가능하게 할 엘리먼트의 id를 주고 options에 드래그앤드롭에 대한 옵션을 JSON형태로 던져주면 바로 정렬가능한 드래그앤드롭을 사용가능하다.  id_of_container이라고 쓴 것처럼 드래그할 객체가 아니라 드래그할 객체들을 담고 있는 container의 id를 주면 되고 options는 안주면 디폴트옵션으로 동작하게 된다.

예를 들어

1
2
3
4
5
6
7
<ul id="contailner">
    <li id="dnd_1">Test 1</li>
    <li id="dnd_2">Test 2</li>
<ul>
<script type="text/javascript">
    Sortable.create("contailner");
</script>

위와같이 작성하면 dnd_1, dnd_2객체가 바로 드래그앤드롭이 가능하다. (이 얼마나 간단하단 말인가. ㅎㅎㅎ) 

이제 옵션을 보자. 자유롭게 사용하려면 옵션을 주어서 원하는 형태로 사용하여야 한다. 옵션은 Draggable과 공통적인 것도 있고 아닌것들도 있다.(아직 Script.aculo.us의 API리스트는 솔직히 좀 아쉽다.) API와 내가 테스트해본걸 바탕으로 적었지만 빠진 부분이 있을수도 있다.

tag : 여기에 HTML태그명을 주면 해당 태그에 대해서 Sortable이 동작하게 된다. 디폴트는 li태그이고 container아래 한단계 밑까지만 동작한다. 쉽게 말해 li안에 li가 또 들어있다고 하더라도 안에 있는 li에는 드래그앤드롭이 동작하지 않는다. Block엘리먼트에만 가능하고 table같은걸 블가능하다.

only : 이 옵션을 주고 여기서 class명을 지정하면 tag에 설정한 태그명이라고 할지라도 only에서 준 class명과 맞지 않으면 드래그앤드롭이 동작하지 않는다.

overlap : 가로 리스트는 horizontal, 세로 리스트는 vertical로 설정하라는데 정확한 동작은 잘 모르겠다.

constraint : horizontal, vertical, false 3가지가 있고 드래그앤드롭의 방향을 설정한다. horizontal/vertical로 설정할 경우에는 가로/세로로만 이동하며 false나 옵션을 주지 않았을 경우에는 어떤 방향이든지 이동이 가능하다.

containment : 이곳에 container 리스트를 지정하고 이곳에 지정한 container간에는 드래그앤드롭이 가능하다.

handle : 드래그앤드롭을 할 엘리먼트에서 전체가 아닌 특정부분만을 이용해서 드래그앤드롭이 가능하도록 하고 싶을때 handle이용한다. 이곳에 id 혹은 class명을 지정하면 핸들러로 사용할 수 있다.

delay : 드래그앤드롭으로 반응할 시간을 미리세컨단위로 설정할 수 있고 기본은 0이다. 너무 민감하게 반응하지 않기를 바랄때는 delay의 숫자를 크게 지정할 수 있다.

dropOnEmpty : true로 설정하면 container가 비어있을때도 drop이 가능하다. false일 경우에는 container에 다른 드래그앤드롭객체가 있을때만 드롭이 가능하다. 기본은 false

scroll : 기본으로는 지정되어 있지 않으며 window로 설정할 경우에는 드롭할 container가 화면밖에 있을경우에 드래그객체가 화면밖으로 나가면 자동으로 스크롤한다.

scrollSensitivity : 기본은 20이고 스크롤이 되게 하기 위해서 넘어가야하는 크기를 지정한다.

scrollSpeed : 스크롤 속도이고 픽셀로 지정하면 기본은 15이다.

onChange : 콜백함수로 드래그앤드롭을 시작하는 등 객체의 위치가 변경되면 계속 발생한다.

onUpdate : 콜백함수로 드래그앤드롭을 하여 실제 순서의 변화가 생겼을때만 발생한다.




아주 간단한 예제를 만들었다. 동작과 소스코드를 보면 쉽게 이해할 수 있을꺼라고 생각한다. 최근 작업을 하면서 몇가지 주의점(?)을 발견한 거라면...

  • container의 id에 언더바(_)가 들어가면 동작하지 않는다. 
  • Sortable.serialize를 사용하려면 드래그앤드롭 엘리먼트의 아이디가 언더바(_)로 이어져야 한다. 언더바 뒤쪽에 있는 문자만 표시된다.
  • IE에서는 왼쪽 콘테이너에서 오른쪽 콘테이너로 갈때 드래그엘리먼트가 컨테이너 뒤쪽으로 가는 문제가 생긴다. 드롭하기 위해서 반이상 넘어갈 경우에는 위로 올라오는데 이건 IE의 z-index버그때문에 생기는 문제로 예상되는데 정확한 해결책은 아직 찾지 못했다.
Sortable.serialize는 해당 컨테이너에 있는 드래그앤드롭객체를 순서대로 보여준다. 이것은 위치정렬을 한 후에 Ajax등을 통해서 새로 정렬한 위치를 서버에 저장할 수 있도록 하는 역할을 한다. 

그리고 예제의 소스를 보면 알겠지만 기본적으로는 드래그앤드롭을 할 때 해당위치의 공간은 표시하지만 따로 표시되지는 않는다. 이 문제를 해결하기 위해 더미 엘리먼트를 만들었다. OnChage가 발생할 때 해당 엘리먼트의 바로 앞쪽에 더미엘리먼트를 만들어서 insert한다. 이렇게 함으로써 드롭했을때 떨어질 위치가 명시적으로 보일수 있도록 하고 OnChange는 계속 발생하기 때문에 처음에 더미엘리먼트를 지우고 다시 넣어주기 때문에 다른 컨테이너로 넘어가는 순간 더미엘리먼트도 적절하게 이동된다. 깔끔한 해결책은 아닌듯 하지만 일단 동작은 한다. 


반응형

댓글()

mail 함수를 이용해 메일 보내기

프로그래밍/PHP|2015. 1. 27. 11:47
반응형
<?
$headers = "From: admin@sysdocu.com\r\n"; // 보내는 사람
$headers .= "MIME-Version: 1.0\r\n";
$boundary = uniqid("HTMLDEMO");
$headers .= "Content-Type: multipart/mixed; boundary = $boundary\r\n\r\n";

$body = "--$boundary\r\n" .
"Content-Type: text/plain; charset=EUC-KR\r\n" .
"Content-Transfer-Encoding: base64\r\n\r\n";
$body .= chunk_split(base64_encode("일반 텍스트만 쓰려면 여기에 내용 쓰기"));

$body .= "--$boundary\r\n" .
"Content-Type: text/html; charset=EUC-KR\r\n" .
"Content-Transfer-Encoding: base64\r\n\r\n";
$body .= chunk_split(base64_encode("html 코드를 쓰려면 <b>여기에</b> 내용 쓰기"));

mail("user@sysdocu.com", "메일 제목을 씁니다.", $body, $headers);
?>

일반텍스트만 쓸 것인지, html 사용할 것인지 여부에 따라 위에 묶여진 4줄 지우고 사용하면 됩니다.
($body 쓰고, 그다음 $body . 쓰야하는것 주의)


반응형

댓글()

php 이메일 주소 형식에 맞는지 체크하는 방법

프로그래밍/PHP|2015. 1. 27. 11:47
반응형
$email = $_POST["email"];
if(filter_var($email, FILTER_VALIDATE_EMAIL) == ""){
echo "잘못된 이메일 주소입니다. 이메일 주소를 확인해 주세요.";
}else{
echo "올바른 이메일 주소입니다.";
}


반응형

댓글()

변수에 한글 포함여부 확인하기

프로그래밍/PHP|2015. 1. 27. 11:46
반응형
<?
$str = "This is 한글" ;
if(preg_match("/[\xA1-\xFE][\xA1-\xFE]/", $str)) {
  echo"한글이 섞여있네..";
}
else{
  echo"아니면 말고";
}
?>

[출처] Breathless - 숨이막힌다 (http://blog.naver.com/neohawk5/140026740987)


반응형

댓글()