[자바/안드로이드] 스레드(Thread)를 이용한 ProgressDialog 사용 방법


매우 복잡하구나.. 이걸로 몇일 지지고 볶아 봐야긋다..

관련 블로그 :
http://tigerwoods.tistory.com/26
http://stbaeya.com/tc/221
http://underclub.tistory.com/314

상태바 관련 :
http://cruciancar.blog.me/150103532612

안드로이드 개발 관련 유용한 사이트 모음


개발시 도움이 되는 내용들이 많은 사이트 블로그(로딩화면, 커스텀 리스트 뷰 등등 ) :
http://blog.naver.com/ggaddr?Redirect=Log&logNo=20123154889
커스텀 리스트 뷰 관련 : http://deviant86.tistory.com/301
http://www.androidpub.com/438631

안드로이드 커뮤니티
안드로이더 펍 : http://www.androidpub.com/
안드로이드 사이드 : http://www.androidpub.com/


안드로이드에서 JSON 활용 방법(펌), JSON이란?


JSON이란? : http://polomin.tistory.com/51   http://kimstar.pe.kr/blog/74(글이 아주 정리가 잘되어있다.)

안드로이드 JSON으로 로그인 예제 :

http://www.instropy.com/2010/06/14/reading-a-json-login-response-with-android-sdk/#respond

JAVA에서 (서플릿과 JSP)에서 JSON 활용방법 :
http://mainia.tistory.com/564

JSON에서 JSONArray에 add 후 JSONObject = new JSONObject(); 해주어야 JSONArray에 중복값이
들어 가는걸
막을 수 있다.( 초기화 하기전까진 제일 마지막에 들어간 값이 중복으로 들어가는 걸로 보인다. ) 관련참고사이트 : http://www.okjsp.pe.kr/seq/113513


-----------------------------------------------------------
출처  :
http://www.androidside.com/bbs/board.php?bo_table=B46&wr_id=3563
-----------------------------------------------------------
안녕하세요~ 매번 눈팅만하고 필요한 자료만 찾는 도중에

JSON 에 관련된 글이 없어서 간단하게나마 올려봅니다~.

이미 알고 계신분들도 많겠지만 저처럼 완전 초보는 이글을 읽고 조금이나마 도움이 됐으면 하는 바람입니다..

우선 json에 대한 기초도 없었던 저는 이번 프로젝트로 인해서 고생좀 했습니다 ㅜㅜ

간단하게 json 에대해 설명하자면 xml 의 무거움을 또 가독성(?)을 개선하고자 txt 파일로 만들어져있고

key 값과 value 값으로 구분이 됩니다...(제가 어렴풋이 이해한 개념이니.. 안맞더라도 양해를..)

예를 들어 home.json 이란 파일이 존재하고 이 내용을 보게 되면

{
     "title":"TEST",
     "title_img":"title.png",
      "buttons":[
           {
                 "id":"home01",
                 "title":"테스트버튼",
                 "icon_img":"test_btn.png",
                 "text_img":"text_img.png"
           },
           {
                 "id":"home02",
                 "title":"테스트버튼2",
                 "icon_img":"test_btn2.png",
                 "text_img":"text_img2.png"
           }
       ]
}

각줄의 첫번째 "" 안의 값은 key 값이 되며, 두번째 값은 value가 됩니다.

"buttons"의 경우 [ ] 로 묶여있는데 이것이 배열을 의마하게 됩니다.

위의 경우 {} 두번 반복되는 것은 배열buttons[ ]의 0번째 1번째가 되는거겠지요 ^^;;

배열안의 값도 key값과 value 값으로 구분되어 집니다...

간단? 하게나마 json파일 형식에 대해 말씀드린거구요(다시 말씀드리지만 저처럼 완전 초보님들에게만....)

자 이제 위와 같은 json 파일을 안드로이드 프로젝트에서 사용하고자 합니다.

안드로이드 api 에서 제공하는 json 의 사용은 한계점이 있습니다. json의 사용법은 관련 자료를 찾아보세요.
(지금 제가 하는 프로젝트는 위와 같이 json 파일로 받아서 각 화면의 이미지, 타이틀, list, url 등의 정보를 받아서 처리하도록 되어있습니다.)

처음에 별별자료를 다 읽어봤지만 안드로이드에서 사용하는 예제가 영문으로 되어있어서 대략난감했습니다...
한글로 된 블로그도 있었지만 제수준에서는 이해하기가;;;

우선 프로젝트의 assets 폴더 안에 json폴더를 생성해주었고 그안에 위와 같은 home.json 파일을 만들어주었습니다.

Home.java 라는 클래스를 생성해주고 json 파일을 읽어 오는 방법은

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        //asset 폴더의 내용을 가져오기 
        AssetManager assetManager = getResources().getAssets();
        
      try{
        //사용하고자 하는 json 파일 open
        AssetInputStream ais = (AssetInputStream)assetManager.open("json/home.json");
 
        //stream을 리더로 읽기
        BufferedReader br = new BufferedReader(new InputStream(ais));

        //StringBuilder 사용
        StringBuilder sb = new StringBuilder();

        //json파일의 내용이 용량이 클경우 Stirng 의 허용점인 4096 byte 를 넘어가면 오류발생
        int bufferSize = 1024 * 1024;
        
        //char 로 버프 싸이즈 만큼 담기위해 선언
        char readBuf [] = new char[bufferSize];
        int resultSize = 0;
        
        //파일의 전체 내용 읽어오기
        while((resultSize = br.read(readBuf))  != -1){
                if(resultSize == bufferSize){
                       sb.append(readBuf);
                }else{
                       for(int i = 0; i < resultSize; i++){
                            //StringBuilder 에 append
                            sb.append(readBuf[i]);
                       }
                }
        } 
        // 수정 - 새로운 문자열을 만들어서 내부 버퍼의 내용을 복사하고 반환한다.
        String jString = sb.toString();

        //JSONObject 얻어 오기
        JSONObject  jsonObject =  new JSONObject(jString);

        //json value 값 얻기
        Stirng title = jsonObject.getString("title").toStirng();   //결과값 TEST
       
         //이미지 사용법에 대해서는 이미 아시리라 믿고 패스 할께요;;

       //JSONArray 사용법
        JSONArray jArr = new JSONArray(jsonObject.getStirng("buttos"));
        
       //StringArray에 buttons 의 title 키의 value값을 담겠습니다.  

        String btnTitle [] = new Stirng[jArr.length()];
     
         for(int i = 0; i < jArr.length(); i++){
                btnTitle [i] = jArr.getJSONObject(i).getString("title").toString();
                //출력하여 결과 얻기
                system.out.println("btnTitle[" + i + "]=" + btnTitle[i]);
         }

       }catch(JSONException je){
           Log.E("jsonErr", "json에러입니당~", je);
       }catch(Exception e){
           Log.E("execption", "파일이 없나봐용", e);
       }
    }

휴 일일이 쓰려니 힘드네요;; 위와 같이 코딩을 하여 json파일에 들어있는 값들을 적용할수가 있습니다.

이방법 알아내느라 아주 쬐금 고생을 했드랬죠 -_-;; 머라가 나빠서 이해력 속도가 느린;;;

이미지 사용법에 관해서는 여기 훌륭하신 분들의 강좌를 보고 좀 변형해서 했기에;;

제방법으로 하다가 머리가 아프실지 몰라 감히 올리지는 못하였네요 ㅎㅎㅎ

이상으로 json 파일 사용에 대한 간단한 글을 마치도록 할께요...

허접한 글이지만 저처럼 헤매시는 분들에게 조금이나마 도움이 되었으면 좋겠네요~~^^;;

ksoap2 웹서비스에서 배열형으로 리턴 받기


음.. 여러가지 방법을 시도 해보았으나.. 잘 되지 않는다. 아래 사이트를 참고해서 성공 해 보자 !!
아직 배울게 넘 많다 자바라도 제대로 했었으면 이리 어렵진 않을터인데 또다시 후회된당 ㅠㅠ

ResultSet 자체를 넘기면 안되는 이유 : http://www.okjsp.pe.kr/seq/64207

Web Service That Returns An Array of Objects With KSOAP :
http://seesharpgears.blogspot.com/2010/10/web-service-that-returns-array-of.html

- 1차원 배열 성공 리포트
웹서비스에서 String[] 형식으로 넘겨받은 후
안드로이드에서 받을 때
SoapObject response = (SoapObject)envelope.getResponse();
이 아닌
SoapObject response = (SoapObject)envelope.bodyIn;
로 받아와
response.toString();
해보면 웹서비스에서 넘어온 배열갯수 만큼 값들이 보일것이다.
response.getProperty(0).toString();
이런식으로 확인 가능

참고 사이트 :
http://droidcode.wordpress.com/2010/08/13/android-web-services-using-ksoap2/
http://v.daum.net/link/11619479

배열은 1차원 밖에 지원이 안되는듯 싶다. 복잡한 배열은 :
http://www.blackberry-forum.de/cgi-bin/YaBB.pl?num=1260616413 글을 참고하여 사용하도록 하자

http://seesharpgears.blogspot.com/2010/10/web-service-that-returns-array-of.html
http://seesharpgears.blogspot.com/2010/10/ksoap-android-web-service-tutorial-with.html

JDBC이용한 DB 접속 및 프로그램 구현 순서


역시 블로그 참조 : http://blog.naver.com/linox?Redirect=Log&logNo=40094538069

안드로이드 SOAP를 통한 웹서비스 접속 확인


  SOAP를 통해(정확히는 ksoap라는 라이브러리를 사용해서) 웹서비스를 이용해 보았다. 앞으로는 웹서비스에서 DB 접속 관련해서 어떤식으로 접속해야 하는지.. 웹서비스를 호출 할 때 마다 매번 웹서버의 웹서비스가 DB 접속을 하는것이 옳은것인지??  좀 궁금한 부분이 아직 많다. 어쨌든 아래 블로그를 확인해보면 안드로이드에서 웹서비스 호출과 결과값을 받아 올 수 있는것을 확인 할 수 있다.

http://blog.naver.com/lby2514?Redirect=Log&logNo=120118267311

[안드로이드] 이클립스 org.apache.commons.logging.LogConfigurationException 에러


이클립스에서 위와 같은 에러가 발생 했을 경우...
%JAVA_HOME%\lib\ext에 commons-logging-1.1.1.jar등과 같은 톰켓 라이브러리 파일들이 들어가 있는지 확인 해보고 넣지 않도록 주의!!!!!!!!!!!! 이것땜시 오늘도 2시간 헤멧다.. ㅠㅠ 흐엉 흐엉

[안드로이드] XML 파싱 방법의과 종류


DOM파서, SAX 파서, 안드로이드 XmlPullParser 3가지로 가능 한듯 국내는 XmlPullParser를 많이 사용한다고 한다 ^^

위 3가지 파싱방법에 대한 설명과 코드들은 아래 링크를 확인 바랍니다.

http://jkproject.net/6

http://blog.naver.com/schweine7?Redirect=Log&logNo=40112744930

[안드로이드] 아파치 HttpClient 컴포넌트(JAR) 이클립스 설치 및 이것을 이용한 외부 웹서비스 접근 방법 관련


아파치 HttpClient 컴포넌트 다운로드: http://hc.apache.org/downloads.cgi
4.1과 3.1 버전이 있는데 아마도.. 조금 class들의 위치를 조금 변경 한게 아닌가 싶다.
일단 기존 예제들이 3.1버전으로 많이 되어 있으니 3.1로 해보고 4.1으로 변환해보자 ^^

다운로드 후 이클립스에서 프로젝트에 컴포넌트 JAR 추가 방법 :http://blog.naver.com/iamzeus84?Redirect=Log&logNo=140066929069

아파치 HttpClient 4.1 예제 : http://mainia.tistory.com/569
아파치 HttpClient 3.1 예제 : http://blog.naver.com/lby2514?Redirect=Log&logNo=120118269702

그외 참고(안드로이드 기본 내장 사용하여 웹 컨트롤) : http://jujbob.blog.me/40120357974
그외 웹서비스 호출 하기 ASP와 PHP 웹서비스 : http://blackzaket.blog.me/80106866349

에고 험난하다 자바 안해본게 정말 안스럽다 ㅠㅠ.. 4GL 개발자에겐 험난한 여정이지 싶다. 그래도 조금씩 배워가보자 ^^ JSON이나 REST 등 아직 용어들도 생소하고.. ㅠㅠ.. 체계적으로 공부 할 사이트 없나 책을 하나 사야하나 뉴뉴~

톰켓 + AXIS2 설치 하기.



http://blog.naver.com/noranlemon84?Redirect=Log&logNo=10096444226

블로그를 참고 하자 ^^

[안드로이드] 구글 날씨 API를 이용한 XML 파싱 및 maybe missing INTERNET 관련


maybe missing INTERNET에러 해결 : http://blog.naver.com/xgraph?Redirect=Log&logNo=150081927021
안드로이드의 웹서비스관련 : http://blog.naver.com/lby2514?Redirect=Log&logNo=120118265769

구글날씨API : http://www.google.com/ig/api?weather=seoul&;ie=utf-8&oe=utf-8&hl=ko
구글날씨파싱방법 : http://gaspotion.tistory.com/36 http://bywords.tistory.com/19 http://canon110.tistory.com/109

안드로이드 XML 파싱관련 상세 : http://blog.naver.com/ugigi?Redirect=Log&logNo=70086695031

JAVA설치 및 MSSQL2005 연동 방법


자바설치 참고 : http://blog.naver.com/ssari93?Redirect=Log&logNo=130085951777

자바에서 MSSQL 연동 참고 : http://blog.naver.com/xioix?Redirect=Log&logNo=130033327876
( // 대신 \\ 안쓰도록 주의 이거 때문에 4시간동안 삽질했다 ㅠㅠ )

MSSQL2005용 JDBC 다운로드 :
http://www.microsoft.com/downloads/details.aspx?FamilyID=a737000d-68d0-4531-b65d-da0f2a735707&DisplayLang=ko
( JDK가 20101117일 기준 최신일 경우 sqljdbc4.jar 사용, Java\jre6\lib\ext에 넣어주자. 자바 설치시  패스 설정 제대로 했다면 제대로 연결 되어야 한다. )

MSSQL JDBC 연결속성 관련 : http://msdn.microsoft.com/ko-kr/library/ms378988(v=SQL.90).aspx

MSSQL 연결관련 참고 블로그 :
http://blog.daum.net/idlebread/15895785
http://lyb1495.tistory.com/49
http://blog.naver.com/simplyjang?Redirect=Log&logNo=10096869742
http://blog.naver.com/mini9900?Redirect=Log&logNo=90039689180
SQL 2008 : http://blog.naver.com/ieiec?Redirect=Log&logNo=140110354348
SQL 2000 : http://blog.naver.com/cloud2519?Redirect=Log&logNo=40056054969
 ⑴ MSSQL2000

      ① JDBC 드라이버

          msutil.jar, mssqlserver.jsr, msbase.jsr

     ② MSSQL DriverClassName

         class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

⑵ MSSQL2005

    ① JDBC 드라이버

         sqljdbc.jar

    ② MSSQL DriverClassName

        class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

자바 에디터 플러스에서 사용하기 :
http://blueriver35.blog.me/60055887233

[펌] 안드로이드와 외부 DB연동 방법



출처 : http://ableperson.tistory.com/35
----------------------------------------------
 프로젝트 수행 시 DB를 사용해야 하는 경우가 상당히 많다. 보통은 서버 내부에 DB를 세팅하고 프로젝트 소스코드 내부에서 해당 데이터베이스로 직접 접속을 한다. (자바의 경우 JDBC를 이용)  하지만, 안드로이드 프로젝트 수행 시 같은 방법으로 디비처리를 실행하면 많은 문제점을 발견할 수 있다. 우선, JDBC 라이브러리와 안드로이드 프로젝트 사이의 연동이 불가능하다.(직접 해본결과 이클립스가 중지됨 - -, 엄청난 에러발생) 그래서 여기저기 수소문해본 결과, 안드로이드는 다른 서버로의 직접적인 DB 접근이 불가능하다는 것을 알게 되었다.








해결책은 다음과 같다.

1. 중간에 웹 서버를 두고, 사용자가 어떤 주소값을 웹 서버로 보내주면 서버 자체적으로 DB와 연동되어 연산 처리 후 XML 방식으로 리턴해 주면 안드로이드 내부에서 해당 XML 문서를 파싱해서 사용하는 것.

2. 웹 서버에서 DB의 내용을 HTML로 제공한다면 안드로이드 내부에서 HTML 문서를 파싱해서 사용하는 것.(단 HTML 라이브러리 다운받아야 함)

즉 아래 그림과 같은 방법을 사용해야 한다.










[펌] 안드로이드에서 MSSQL, ORACLE연결


안드로이드에서 DB 데이터 긁어 오는 방법. Android

2010/07/30 21:18

 직접 구해 보지는 않았지만 현재까지는 JDBC같은건 지원하지 않는단다...(빨리됬으면 좋겠다...)

 

안드로이드펍(  ) 게시판 중, 이런 방식을 통해서 가지고 오는 형식이 주류인것 같아서 정리해 본다..

 

MSSQL - ASP.NET(WebService) - android(ksoap2 library) thread - android(Views)

[출처] Android Side - http://www.androidside.com/bbs/board.php?bo_table=B49&wr_id=31#c_8214

 

WebService는 자바의 WSDP를 이용해야 할듯하고, 안드로이드의 SOAP 라이브러리도 한번 써봐야 할듯하다..

수일내로 테스트해서 코드완성하면 올려야쥐... ㅎ

ORACLE - WebService<WSDP로> ->  :::::::::  <- <SOAP client lib> 안드로이드 - 안드로이드 뷰

 

의 형태가 되지 싶다..

----------------------------------------------
출처 : http://asya390.blog.me/50093330040
----------------------------------------------

결국 3티어로 개발해야 한다는 이야기.!

결국 여러 클라이언트가 연결되어야 하는 경우

웹서비스(닷넷을 이용하든 자바를 이용하든)만들 때 UPDATE나 DELETE의 WHERE에 주의를 기울여야 할것같다.

[안드로이드] 외부 DB접속 관련 정리


  안드로이드의 경우 기본적으로 JDBC를 지원하지 않는다. 즉 Direct로 DB에 Connect 할 수는 없다는거다. 중간 어플리케이션 서버가 필요하다는 이야기다.
대충 알아 본봐 SOAP를 이용하는 방법도 있을수 있고, XML을 이용하는 방법이 있는듯 하다.
참고적으로 여기 적어 놓은 글은 미래를 위해 정리 해놓은것이므로 정확하지 않은 정보일수도 있다!

1. SOAP관련

http://www.android-center.com/TB/?P=11871

http://youngik.tistory.com/21

SOAP 자료

http://www.ibm.com/developerworks/kr/library/x-soapcl/

http://www.w3schools.com/soap/default.asp

http://www.hanb.co.kr/network/view.html?bi_id=1432

http://www.voiceportal.co.kr /entry/WSDL-이란


안드로이드에서 soap

http://www.vimeo.com/9633556

http://code.google.com/p/ksoap2-android/

http://www.anddev.org/calling_a_web_service_from_android-t348.html

--> 윈모바일에서 soap로 구현했다면 재사용 할 수 있겠죠????!
2. XML
여기
http://www.anddev.org/parsing_xml_from_the_net_-_using_the_saxparser-t353.html