레이블이 Eclipse Java인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Eclipse Java인 게시물을 표시합니다. 모든 게시물 표시

2017년 10월 21일 토요일

Android WIFI Debuging

Today we talk about Android WIFI debugging.
iOS has recently provided WIFI debugging, but Android has been around for a while now.
For debugging, the development PC and smartphone must be in the same network.
How to set it is as follows.
Navigate to the folder where adb is installed and open the Window Command window in that location.
adb -d tcpip 9999.
Then the following message appears.
restarting in TCP mode port: 9999
Next, obtain the local IP of the smartphone to be debugged.(You can easily get information by installing a tool to get WIFI information from Google Play.)
Once you have obtained the IP, type Command as shown below.
After typing adb connect XXX.XXX.XXX.XXX:9999, the following message is displayed and the connection is successful.
connect to XXX.XXX.XXX.XXX:9999
How to verify your connection
If you type adb devices, you can check the list.
List of devices attachedXXX.XXX.XXX.XXX:9999 device
Finally, the way to turn debugging connected with WIFI back to USB is as follows.
adb -s XXX.XXX.XXX.XXX:9999 usb
Feel free to develop and develop wireless ^^

2016년 9월 7일 수요일

Eclipse Neon 사용중 우측 뷰 사라지는 버그 해결법.

Eclipse Neon 으로 업그레이드후 개발중 종종 우측 뷰 리스트들이 사라지는 경우가 생긴다.
어째 업그레이드 하면 좋아지는것도 있지만 버그도 만들어 놓는지 ㅡㅡ.
해결법은 Windows -> Perspective -> Reset Perspective 로 하면 디폴트 값으로 변경이 된다.
후에 기존에 쓰던것들은 다시 추가 하면 된다.
Android LogCat 은 Show View 에 바로 안나오니 Other 로 찾아서 등록하면 된다.

2016년 5월 30일 월요일

Java 문자열 Format String 쓰는 방법

오늘 포스팅 할 내용은 Java Format String 에서 문자열 Format String 쓰는법입니다.

간단한 예로 10 이라는 값을 10자리로 앞에 비어있는 곳은 0으로 패딩하는법을 설명 드리겠습니다.

<예>
 // String 으로 format 을 활용하는 방법은 여러가지가 있으나 간단한 방법으로 접근 한다.
String strPaddingNum;

 strPaddingNum = String.format("%010d", 10);

 위와 같이 쓰면 결과는 $strPaddingNum 에  "0000000010" 와 같은 값이 들어 가게 됩니다.

 기본적은 프로그래밍 서적에 보시면 printf 에 매칭 되는 타입은 나와 있는데

 기본 타입 만 나열하겠습니다.

 %d => int, long 타입.
 %s => 문자열 타입
 %f => float, double
 %c => char
 %x => 16진수 소문자 형태로 출력.

2016년 5월 3일 화요일

Double, Float 지수e 표현을 일반 숫자표현으로 처리 하는 방법.

서버와 데이터 통신을 하다 보면 float 형 또는 double 형 데이터를 Byte Array 로 받아서 해당 형으로 변환 시켜야 할때가 있다.

이때 숫자로 표현 하고자 할때 아래와 같은 문제가 발생한다.

<원데이터>
102571293.000000
<ByteArray 받은것 double 변환후 스트링 표현하면 아래와 같이>
1.02571293E8

위와 같이 실수가 지수e 표현 되는것을 알수 있다.

위와 같이 표현을 필요도 하지만 일반적인곳에서는 일반적인 숫자로 표현 하기를 원하기 때문에 처리 하려면
아래와 같이 하면 일반적인 숫자로 표현이 가능하다.

DecimalFormat df = new DecimalFormat("#.#");
String sValue = df.format(ByteBuffer.wrap(output1, 0, 8).getDouble());

위에서 output1 은 서버에서 받은 byte[] 배열 8바이트 double 형이고 이것을 변환 할때 "DecimalFormat" 을 이용하면 원하는

결과를 얻을수 있다. ^^

2014년 7월 2일 수요일

Eclipse Andorid Plugin 22.6 에서 23 버젼으로 업데이트 되지 않을때 조치 방법.

Android SDK 4.4 버젼이 나오면서 ADT Manager 를 통해서 업데이트를 받고 나면 Android Plugin update 를 하라고 하지만

실제로는 업데이트가 되지 않는다. (개인 개발 환경은 Ecliplse Juno)

이전에 설치된 Android Plugin 을 지워야 하는데 지우는 방법은 아래와 같다.

1. Eclipse에 관하여 메뉴를 누른다(Mac 유저는 Eclipse 에 존재 하고 Windows 유저는 Help 메뉴 밑에 있음)
2. 팝업창이 하나 뜨면 "Installation Details" 버튼을 누른다.
3. 목록중에 Andorid 관련된 플러그인 라이브러리를 모두 언인스톨 한다(22.6 버젼으로 찾으면 됨)
4. Eclipse 재 실행후 ADT Plugin 을 재 설치 한다(https://dl-ssl.google.com/android/eclipse/ )

왜 자동 업데이트가 안되는지는 모르겠지만.. 위와 같은 방법으로 하면 해결됩니다.. ^^

2012년 12월 12일 수요일

"already exists but is not a source folder. Convert to a source folder or rename it" 오류 해결방법

안드로이드 개발하다 보면 소스가 꼬여서 "already exists but is not a source folder. Convert to a source folder or rename it" 오류가

나올때가 있다.

이럴떄에는 아래 스탭으로 처리 하면 해결 가능하다.

1. 해당 안드로이드 프로젝트 프로퍼티를 열어서 "Java Build Path"에 Source 탭에 /src,, /gen 폴더가 빠져 있을거니 추가 해준다.
2. 해당 안드로이드 프로젝트 Android Tools->Fix Project Properties 를 눌러서 수정한다.
3. 해당 안드로이드 프로젝트 를 클린 컴파일 한다.

2012년 11월 22일 목요일

Eclipse workspace 관리


Eclipse WorkSpace 관리 하는 방법.

이전에 소개 했던 다른 패스에 같은 프로젝트를 올릴수 있는 방법으로도 같은 문제를 해결 할수 있지만

Eclipse 메모리도 많이 먹고 한번 띄울때 속도도 느리다.

Visual Studio 에서와 같이 여러개의 Visual Studio 를 띄우면서 관리 하는 방법을 찾던중

Eclipse 개발 환경(Androdi SDK , Editor, Code Templeate 등) 을 맞춰 놓고 좌측 Pakage Explorer 항목에 아무것도 로드 하지 않은 상태에서

Eclipse 를 닫는다.

그러면 디폴트 WorkSpace 디렉토리로 이동하면 (파일속성을 히든 파일도 보이게 맞춰놓고) .metadata 디렉토리가 보일것이다.

이 디렉토리를 새로 구성하는 WorkSpace 디렉토리에 복사 하고 Eclipse 를 새로 띄울때 무조건  WorkSpace 디폴트로 뜨지 않게 하고

Eclipse 새로 띄운다
(Mac 에서는 Eclipse 가 떠있는 상태에서는 Console 창을 열고 Eclipse 설치된 디렉토리로 이동후 "open -n Eclipse.app" 와같이 명령어를 타이핑 하면 된다.)

Eclipse 가 뜰때 WorkSpace 를 물어 볼것이고 그때 새로운 디렉토리(.metadata 를 복사한곳)을 지정해서 Eclipse 를 실행하면 된다.

Java 에 C modf 함수 구현하기.

Visual Studio 에서 코드를 모바일로 이식 시키기 위해서 작업 하다 보니


iOS 는 기반이 C 라서 C에서 제공하는 함수를 그대로 쓸수 있는데 Java 에서는 없는 함수가 있다.


그중에 modf 라는 함수 인데 이것을 Java 에서 구현 하는 법은 아래와 같다.

(modf 라는 함수는 정수부와 소수부를 나눠서 값을 얻을수 있는 함수)


Java 에 Math 라는 클래스에서  Math.floor 라는 함수를 이용하면 되고 사용법은 아래와 같다.



dValue = 123.456;

double dFractional, dInt;

dInt = Math.floor(dValue);

dFractional = dValue - dInt;


2012년 9월 27일 목요일

EClipse Path는 다르고 같은 프로젝트를 여러개 로드하는 방법.

EClipse 를 사용하다가 보면 같은 프로젝트파일을 로컬 위치에 다르게 운영하여 관리 하다 보면 동일한 프로젝트 명이라고 하여

아예 로드가 안된다.

인터넷을 뒤지다 발견한 방법은 아래와 같다.

일단은 프로젝트 명을 달리 하는 방법밖에 없는데 소스 도매인은 변경하지 않는 방법이라 좋음 ^^;

프로젝트 폴더안에 ".project" 파일을 열면 "<projectDescription>" 파일이 존재 하고 그 안에 "<name>" 으로 시작되는 항목을

기존에 로드한 항목과 다르게 바꾸면 EClipse 에서 로드 가능함. ^^

2012년 8월 16일 목요일

Handler 메모리 릭 없이 쓰기.(Lint Warnings 제거)

Android 개발 하면서 메세지 처리를 위해서 Handler 를 이용한다. 보통 쓰는 방법은 아래와 같다.

  1. public class Parent
  2. {     
  3.     private Handler m_handlerProc = new Handler()
  4.     {
  5.         @Override
  6.         public void handleMessage(Message message)
  7.         {
  8.            ...
  9.         }
  10.     };
  11. }

쓰는데는 무리가 없지만 패키지 말을때 "Lint Warnings) 가 나타난다.

해서 Warnings 을 제거 하기 위해서는 코드를 아래와 같이 수정하면 된다.

  1. public class Parent
  2. {
  3.     static class InnerHandler extends Handler
  4.     {
  5.         WeakReference<Parent> m_HandlerObj;
  6.         InnerHandler(Parent handlerobj)
  7.         {
  8.             m_HandlerObj = new WeakReference<Parent>(handlerobj);
  9.         }
  10.  
  11.         @Override
  12.         public void handleMessage(Message message)
  13.         {
  14.             Parent handlerobj = m_HandlerObj.get();
  15.             ....
  16.         }
  17.     }
  18.  
  19.     private InnerHandler m_handlerproc = new InnerHandler(this);
  20. }

^^ 그럼 즐프들 하세요..


2012년 8월 13일 월요일

Java String split

Visual C++ 개발 할때 문자열 자르는 함수를 라이브러리로 항상 대동 하고 다녔던거와는 달리

Java 에서는 String Class 에서 split 함수를 제공한다 쓰는 방법은 아래와 같다.

String strMessage = "Test`One`Two`Three";

String[] sArrMsg = strMessage.split("`");

for(int i=0; i<sArrMsg.length; i++)
{
System.out.println(String.format("Parse 문자열 = %s", sArrMsg[i])); 
}

위와 같이 함수를 제공해줘서 아주 잘 쓰고 있는데 문제가 하나 있다.

특정 특수 문자는 파싱이 되지 않는다는 점이다. 문자열 예시를 아래와 같이 바꾸면

String strMessage = "Test.One.Two.Three";

파싱이 되지 않는다. 파싱을 하려면 split 함수 안에 아래와 같이 넣어 줘야 정상 동작한다.

String[] sArrMsg = strMessage.split("\\.");

위와같은 문자열은 더 있는거 같고요 일단 제가 발견한 문자는 ".", "(", ")" 입니다. 발견되는 데로 업데이트 합니다 ..

쓰시는 분들은 유의 하시면 될거 같습니다 ^^;

유의할점은 만약에 파싱할 문자열이 아래와 같다면

String strMessage = "Test```";

파싱되는 문자열이 4개가 아니라 1이 됩니다. 이것을 방지 하기 위해서는 뒤에 공백 문자열을 넣어줘야 정상 동작 합니다.

String strMessage = "Test``` ";

Android 날짜 일수 계산

Android 개발할때 두개의 날짜를 가지고 날짜 일수를 계산 하는 방법입니다.


Date today = new Date();


Calendar calToday = Calendar.getInstance();
calToday.setTime(today);


Calendar calEnd = Calendar.getInstance();
calEnd.set(2012, 8-1, 5);// month 의 경우 해당 월수에 -1을 해줍니다.


int nRemainCnt = 0;


while(!calToday.after(calEnd))
{
nRemainCnt++;
calToday.add(Calendar.DATE, 1);
}



위 while 루프를 빠져 나오면 nRemainCnt 변수에 일수가 저장된다. ^^

2012년 8월 6일 월요일

Eclipse 툴 ctrl+k 옵션.

Android 를 개발하면서 eclipse 를 사용하기 시작하였는데

쓰다 보니  Visual Studio 툴이랑 틀려서 특히 이게 왜 디폴트 인지는 모르겠는데

Visual Studio 에서는 F3키를 누르면 특정 단어를 찾아서 한 에디트에서 계속적으로

반복해서(키를 누를때마다) 호출이 되는데 Eclipse에서는 ctrl+k(아래로 찾기) ctrl+shift+k(위로찾기) 이렇게 나뉘어 있어서 불편했다.

뭐 처음에는 그냥 그러려니 하고 썼는데 영 불편에서 구글링으로 검색을 해보니

방법이 있었다.. 쩝.


위 그림과 같이 "Wrap search"항목을 체크 해두면 ctrl+k 를 계속 누를경우 같은 에디트 안에서 반복적으로 문자를 찾는다.

위 그림은  mac에서 캡춰 했지만 windows eclipse 도 동일함.

^^..