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으로 올려버리니 기존 웹 연동 소스 들이 작동 하지 않아 고민 하던 중에 해결방법을 찾아 공유 합니다. [해결 방안..
- 림의 외경
- 라이젠
- 티스토리 초대장
- 1800TI
- Looper.prepare()
- 다렉
- 초대장
- 블로그 개설
- 예약메일 전송
- 국기 다는 시간
- 포아너
- 래디어 구조
- 테일즈 오브 베르세리아
- 투표소
- 민주당 대선 후보
- ONLINE JSON
- unbound prefix
- 단면폭
- 7700K
- 한글 패치
- 배달 지연
- JSON PASER
- 한글패치
- 19대 선거
- GPU 출시
- 하이엔드 그래픽카드
- 사제 쿨러
- GPU 출시가격
- 오픈베타
- 1800X
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |