728x90
Multi Processing
- 소프트웨어 앱 단위 cpu가 일을 나눠서 처리
- 앱을 동시에 여러개 실행 가능
Multi Threading
-앱 하나에서도 여러가지 일을 나눠서 처리
1. Volley
- Android 앱의 네트워킹을 더 쉽고, 무엇보다도 더 빠르게 하는 HTTP 라이브러리
1.1. Volley 라이브러리 호출하기
- Gradle Scripts - build.gradle (Module ~.app)
- dependecies 부분에 아래의 문구 추가
implementation 'com.android.volley:volley:1.2.1'
1.2. AndroidManifest.xml 파일 설정
<manifest> 코드 설정
<manifest
android:targetSandboxVersion="1"
>
인터넷 권한 설정
<uses-permission android:name="android.permission.INTERNET"/>
<!-- 1. 인터넷 권한설정-->
<application>
<application
android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_config"
>
2. 사용 방법
2.1. RequestQueue
- 네트워크 작업 실행, 캐시 읽고 쓰기 및 응답 파싱을 위해 작업자 스레드를 관리
- Volley.newRequestQueue 메서드를 사용하여 요청을 전송
- 요청을 생성한 후 add()로 RequestQueue에 추가
- 요청을 취소하려면 cancel() 호출
2.2. newRequestQueue 사용
- 기본값으로 RequestQueue를 설정하고 큐를 시작하는 Volley.newRequestQueue 메서드 선언
- 네트워크 통신을 위한 객체 생성
- 생성자는 HTTP Method, URL, JsonRequest(전달 데이터), Listener(실행 코드) 입력
- 설정한 객체의 값을 리퀘스트큐에 요청 생성, add()
2.3. Json Parsing
- onResponse 메소드에서 API를 호출 하여 Json의 형태로 데이터를 교환
- 형태에 맞는 데이터타입으로 값을 받아옴
- 위의 소스 코드에서 예시
- 1. Json 데이터를 response에 담아 전송
- 2. 전송된 데이터 키 값의 타입을 맞춰 데이터 호출
- 3. 저장할 변수에 저장
package com.hyunsungkr.networkapp1;
import androidx.appcompat.app.AppCompatActivity;
import android.app.DownloadManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONObject;
import org.w3c.dom.Text;
public class MainActivity extends AppCompatActivity {
TextView txtUserId;
TextView txtId;
TextView txtTitle;
TextView txtBody;
final String URL = "https://jsonplaceholder.typicode.com";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtUserId = findViewById(R.id.txtUserId);
txtId = findViewById(R.id.txtId);
txtTitle = findViewById(R.id.txtTitle);
txtBody = findViewById(R.id.txtBody);
// Volley로 네트워크 통신한다.
RequestQueue queue = Volley.newRequestQueue(MainActivity.this);
JsonObjectRequest request = new JsonObjectRequest(
Request.Method.GET, URL + "/posts/1", null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.i("NETWORK_APP",response.toString());
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}
);
// 이 코드가 있어야 네트워크 실행한다.
queue.add(request);
}
}
'Android Studio' 카테고리의 다른 글
Android - 이미지 처리 Library Glide (0) | 2023.02.07 |
---|---|
Android - 액션바 타이틀, Back 버튼 설정법과 / FAB(FloatingActionButton) 사용법 (0) | 2023.02.06 |
Android - 실시간 검색기능 개발 ( TextWathcer ) (0) | 2023.02.03 |
Android - 화면 갱신 함수 notifyDataSetChanged() (0) | 2023.02.02 |
Android - 다른 Activity로 데이터 전달 시 클래스의 객체를 전달하는 방법 Serializable , putExtra(), getSerializableExtra() (0) | 2023.02.01 |