본문 바로가기
[android] Pie (POS) 에서의 text [android] Pie (POS) 에서의 text https://android-developers.googleblog.com/2018/07/whats-new-for-text-in-android-p.html PrecomputedText -TextView 에서 text 의 measure, layout 에 엄청 많은 일을 한다.font file 을 읽고, 상형문자를 찾고, shape 를 결정하고, bounding box 를 measure 하고, cache 를 한다.그리고 이 모든 일들은 UI Thread 에서 이루어진다. ( frame 하락을 가져온다. ) 이 중에서 text measuring 이 90% 시간을 차지한다.이 문제를 해결하기 위해 Jetpack 의 일부로 PrecomputedText 가 들어갔.. 2019. 7. 25.
[android] Android P 부터는 기본으로 TLS [android] Android P 부터는 기본으로 TLS https://android-developers.googleblog.com/2018/04/protecting-users-with-tls-by-default-in.html android:usesCleartextTraffic 이라는 manifest attribute 가 MOS 부터 추가되었다. NOS 에서는 Network Security Config 기능이 추가되었다. - 모든 Connection 이 TLS 를 사용한다면 아무런 조치를 취하지 않아도 된다. - TLS 는 느리지 않다. - Socket 을 직접 만들어 사용하는 경우 SocketFactory 대신 SSLSocketFactory 를 사용해라. SSLSocket 은 hostname veri.. 2019. 7. 24.
[android] POS, target SDK 28 이상의 동작 변경 [android] POS, target SDK 28 이상의 동작 변경 https://developer.android.com/about/versions/pie/android-9.0-changes-28 * Foreground services -Android 9 이상을 target 하는 앱들은 반드시 FOREGROUND_SERVICE 권한을 받아야 한다.이것은 normal permission 으로 system 이 자동으로 grant 해준다.target 이 android 9 이상을 하는데, 이 권한이 없는 경우 SecurityException 이 발생한다. * Privacy changes ** Build serial number deprecation -Build.SERIAL 값이 항상 UNKNOWN 을 제공한다.. 2019. 7. 23.
[Android] 8.1 Feature and APIs (API Level 27) [Android] 8.1 Feature and APIs (API Level 27) https://developer.android.com/about/versions/oreo/android-8.1 * Android Oreo ( Go Edition ) -Android GO 는 온라인을 접하기 시작하는 사람들을 위한 안드로이드 경험을 최적화한 첫 시도이다.안드로이드 8.1 부터, 우리는 안드로이드를 진입 장벽이 적은 우수한 플랫폼으로 만들기로 했다.GO edition 에는 다음과 같은 설정이 들어간다. 1. 메모리 최적화 : 1GB 이하의 단말에서도 앱이 잘 돌아가도록 메모리 사용에 대한 개선이 있었다.2. 유기적인 타겟 옵션 : 구글 플레이를 통해 low-RAM 단말을 target 할 수도 있는 새로운 하드웨.. 2019. 7. 22.
[android] Adoptable Storage [android] Adoptable Storage https://source.android.com/devices/storage/adoptable -안드로이든 항상 외부 저장 장치(예를 들면 SD card)를 지원했다.그러나 이 장치들은 전통적으로 단순 파일 저장소로 제한되어 있었고, 비영구성이라는 이유로 전통적인 외부 저장소에는 최소한의 데이터 보호만이 적용되었다.안드로이드 6.0 (MOS) 에는 external storage 를 internal storage 처럼 작동하도록 하는 기능이 도입되었다. -Android 7.0~8.1 에서 FBE 와 adoptable storage 와 함께 사용되지 못한다.FBE 를 사용중일 때는 새로운 저장 공간 (예를 들면 SD card) 는 반드시 전통적인 저장공간으로.. 2019. 7. 9.
[android] File-Based Encryption & Direct Boot mode -Android 7.0 (NOS) 이상부터는 file-based encryption (이하 FBE) 를 지원한다.FBE는 각각 다른 key 를 사용하여 각각 다른 파일들이 encrypt 될 수 있고, unlock 도 각각 될 수 있다. (DE 와 CE 를 각각 암호화하고, 각각의 접근범위를 설정한다.) ( 돼왕 : 무슨 말인지 전혀 모를텐데 뒤를 쭉 읽어보면 이해가 될 것이다. ) 이 글에서는 새로운 단말에서 어떻게 FBE 를 enable 시킬 수 있는지, 어떻게 시스템 앱이 새로운 Direct Boot API 들의 장점을 최대한 활용할 수 있게 업데이트 되었는지, 그리고 유저에게 최상의 보안을 제공할 수 있는지를 알려준다. -Android 7.0~8.1 단말에서는 FBE 가 adoptable stora.. 2019. 7. 8.
[RxJava] #8 테스팅과 Flowable 8.1. JUnit 5 활용 -JUnit 5 의 가장 큰 특징은 모듈화.JUnit 4 까지는 단일 jar 파일로 구성되었다. -JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage 처음 JUnit 5 를 활용하는 개발자는 Jupiter 만 참조하면 된다, Jupiter 는 내부적으로 JUnit Platform 을 의존한다.JUnit Vintage 는 JUnit 3 혹은 JUnit 4 에서 작성한 테스트 코드를 JUnit 5 로 실행할 때 필요하다. -다음과 같이 gradle 에 설정이 필요하다.// Version 은 알아서 최신으로! testCompile ‘org.junit.jupiter:junit-jupiter-api:5.0.0-RC2’testRuntim.. 2019. 6. 12.
[RxJava] #7 디버깅과 예외 처리 7.1. 디버깅 7.1.1. doOnNext(), doOnComplete(), doOnError() 함수 - onNext, onError, onComplete 에 대해 doOnNext(), doOnComplete(), doOnError() 가 매핑된다. 7.1.2. doOnEach() 함수 - doOnEach 는 onNext, onComplete, onError 이벤트를 한번에 처리할 수 있어 편하다. noti.isOnNext(), noti.isOnComplete(), noti.isOnError() 를 통해 상태를 조회할 수 있다. onNext() 함수의 경우 getValue() 호출하면 발행한 값을 얻을 수 있고, onError() 함수의 경우 getError() 함수를 호출하면 Throwable 객체.. 2019. 6. 11.
[RxJava] #6 안드로이드의 RxJava 활용 [RxJava] #6 안드로이드의 RxJava 활용 - 자바8에는 Stream API 와 같은 Push-based 데이터 처리 기능이 있다. 그러나 안드로이드에서는 이러한 자바 8의 기능을 완벽하게 사용할 수 없다. - 안드로이드에서 RxJava 를 활용할 수 있는 RxAndroid 라는 라이브러리를 사용할 수 있다. 6.1. RxAndroid 소개 - RxAndroid 는 RxJava 에 최소한의 클래스를 추가하여 안드로이드 앱에서 리액티브 구성 요소를 쉽고 간편하게 사용하게 만드는 라이브러리이다. - RxAndroid 의 장점은… 간단한 코드로 복잡한 concurrency 프로그래밍을 할 수 있다. 비동기 구조에서 에러를 다루기 쉽다. 함수형 프로그래밍 기법도 부분적으로 적용할 수 있다. 6.1.1... 2019. 6. 10.
반응형