본문 바로가기

프로그래밍 놀이터/안드로이드, Java1058

[android 10] 개발자를 위한 Android Q 가이드 (Highlights) [android 10] 개발자를 위한 Android Q 가이드 (Highlights) https://developer.android.com/about/versions/10/highlights -안드로이드 10 은 세가지 중요한 주제로 개발.첫번째는 모바일 분야의 혁신적인 최신 기술을 적용한 것 (ML (Machine-learning), foldable 지원, 5G 가능 폰)두번째로는 보안에 중요 포인트를 두었다는 것.마지막은 사용자의 digital wellbeing 확장. Innovation and new experiences * Foldables -multi-resume 에 대한 지원이 강화됨.resizeableActivity manifest attribute 의 작동방식이 수정되었다. * 5G net.. 2020. 3. 17.
[android 10] android Q 기능과 API 들 [android 10] android Q 기능과 API 들 https://developer.android.com/about/versions/10/features 보안 강화 * 생체 인증 dialog 의 개선 -Android 10 에서는 통합 생체 인증 dialog 가 강화되었다.... * 내장된 DEX code 를 APK 에서 직접 수행한다. -platform 에 앱의 APK file 안에 embedded 된 DEX code 를 실행하도록 할 수 있다.이 option 은 공격자가 단말에서 locally compile 한 것으로 대체하는 공격을 막을 수 있다. -이 feature 를 enable 하면 앱 성능에 영향이 있을 수 있다. 왜냐하면 이 옵션이 on 되면 ART 는 앱이 시작할 때 AOT 로 co.. 2020. 3. 16.
[android 10] Q target 하는 앱의 동작 변화 [android Q] Q target 하는 앱의 동작 변화 https://developer.android.com/about/versions/10/behavior-changes-10 non-SDK interface 제한 업데이트 -앱의 안정성과 호환성 문제 해결을 위해 non-SDK interface 제약이 Pie 에서 도입되었다.Q 에서는 관련 list 가 업데이트 되었다. 앱이 Q 를 target 하지 않으면, 이 변화는 바로 영향을 미치지 않겠지만 결국 high risk 로 다가올 것이다. 공유 메모리 -ashmem 이 dalvik map (/proc//maps) 형태로 변화되었다. 앱이 dalvik map format 에 의존하고 있었다면, 앱 개발자는 새로운 /proc/maps 포맷을 단말에서 테.. 2020. 3. 15.
[android 10] 모든 앱에 해당하는 동작 변화 [android Q] 모든 앱에 해당하는 동작 변화 https://developer.android.com/about/versions/10/behavior-changes-all Non-SDK interface 제한 -Pie 부터 Non-SDK interface 제한이 시작되었다.Q 에서는 해당 list 를 업데이트하였다.목표는 모든 private api 를 제거하는 것이다. -Android Q 를 target 하지 않는다면, 몇몇 변화는 즉각적으로 영향을 미치지 않을 것이다.하지만 현재 greylist 에 있는 non-SDK interface 를 사용한다면, 이것은 미래에 어떻게든 high risk 로 돌아올 것이다. -만약 앱이 non-SDK interface 를 사용하는지 확실치 않다면 테스트 해서 찾.. 2020. 3. 14.
[coroutine] Shared mutable state and concurrency [coroutine] Shared mutable state and concurrency https://github.com/Kotlin/kotlinx.coroutines/blob/master/docs/shared-mutable-state-and-concurrency.md#shared-mutable-state-and-concurrency -Dispatchers.Default 와 같은 dispatcher 를 사용하여 coroutine 은 multi thread 에서 병렬적으로 수행될 수 있다.이는 일반적인 병렬 관련 문제를 보여준다.주요 문제는 공유된 변경가능한 상태에 대한 동기화이다. The problem -suspend fun massiveRun(action : suspend () -> Unit){ val.. 2020. 3. 13.
[coroutine] Channels [coroutine] Channels https://github.com/Kotlin/kotlinx.coroutines/blob/master/docs/channels.md#channels Channel basics - Channel 은 BlockingQueue 와 매우 비슷한 개념이다. 한가지 큰 차이는 blocking 하는 put 대신 suspending function 인 send 가, blocking 하는 take 대신 suspending function 인 receive 가 있다는 것이다. fun main() = runBlocking{ val channel = Channel() launch{ for( x in 1..5) channel.send( x * x ) } repeat(5) { println(.. 2020. 3. 12.
[coroutine] Asyncronous Flow [coroutine] Asyncronous Flow https://github.com/Kotlin/kotlinx.coroutines/blob/master/docs/flow.md#asynchronous-flow Representing multiple values -복수개의 값은 kotlin 에서 collection 을 사용하여 표현할 수 있다.fun foo() : List = listOf(1,2,3) fun main() { foo.forEach { value -> println(value) } } // 1 // 2 // 3 * Sequences -어떤 숫자를 계산하는데 CPU 를 blocking 하는 code 를 사용하고, 그 과정에 각각 100ms 가 걸린다면 우리는 이 숫자들을 Sequence 로 표현.. 2020. 3. 11.
[coroutine] Composing Suspending Functions ( suspending 함수 만들기 ) [coroutine] Composing Suspending Functions ( suspending 함수 만들기 ) https://github.com/Kotlin/kotlinx.coroutines/blob/master/docs/composing-suspending-functions.md#composing-suspending-functions Sequential by default - 2개의 suspending function 이 있다고 가정해보자. 그리고 그 두 개의 함수가 remote service call 이나 계산을 하는 등의 의미있는 행동을 하며, 시간이 좀 걸린다고 해보자. suspend fun doSomethingUsefulOne(): Int{ delay(1000L) // 의미있는 행동이라 가.. 2020. 3. 10.
[coroutine] Cancellation and Timeouts ( 취소와 타임아웃 ) [coroutine] Cancellation and Timeouts ( 취소와 타임아웃 ) https://github.com/Kotlin/kotlinx.coroutines/blob/master/docs/cancellation-and-timeouts.md#cancellation-and-timeouts Cancelling coroutine execution -오랜 시간 운영되는 앱의 경우 bg coroutine 을 잘 컨트롤 할 필요가 있다.예를 들어 user 가 coroutine 을 수행시킨 page 를 닫고, 해당 작업의 결과는 더 이상 필요없다면, 해당 작업을 취소시킬 필요가 있다."launch" 함수는 Job 을 return 하며, 이 녀석은 동작중인 coroutine 을 취소시킬 수 있다.fun m.. 2020. 3. 9.