간단한 Android Network Application을 작성하기 위한 기본 지식.
Android application의 main(UI) thread에서의 network 관련 동작의 실행은 warning이 발생하게 된다.
Network request의 경우 예상치 못한 delay가 발생하여 실행이 지연될 수 있기때문에
main thread의 동작을 방해하기 때문이다.
하여 network연동을 할때는 별도의 thread에서 처리를 하도록 한다.
이때 사용할 수 있는 class는 Thread(+runable)와 Handler(thread에서 발생한 결과를 main thread로 전달 하기 위한) 또는 AsyncTask 가 있다.
AsyncTask의 경우 별도의 Handler가 필요없이, 필요한 함수를 override하여 그곳에서 UI thread에서 처리가 필요한 내용들을 구현하는 것으로 간결히 처리 할 수 있다.
http 처리를 위해서 android에서는 HttpURLConnection과 Apach의 HttpClient를 지원하며
공식적으로는 GB이상에서는 HttpURLConnection(+URL)를 권장한다.
우선 network이 사용가능한 상태인지 확인을 위해 아래의 method를 사용한다.
ConnectivityManager.getActiveNetworkInfo()
서버를 통해 전달받은 결과는 InputStream을 통해서 읽어들일 수 있고
InputStream을 통해 전달된 byte array를 String으로 변환하기 위하여 InputStreamReader, BufferedInputStream등이 사용된다.
inputstream을 통해서 data를 읽을때는 전송될 정확한 size를 알 수 없기 때문에 적당한 사이즈만큼만 read()를 하고 -1이 return되면 종료한다.
참고 : http://developer.android.com/training/basics/network-ops/connecting.html
'Android > Application' 카테고리의 다른 글
OPEN API (0) | 2014.10.30 |
---|---|
MediaCodec sample code (6) | 2012.12.03 |
[Android] Google Music Beta apk (2) | 2011.09.17 |
[Android] Google plus apk, Android Market apk (4) | 2011.07.27 |
Android에서 Twitter4J 사용하여 Twitter Client Application 개발하기 (4) | 2009.11.05 |