Retrofit2 사용 시 각종 타임아웃에 대한 처리가 필요한 경우가 있다. Retrofit2은 기본 디폴트로 아래와 같은 타임아웃을 가지고 있다. - Connection timeout: 10초 - Read timeout: 10초 - Write timeout: 10초 타임아웃별 설정은 아래와 같이 하면 된다. OkHttpClient okHttpClient = new OkHttpClient.Builder() .connectTimeout(1, TimeUnit.MINUTES) // 연결 타임아웃 .readTimeout(30, TimeUnit.SECONDS) // 읽기 타임아웃 .writeTimeout(15, TimeUnit.SECONDS) // 쓰기 타임아웃 .build(); Retrofit.Builder b..
일반적으로 앱을 배포 하기 위해서는 구글측에 검수를 요청 한 후 검수가 끝난면 앱이 배포되는 과정을 거치게 됩니다. 앱을 배포 하는 시기를 조절 하기 위해서는 앱을 구글 측에 검수 요청 하기 전에 앱 게시 시기를 수정 한 후 검수를 요청 하면 이후 게시 시기를 결정 할 수 있습니다. 1. 구글 콘솔에 앱을 검수 요청 하기 전 [게시 개요]메뉴를 누른 후 [관리] 버튼을 눌러 이동 합니다. 2. 관리형 게시 상태가 띄게 되며, 여기서 "관리형 게시가 사용 설정됨"을 누르면 게시 시기를 조절 할 수 있으며, "관리형 게시가 사용 중지됨"을 선택하면 기존처럼 앱 검수가 끝나면 자동으로 게시 되게 됩니다. 3. 이후 앱을 올려 검수가 통과 되면 "검토 및 게시" 버튼이 활성화 되며, 원하는 게시 시기에 버튼을 ..
Retrofit을 이용해 http 통신을 하던 중 "java.security.cert.CertPathValidatorException: Trust anchor for certification path not found." 에러가 발생 하였다. 해당 에러는 https 인증서가 만료 되거나 인증되지 않은 인증서를 사용 한 경우 발생 한다. 아래와 같이 OkHttpClient 사용을 수정 하였다. 문제 발생 코드 OkHttpClient client = new OkHttpClient(); 문제 해결 코드 해결 class를 하나 만들고 사용 public class TrustOkHttpClientUtil { public static OkHttpClient.Builder getUnsafeOkHttpClient() {..
상황 스토어에 배포된 "A"앱이 있는 상태에서, "A"앱에 신규 기능을 개발을 위해 브런치로 따로 빼서 개발을 진행 후 테스트를 위해 APK파일을 내부 배포 하였더니, 기존에 스토어에서 다운 받아 사용하던 사용자들이 배포된 APK파일로 앱 업데이트 시 "앱이 설치되지 않았습니다.(android app not installed)" 발생 되며, 앱 설치가 되지 않음 기존 설치 된 앱을 지우고 APK파일로 설치 시에는 정상 이용 가능 한 상태 원인 및 해결방안 실제 스토어 배포시 이용 된 서명과 동일한 키로 APK를 배포 하였기 때문에 문제가 없을 것 같았지만 업데이트가 안되어 코드를 확인 해 본 결과 개발을 진행 하던 중 테스트를 위해 임시 코딩한 "versionCode"가 스토에 배포된 "versionCo..
안드로이드에서 레이아웃을 그릴때 xml을 이용 해서 그리게 되는데, 이때 weight를 설정 해서 레이아웃의 크기를 상대적으로 지정 할 수 있게 됩니다. 이 weight를 xml이 아닌 소스 코드 상에서 아래와 같이 하면 지정 할 수 있게 됩니다. 1 2 3 4 5 TextView txt01; LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.WRAP_CONTENT ); params.weight = 1f; txt01.setLayoutParams(params); TextView인 txt01에 width가 1인 weight를 지정 하는 코드 입니다.
일반적으로 권한이 필요한 코드들에서 권한 관련 코드를 작성 하는 경우 권한 요청을 하는 코드를 작성 한 후에 권한 요청에 대해 onRequestPermissionsResult가 콜백 된 후 이후 로직을 처리 해야 합니다. 그런데 fragment에서 onRequestPermissionsResult이 콜백 되지 않는 경우가 있는데, 이럴때에는 아래 처럼 수정 해주면 됩니다. 가령 파일 저장소에 접급하는 권한을 요청 할 경우 1 2 3 4 5 6 7 8 final int RESULT_CODE = 1; //문제가 되는 코드 ActivityCompat.requestPermissions(getActivity(),new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, R..
현재 Android에서 가장 많이 사용 되는 이미지 라이브러리 중에 하나인 'Glide'에 대해서 알아 보겠씁니다. Android에서 리소스에 이미지를 불러 오거나 디바이스 내 파일 혹은 URL을 통해 이미지를 가져와 표시 하는 경우가 많은데 이럴때 사용되는 라이브러리가 바로 'Glide'입니다. 'Glide'은 2014년 공개된 라이브러리로 몇줄에 코드로 memory,캐시,디코딩등에 복잡한 작업들을 가능 하게 해주는 멋진 라이브러리 입니다. https://github.com/bumptech/glide Gradle 기준으로 123456789 repositories { mavenCentral() google() } dependencies { implementation 'com.github.bumptech...
Android에서 가장 많이 사용된 코드를 통계를 내본다면 아마도 'findViewById'로 시작되는 코드 일 것입니다. layout에서 다양한 view를 쓰기 위해서 해당 코드를 작성 후 사용 해야 하기 때문입니다. 'Butter Knife'라이브러리 이러한 작업을 대폭 줄여주는 멋진 라이브러리 입니다. https://github.com/JakeWharton/butterknife 사용법 gradle를 사용 할 경우 아래 코드를 추가 해줍니다. 1234 dependencies { implementation 'com.jakewharton:butterknife:9.0.0-rc2' annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc2' }C..
요즘에는 대부분 Android 개발을 Studio에서 진행 하지만 예전 프로젝트들은 대부분 Eclipse를 통해 개발을 진행 했습니다. Android 정책이 변경되어 2018년 11월 부터는 targetSdkVersion이 26미만은 Play store에 앱을 업데이트 할 수 없게 되어반드시 targetSdkVersion을 26을 설정 해서 업데이트를 진행 해야 합니다. 기존 프로젝트를 업데이트 하던 중 Eclipse에서 개발 하였던 프로젝트에서 웹서비스와 연동 하던 과정에서 Apache HttpComponents Client를 사용 해서 개발을 하였는데,targetSdkVersion을 26으로 올려버리니 기존 웹 연동 소스 들이 작동 하지 않아 고민 하던 중에 해결방법을 찾아 공유 합니다. [해결 방안..
[Android]JSON데이터 파싱하기(GSON 이용) 개발을 진행 하다보면 각종 서버와 데이터를 주고 받고 받아야 하는 경우가 많이 생깁니다.요즘에는 서버 API들이 대개 JSON으로 데이터를 주고 받는 편입니다. 단말기에서는 이러한 JSON를 파싱하여 사용 할 필요가 있는데, 이때 가장 많이 이용 되는 라이브러리가 바로 "GSON"입니다.GSON은 간단한 코드 몇줄로 복잡한 JSON도 간단하게 파싱하여 처리해 주는 강력한 라이브러리 입니다. 이번 포스팅에서 GSON을 이용한 JSON 파싱 방법에 대해서 알아보도록 하겠습니다. GSON Github : https://github.com/google/gson 1. GSON 준비 하기 자신에 개발 환경에 맞게 라이브러리 추가 해주면 됩니다. -안드로이드12..
- 사제 쿨러
- Looper.prepare()
- JSON PASER
- 민주당 대선 후보
- 국기 다는 시간
- 단면폭
- 래디어 구조
- 배달 지연
- 투표소
- GPU 출시가격
- 1800TI
- 초대장
- 라이젠
- 테일즈 오브 베르세리아
- 블로그 개설
- 오픈베타
- 19대 선거
- 한글 패치
- 1800X
- 다렉
- unbound prefix
- 티스토리 초대장
- 림의 외경
- 포아너
- 한글패치
- ONLINE JSON
- 7700K
- GPU 출시
- 하이엔드 그래픽카드
- 예약메일 전송
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |