Android

    [Android Wear] Ambient Mode에서 Display 정보 업데이트하기

    [Android Wear] Ambient Mode에서 Display 정보 업데이트하기

    아래 내용은 AmbientMode에 대해 이해하고 있다는 가정하에 작성하였다. AmbientMode? 안드로이드에는 배터리 효율화를 위하여 AmbientMode를 지원한다. AOD(Always On Display)가 활성화 되어있을 때 사용자가 기기를 사용하지 않는다면 AmbientMode가 활성화되며 디스플레이에 표시되는 정보의 업데이트를 하지 않고 내부적으로 시스템에 영향을 주는 요인들을 최소화 하게된다. AmbientMode Using AlarmManager 안드로이드는 AmbientMode에서도 디스플레이의 정보를 업데이트할 수 있는 방법을 제공한다. 하지만 짧은 주기의 디스플레이 업데이트는 배터리 소모에 영향을 주게 되므로 개발자가 잘 판단하여 밸런스를 맞춰줘야 한다. AmbientMode를 구..

    [Kotlin] Object

    객체선언 (Object declarions) 싱글톤 패턴은 다양한 상황에서 사용이 된다. 코틀린은 이런 싱글톤을 쉽게 사용할 수 있도록 객체선언을 이용하여 싱글톤 객체를 만들 수 있도록 지원한다. 위 처럼 class대신 object 키워드를 이용하여 객체선언이 가능하다. 이러한 선언은 싱글톤을 생성할 수 있다. 위에서 생성한 Application 이란 이름의 객체는 아래와 같이 접근이 가능하다. Application.start()객체에는 변수, 프로퍼티, 멤버함수 등을 포함시킬 수 있고, 초기화 블록도 작성할 수 있으나, init, constructor를 작성할 수는 없다. 객체의 생성은 처음 접근할 때 초기화되며, 스레드-세이프가 보장된다. 컴파일러는 여러 스레드에서 싱글톤 객체에 접근하더라도 오직 하..

    [Kotlin] @Volatile 키워드란?

    아래 코드는 Android developer 페이지의 Codelabs에서 제공하는 예시 코드이다. 해당 코드를 보면 Singleton 구현 시 변수에 @Volatile Annotation을 붙히는 것을 볼 수 있다. 이게 어떤의미 일까? // Annotates class to be a Room Database with a table (entity) of the Word class @Database(entities = arrayOf(Word::class), version = 1, exportSchema = false) public abstract class WordRoomDatabase : RoomDatabase() { abstract fun wordDao(): WordDao companion object..

    Application Foreground/Backgroud 상태 확인하기

    Application이 Foreground인지, Background 상태인지 ActivityLifecycleCallbacks 를 사용하여 확인해본다. enum class ApplicationState { FOREGROUND, BACKGROUND } class ApplicationLifecycleStatus : Application.ActivityLifecycleCallbacks { companion object { var state:ApplicationState = ApplicationState.FOREGROUND } override fun onActivityStarted(activity: Activity) { state = ApplicationState.FOREGROUND } override fun o..

    [Kotlin] Scope Function (작성중)

    Kotlin의 Scope Funtion에 대해 가끔 헷갈리는 경우가 있어 정리하고 합니다. 영역 함수 (Scope Function) 코틀린 표준 라이브러리는 객체의 컨텍스트 내에서 어떤 식, 코드 블록을 실행할 수 있는 몇 가지 함수를 제공합니다. 제공된 람다 식을 사용하여 객체에서 이러한 함수를 호출하면 임시 범위를 형성합니다. 이러한 함수를 스코프 함수라고 합니다. 영역 함수의 기본적인 역할은 함수의 인자로 전달된 람다를 간단하게 실행해주는 것입니다. Kotlin에서 제공하는 영역함수은 5가지를 표준으로 제공하고 있습니다. run let with apply also 위 표준 영역함수을 정리해보고 사용하는 방법을 간단히 정리하려 합니다. 참고로 모든 영역함수은 Inline 함수이므로 런타임에 부가적인 ..

    [Android/Unity] Failed to install the following Android SDK packages as some licences have not been accepted.

    문제 Android AAR 플러그인을 유니티 프로젝트에 추가하여 유니티 프로젝트를 빌드 시 아래와 같은 에러를 마주하는 경우가 있다. Failed to install the following Android SDK packages as some licences have not been accepted. 위 에러는 SDK에 라이센스가 없어서 발생하는 문제입니다. 해당 문제의 전체 에러 콘솔로그이다. FAILURE: Build failed with an exception. * What went wrong: Could not determine the dependencies of task ':unityLibrary:compileDebugAidl'. > Failed to install the foll..