Android - currentTimeMillis(), elapsedRealtime(), uptimeMillis()

Android는 다음과 같이 현재 시간, 경과 시간을 가져오는 API를 제공합니다. currentTimeMillis(), elapsedRealtime(), uptimeMillis(). 각각의 API를 소개하고 차이점에 대해서 알아보겠습니다.

23 Dec 2020

Android - PowerManager WakeLock

안드로이드는 디바이스가 사용되지 않을 때 배터리가 소모되지 않도록 절전모드로 전환됩니다. 절전모드로 진입하면 화면도 꺼지고 CPU도 멈추게 됩니다. WakeLock은 디바이스가 Sleep 상태에 빠지지 않도록 합니다. 작업을 처리하기 전에 WakeLock을 얻고, 모든 작업이 완료된 뒤에 WakeLock을 시스템에 반환하면 작업이 처리되는 중에 CPU가 멈추지 않게 됩니다.

23 Dec 2020

Android - BuildConfig 정보 읽기 및 상수 추가

Android Studio에서 Gradle로 앱을 빌드하면 BuildConfig 클래스가 생성되며, 이 클래스를 통해 Package name, Version, Debug 상태 등의 정보를 얻을 수 있습니다.

23 Dec 2020

Android 11 - 시스템 기본 카메라 정책

Android 11부터 3rd party app들은 기본적으로 시스템에 설치된 카메라를 사용하도록 변경되었습니다. 따라서 카메라를 실행시키는 앱은 Android 11에서 앱의 사용성에 문제가 없는지 확인해야 합니다. 안드로이드에서는 다음 Action들을 이용하여 카메라를 실행시킵니다. VIDEO_CAPTURE, IMAGE_CAPTURE, IMAGE_CAPTURE_SECURE

22 Dec 2020

Android - 다른 앱의 Service에 바인딩

AIDL으로 Remote Service를 구현하였습니다. 지난 글은 동일한 앱에서 정의한 서비스로 바인딩하는 예제였습니다. 만약 다른 앱에서 이 서비스로 바인딩하려면 어떻게 해야 할까요? 누구나 서비스에 접근할 수 있도록 exported=true로 선언해야하며, 각각의 앱에서 IRemoteService, IRemoteServiceCallback를 참조할 수 있도록 라이브러리를 제공해야 합니다.

20 Dec 2020

SSH key 생성하고 GitHub에 등록

Ubuntu에서 SSH Public Key를 생성하고 GitHub에 등록하는 과정을 알아보겠습니다. GitHub는 SSH Public key로 인증을 합니다. GitHub에 SSH Key를 등록하면, Local에서 GitHub에 코드를 Push할 수 있습니다.

20 Dec 2020

Java - ForkJoinPool

ForkJoinPool은 ExecutorService와 비슷합니다. Thread Pool을 생성하여 여러 작업을 병렬처리로 수행할 수 있습니다. ForkJoinPool가 조금 다른 부분은 Task의 크기에 따라 분할(Fork)하고, 분할된 Task가 처리되면 그것을 합쳐(Join) 리턴해 줍니다. 마치 분할정복법(Divide And Conquer) 알고리즘처럼 동작합니다.

13 Dec 2020

Android - Handler vs Executor

Handler는 Android에서 어떤 작업을 처리하기 위해 Message를 보내거나 Runnable을 실행하도록 설계된 클래스입니다. Executor는 Java에서 제공하는 인터페이스로, Runnable을 실행하도록 설계되었습니다. Runnable과 같은 Task를 어떤 Thread에서 수행하도록 도와주는 공통점이 있습니다. 반면에 여러가지 차이점들도 있습니다.

06 Dec 2020
codechachaCopyright ©2019 codechacha