본문 바로가기

IT/Android

9/13 read post

728x90
반응형

1.

출처 : Check AndroidManifest.xml for Android target API 31 ready.

제목 : Check AndroidManifest.xml for Android target API 31 ready.

요약 : target api 31 로 설정하면 activity, service, broadcastReceiver, intent filter 에 대해서 android manifest 파일에서 수정이 필요합니다. android:exported 속성을 명시적으로 선언해야 하는데, 이것을 설정하지 않으면 오류가 발생하지만, 오류 로그에는 어떤 부분이 오류인지 나와있지 않아 gradle task 를 이용해서 이를 탐지하는 방법을 설명합니다.

 

2.

출처 : Android Activity LaunchMode Made Simple

제목 : Android Activity LaunchMode Made Simple

요약 : android activity launch mode 를 그림으로 쉽게 설명합니다. standroid, singleTop, singleTask, singleInstance 를 설명하고 singleInstance 와 singleTask 를 혼합한 경우를 설명합니다.

 

3.

출처 : Difference between implementation, API ,compile and runtimeOnly in Gradle Dependency

제목 : Difference between implementation, API ,compile and runtimeOnly in Gradle Dependency

요약 : gradle 에서 dependency 를 처리하는 implementation 외에 api, compileOnly, runtimeOnly 에 대해서 설명합니다. implementation 은 컴파일 시간에 다른 모듈에 대한 dependency 를 누출하지 않아 api 나 compile 대비 빌드 시스템에서 다시 컴파일해야 하는 프로젝트의 양이 줄어들기 때문에 빌드 시간이 향상됩니다. api 는 compile 과 똑같이 동작하며 compileOnly 는 컴파일 클래스 경로에만 dependency 를 추가하고 runtimeOnly 는 런타임 중에 사용하기 위해 빌드 output 에만 dependency를 추가합니다. 과거 apk처럼 작동합니다.

 

4.

출처 : App Startup  |  Android Developers

제목 : App Startup

요약 : jetpack library startup 에 대해서 설명합니다. app startup 은 앱 시작시 components 를 초기화하는 간단하고 성능좋은 방법입니다. 이를 위한 gralde depency 설정 방법과 Initializer class 설정방법, manifest 수정하는 방법과, 자동 초기화를 비활성화하고 수동으로 초기화하는 방법을 설명합니다.

 

5.

출처 : App Startup, Part 1

제목 : App Startup, Part 1

요약 : contentProvider 가 시작시 일부 라이브러리와 모듈을 자동으로 로드하는 방법을 설명합니다. 라이브러리의 dependency 를 추가하고 앱 시작 시간이 늦어지는 현상을 설명하며 workManager 를 추가하고 70ms 가 더 증가한 사례를 들어 설명합니다.

 

6.

출처 : App Startup, Part 2

제목 : App Startup, Part 2

요약 : startup 라이브러리는 단순히 앱 시작시 시간을 줄이는 것이 아니라, 병합된 manifest 및 시작 프로세스에 숨겨진 content provider 를 제거하고 이러한 라이브러리를 나중에 더 의도적으로 초기화하는데 도움이 된다고 설명합니다. startup 라이브러리를 통하여 provider 를 수동으로 초기화하는 타이밍을 제어하는 것을 설명하며 이를 시작시 초기화하지 않았을 때 앱 시작시 줄일 수 있는 시간을 workmanger 의 예를 들어 설명합니다.

선정 : app startup 라이브러리의 목적을 잘 설명했기 때문에 선정합니다.

 

7.

출처 : IPC Techniques for Android -Messenger

제목 : Android IPC Mechanisms #2 — Messenger

요약 : android process 간 통신으로 messenger 를 사용하여 통신하는 방법을 설명합니다. 메신저는 원격 프로세스로 전송되는 핸들러이고 aidl 보다 구현하기가 쉽습니다. aidl 은 동시작업이 가능하지만 메신저는 대기열에 추가되어 순차적으로 실행됩니다. 메신저를 구현하는 방법을 설명합니다.

 

8.

출처 : IPC Techniques for Android -Broadcast

제목 : Android IPC Mechanisms #3 — Broadcast

요약 : broadcast receiver 를 이용해서 서버 - 클라이언트 통신을 구현하는 방법을 코드로 설명합니다. 명시적 intent 를 사용하여 구현합니다.

 

9.

출처 : Java Hashtable, HashMap, ConcurrentHashMap — Performance impact

제목 : Java Hashtable, HashMap, ConcurrentHashMap — Performance impact

요약 : hashMap, hashTable, concurrentHashMap 의 성능을 비교합니다. hashMap 과 hashTable 은 테스트에서 약 18배 성능차이를 보이며 이는 hashMap 은 thread safe 하지 않고 hashTable은 get 과 put 에 synchronized 를 사용하기 때문입니다. 결과적으로 concurrentHashMap은 thread safe 하고 성능도 hashMap 에 비해 아주 약간 떨어지기 때문에 concurrentHashMap 사용을 권장합니다.

 

10.

출처 : Rx 말고, Flow로 다중클릭 방지하기 (throttleFirst)

제목 : Rx 말고, Flow로 다중클릭 방지하기 (throttleFirst)

요약 : 다중 클릭을 방지하는 방법에 debounce 와 throtlling 이 있는데, rxJava 는 throttling 연산자가 있지만 flow 에는 없습니다. 이를 구현하는 방법을 설명합니다.

 

소요시간 : 2시간 30분

 
728x90
반응형