1. 서울시 마포구 상암동 누리꿈스퀘어 연구개발타워 1111 호 _ 070.7450.6572 _ dev@jellycoaster.com
Android
Volley Library
Jellycoaster Inc.
Dev.team
2. Volley Library 란 ?
Google 에서 제공하는 네트워크 라이브러리로써 ,
Google I/O 2013 에서 발표된 Session 내용 중
가장 좋은 반응을 받은 세션 중
하나라고 합니다 .
2013 Jellycoaster Inc. Dev.team
3. Volley Library 를 활용한 앱
2013 Jellycoaster Inc. Dev.team
play 스토어 인앱 결제
4. 특징
* requestQueue 를 이용한 동시요청 처리
* 요청 우선순위 설정 가능
( A 요청이 B 요청보다 먼저 응답을 받아야 할 경우 )
* 요청 취소 가능
* JSON Object request, response 기능
* NetworkImageView 제공 ( imageView 에 바로 호출할 url 설정 )
* MemoryCache, diskcache 지원
2013 Jellycoaster Inc. Dev.team
5. 초기화 & 호출
2013 Jellycoaster Inc. Dev.team
private RequestQueue mQueue;
private ImageLoader mImageLoader;
mQueue = Volley.newRequestQueue(context);
mImageLoader = new ImageLoader(mQueue, new BitmapCache());
ImageRequest imageRequest
= new ImageRequest("http://...(URL)", listener, 0, 0,
Config.ARGB_8888, error);
mQueue.add(imageRequest);
ImageRequest 객체를 생성해서 RequestQueue 에 넣어준 후 ,
호출할 url 은 ImageRequest 에 설정한 후 ,
리턴은 설정한 listener 에서 받아 처리합니다 .
6. 응답 받는 코드
2013 Jellycoaster Inc. Dev.team
ImageView imageView
= (ImageView) findViewById(R.id.image_view);
Response.Listener<Bitmap> listener = new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap result) {
// On success
imageView.setImageBitmap(result);
}
};
성공적으로 리스너가 리턴받는 경우 위 코드처럼 ImageView 에 리턴
받은 bitmap 을 설정할 수 있습니다 .
( 이 부분을 이용하여 리턴받은 bitmap 크기를 변경하거나 용량을 줄
여 적용할 수 있습니다 . )
7. Get 방식 호출
2013 Jellycoaster Inc. Dev.team
Listener<String> listener = new Listener<String>() {
@Override
public void onResponse(String result) {
// some action
}
};
String uri = String.format("http://somesite.com/some.php", object);
StringRequest myReq = new StringRequest(
Method.GET, uri,
listener, errorListener);
mQueue.add(myReq);
GET 방식으로 호출하는 경우 , StringRequest method type 을
Method.GET 으로 설정하고 , 리턴받을 listener 와 errorListener 를
설정하고 , RequestQueue 에 추가합니다 .
8. Post 방식 호출
2013 Jellycoaster Inc. Dev.team
StringRequest myReq = new StringRequest(Method.POST,
"http://somesite.com/some_endpoint.php",
listener,
errorListener)
{
@Override
protected Map<String, String> getParams() throws com.android.volley.AuthFailureError
{
Map<String, String> params = new HashMap<String, String>();
params.put("param1", num1);
params.put("param2", num2);
return params;
};
}; mQueue.add(myReq);
Post 방식으로 호출하는 경우 StringRequest 의 getParams() 함수 안에서
Map<String, String> params 변수에 params.put("param1", num1); 과 같이 ,
파라미터를 추가하여 호출할 수 있습니다 .
10. 참고 자료
2013 Jellycoaster Inc. Dev.team
공식 발표 자료 : http://www.youtube.com/watch?v=yhv8l9F44qo
Volley 샘플 앱 : https://github.com/ogrebgr/android_volley_examples
11. 서울시 마포구 상암동 누리꿈스퀘어 연구개발타워 1111 호 _ 070.7450.6572 _ dev@jellycoaster.com
감사합니다 !
Jellycoaster Inc.
Dev.team