본문 바로가기

안드로이드

configChanges 앱 runtime중 환경에 변화가 일어나면 실행중인 activity는 destory되며 재시작됩니다. 이때 activity가 재시작되는 것을 원치 않을때에는 manifest에 android:configChanges의 attribute에 알맞은 값을 넣어서 재시작을 방지합니다. attribute의 속성은 다음과 같은 종류가 있습니다. mcc : SIM 이 Detect 되고 MCC 가 Update. ( IMSI Mobile Country Code가 변한 경우) mcc : SIM 이 Detect 되고 MNC 가 Update. ( IMSI Mobile Network Code가 변한 경우 ) locale : 새로운 언어(Locale)를 변경했을 때 touchscreen : Touch Screen Hardware .. 더보기
build.gradle 쉽게 관리해보자. 프로젝트 개발을 하다보면 build.gradle에 여러가지 작업을 해야합니다. 기존적인 앱설정, 라이브러리의 추가 등등.. 이번에 개발한 프로젝트에서는 추가한 sdk들이 너무 많았고 그로인해 추가해야할 설정값들이 많았습니다. 관리적 측면에서 build.gradle에서 BuildConfig에 추가하여 관리하는 것이 낫다고 생각했습니다. apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' android { compileSdkVersion 28 defaultConfig { applicationId "com.tes.. 더보기
okhttp3를 이용하여 재인증하기(refresh token) 지난시간에는 retrofit2와 okhttp3의 해더를 이용해 인증하는 방법에 대해서 알아보았습니다. https://akaisun.tistory.com/72 retrofit2를 사용하여 Authorization 인증하기 앱에서 서버와 통신할 때 사용자의 인증이 필요한경우 해더에 Authorization를 넣어 통신한다. Authorization에도 BearerToken, ApiKey, OAuth2.0등 여러가지 종류가 있다. 그럼 어떻게 해더에 Authorization를 넣.. akaisun.tistory.com 앱에서 서버로 인증할때는 OAuth 2.0방법을 가장많이 사용하는데 이에 대한 설명은 아래의 링크를 참조해주세요. https://oauth.net/2/ OAuth 2.0 — OAuth OAuth.. 더보기
retrofit2를 사용하여 Authorization 인증하기 앱에서 서버와 통신을 할 때 사용자의 인증이 필요한 경우가 있습니다. 이럴 경우에는 해더에 Authorization를 추가하여 인증된 사용자만 정보를 취득하도록 합니다. Authorization에도 BearerToken, ApiKey, OAuth2.0등 여러가지 종류가 있습니다. 그럼 어떻게 해더에 Authorization를 넣을까요? 제가 즐겨쓰는 retofit2와 okhttp3를 이용하여 알아보도록 할게요. 먼저 retorfit2의 custom header를 사용하여 추가하는 방법입니다. public interface ApiService { @Headers("Authorization: your auth token") @GET("/test") List getTestData(); } 또 다른 방법으로는 .. 더보기
progress wrapper 안드로이드 개발을 하다보면 progress를 사용하여 현재 데이터를 처리중이라는 것을 알려야할 때가 있다. 다음은 우리가 흔히 볼수 있는 progress를 사용하는 방법이다. 위의 코드는 왼쪽과 같은 결과를 나타낸다. xml 디자인을 하다보면 다양한 뷰를 추가해아하고 progress의 경우 다른 뷰보다 최상위로 표현하기위해 가장 하단에 선언하여 사용한다. 하지만 좀 더 직관적이면서 심플하게 xml에 적용하고 싶었고 custom view를 만들어 사용하게됬다. 다음은 custom view를 이용한 progress wrapper를 만들어 사용한 예제다. custom_progress.xml ProgressWrapper.kt class ProgressWrapper @JvmOverloads constructor(.. 더보기
x86 emulation currently requires hardware acceleration 이글은 windows10 / android studio 3.3.1을 기준으로 작성되었습니다. 안드로이드 에뮬레이터를 사용하려고 할 때 다음과 같은 에러가 출력이 되었다. x86 emulation currently requires hardware acceleration x86에뮬레이터를 쓰려면 하드웨어 가속이 필요하다는 것인데. 아래와 같이 박스친 툴을 설치하면 된다. 하지만 설치 한 이후에도 계속 같은 오류가 발생한다면 BIOS설정에서 Virtualization Technology 기능을 활성화 해야한다. 또한 Windows 기능 켜기/끄지 설정에서 Windows 하이퍼바이저 플랫폼이 활성화 되있는지도 체크하자. 완료가 되었다. 이제 즐겁게 개발하면 된다. 더보기
library version check 안드로이드에서 gradle에 라이브러리를 추가해서 사용을 하다보면 경우에따라 최신버전을 사용해야하는 경우가 있습니다. 일일히 github에서 라이브러리 버전을 체크한다던지 안드로이드 스튜디오에 있는 library dependency를 검색해서 확인하는 방법이 있지만 검색어에 따라 결과가 너무 많이 뿌려지기 때문에 불편함이 있었습니다. 그러다 VersionChecker 플러그인을 발견하게되었고 소개해드리고자합니다. Seetings -> Plugins으로 이동하여 version checker라고 입력을 합니다. 검색결과에는 나타나지 않습니다. search in repositories를 눌러봅니다. 검색결과가 하나 나타납니다.install을 눌러 설치합니다.그리고 안드로이드 스튜디오를 restart 해주세요... 더보기
안드로이드 4+버전에서 애드몹이 안보이는 현상 This app is using a lightweight version of the Google Mobile Ads SDK that requires the latest Google Play services to be installed, but Google Play services is either missing or out of date. 안드로이드 4+에서 애드몹과 관련해 안보이는 현상이 일어나서 구글링을 해보니 일종의버그라고 한다. 참고페이지http://stackoverflow.com/questions/37330290/no-admobs-displayed-on-2-3-but-displayed-with-android-4-with-google-play-servic 해결방법이 없는가 싶었는데 해당어플의 캐시.. 더보기