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

Java - forEach 사용 방법

forEach는 Java8에서 추가된 메소드이며, List, Map 등을 순회(Iterate)하는데 사용됩니다. List, Map, Set, Array에서 forEach를 사용하는 방법을 알아보겠습니다. List와 같은 Collection에서 forEach()는 다음과 같이 `Consumer`라는 함수형 인터페이스를 인자로 받습니다.

05 Dec 2020

Java - Future 사용 방법

Future는 비동기적인 연산의 결과를 표현하는 클래스입니다. 즉, 멀티쓰레드 환경에서 처리된 어떤 데이터를 다른 쓰레드에게 전달하는 역할을 합니다. Future 내부적으로 Thread-Safe 하도록 구현되었기 때문에 synchronized block을 사용하지 않아도 됩니다. 예제를 보면 더 쉽게 이해가 됩니다.

05 Dec 2020

Java - Thread.join()

Thread가 종료될 때까지 기다릴 때 Thread.join()을 사용할 수 있습니다. 예를 들어, Thread A는 Thread B에게 어떤 작업을 실행시키고 완료될 때까지 기다려야 할 때가 있습니다. 이럴 때 join()을 호출하면 A는 B의 쓰레드가 종료될 때까지 기다립니다.

04 Dec 2020
codechachaCopyright ©2019 codechacha