original source : https://youtu.be/CN0X25Qi2uo

http 에서 get 통신을 하는 경우 parameter를 전달하는 방법이 2개이다.

query parameter (query string)

path parameter (restful)

==========================================================

.

.

http form을 전달하는 경우 x-www-form-urlencoded 이 사용된다. (가장 일반전인 방법)

==========================================================

.

.

아래는 여러 data를 한번에 전달하는 경우이다. 예를 들어 form 과 여러화일을 첨부해서 전달하는 경우

==========================================================

.

.

==========================================================

.

.

==========================================================

.

.

ResponseCache는 memory cache만을 제공하는 데 시스템 재시작후에도 cache가 유지되기 위해서는 file과 같은 영구 저장가능한 방법을 사용해야 한다. HttpResponseCache의 경우 손쉽게 화일을 이용하는 방법을 제공한다.

==========================================================

.

.

인증 로그인 유지 방법으로 

  1. http basic authentication
  2. cookie
  3. session

==========================================================

.

.

==========================================================

.

.

original source : https://youtu.be/E3l438hLGCw

==========================================================

.

.

==========================================================

.

.

==========================================================

.

.

==========================================================

.

.

==========================================================

.

.

==========================================================

.

.

original source : https://youtu.be/uru2mtT4mLY

image
image
image

versionCode 는 스트링으로 표현되어 있는데 integer형태를 가지고 있다.(전환가능한 형태)

image

=========================================================

.

.

image
image

checkSelfPermission()을 통해 app이 사용자로 부터 획득한 permission이 있는지 확인할수 있다.  shouldShowRequestPermissionRationale()을 통해 사용자로 부터 permission 획득시 왜 필요한지 설명이 필요한지 아닌지를 확인할수 있다. requestPermissions()를 통해 사용자로부터 permission을 획득하는 ui를 작동할수 있다.

=========================================================

.

.

image
image

=========================================================

.

.

image
image

=========================================================

.

.

image
image
image
image

아래에서 values-ko가 맞는 내용이다. ko는 locale을 나타낼때 사용하고 kr는 국가 코드이다.

image

=========================================================

.

.

image

=========================================================

.

.

image
image
image

=========================================================

.

.

image
image

=========================================================

.

.

image
image

=========================================================

.

.

image
image

=========================================================

.

.

image

=========================================================

.

.

image

=========================================================

.

.

image

=========================================================

.

.

image

=========================================================

.

.

image

original source : https://youtu.be/bc6wW-g6uss

image
image

=========================================================

.

.

image

=========================================================

.

.

image

=========================================================

.

.

image

content provider에서 data set이란 database의 table이라고 생각할수 있다.

=========================================================

.

.

content provider에서 data를 가져올때 cursor에 넣어서 되돌린다. 즉 cursor를 통해 data에 접근하게 된다. 

image
image

=========================================================

.

.

image

Contract class는 아래와 같이 만들수 있다. authority, data set이름, uri, 칼럼이름, type 이름등을 지정해서 여러곳에 햇갈리지 않고 일관되게 사용할수 있게 한다. 

image
image

content provider의 data에 접근하기위해 <uses-permission> 를 이용해서 permission을 얻을수 있다. content provider는 다른 app이 어떤 permission을 얻어야 하는지 지정해주어야 한다. 경우에 따라 다른 app에게 임시 permission은 허용하기 위해서는 content provider에 android:grantUriPermissions를 설정하거나 하위에 <grant-uri-permission>설정한다. 임시 permission 이 필요한 app의 경우 호출 intent에 위와 같이 Flag를 지정해 준다. 

image
image
image

=========================================================

.

.

image
image
image
image
image

=========================================================

.

.

image
image
image

=========================================================

.

.

참고자료) UriMatcher 실제 사용 예시 https://youtu.be/6ZbAsvifQq8

image

=========================================================

.

.

image
image

=========================================================

.

.

image

=========================================================

.

.

authority, data set이름, uri, 칼럼이름, type 이름등을 지정해서 여러곳에 햇갈리지 않고 일관되게 사용할수 있게 한다. 

image
image

=========================================================

.

.

image
image
image
image
image
image
image
image

=========================================================

.

.

image

original source : https://youtu.be/UyUmQaUtUVI

=========================================================

.

.

=========================================================

.

.

아래는 service에서 activity로 data를 전달하는 경우이다.

=========================================================

.

.

아래는 service에서 activity로 data를 전달하고 다시 data를 전달 받는 경우를 보여주고 있다.

=========================================================

.

.

=========================================================

.

.

application A는 permission #1을 정의하고 normal level로 정의했다. 이경우 application은 permission #1을 가지고 있으므로 application A에 접근가능하다. 그러나 application B는 permission level이 signature이므로 application C에서 permission #2를 가지고 있음에도 불구하고 application B에 접근할수 없다.

=========================================================

.

.

=========================================================

.

.

original source : https://youtu.be/hLPXmoU9D4s

image
image

=========================================================

.

.

image
image

=========================================================

.

.

image
image

Sticky Broadcast의 경우 이미 발생한 이벤트가 시스템에 저장되어있다가 앱이 사용자에 의해 구동되고 앱이 진행되는 가운데 코드상에서 registerReceiver()를 통해 receiver가 등록되면 저장되었던 이벤트가 전달되는 경우를 말한다.

=========================================================

.

.

image
image

=========================================================

.

.

아래는 android studio를 이용 receiver를 추가하는 방법을 설명한다.

image
image
image
image
image
image
image
image

=========================================================

.

.

image

=========================================================

.

.

image
image
image

registerReceiver()를 사용한 경우 memory leak방지를 위해 반드시 unregisterReceiver()를 수행한다.

=========================================================

.

.

image

original source : https://youtu.be/hLPXmoU9D4s

=========================================================

.

.

=========================================================

.

.

Sticky Broadcast의 경우 이미 발생한 이벤트가 시스템에 저장되어있다가 앱이 사용자에 의해 구동되고 앱이 진행되는 가운데 코드상에서 registerReceiver()를 통해 receiver가 등록되면 저장되었던 이벤트가 전달되는 경우를 말한다.

=========================================================

.

.

=========================================================

.

.

아래는 android studio를 이용 receiver를 추가하는 방법을 설명한다.

=========================================================

.

.

=========================================================

.

.

registerReceiver()를 사용한 경우 memory leak방지를 위해 반드시 unregisterReceiver()를 수행한다.

=========================================================

.

.