본문 바로가기

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

[android] Pie 에서 앱 잘 작동하는지 확인하기 [android] Pie 에서 앱 잘 작동하는지 확인하기 https://developer.android.com/about/versions/pie/android-9.0-migration#ct -targetSdkVersion 을 올리지 않아도 pie(android 9) 에서 제대로 작동하지 않는 경우가 있다.그래서 아래의 것들을 확인해봐야한다. * non-SDK interface 에 대한 제약 -특정 non-SDK interface 에 대한 접근이 막힌다. 이것이 직접적 사용이던, JNI 를 통하던 reflection 을 통하던 말이다.제한된 interface 에 접근하는 것은 NoSuchFieldException 또는 NoSuchMethodException 을 발생시킨다.이에 대한 자세한 내용은.. htt.. 2019. 7. 30.
[android] Pie (9) 의 Power management [android] Pie (9) 의 Power management https://developer.android.com/about/versions/pie/power -Android 9 (API 28) 에서는 전원 관리를 위한 새로운 feature 가 추가되었다.이 전원 관리 기능은 2가지 카테고리로 나뉜다. 1. App standby buckets 시스템이 단말의 CPU, 배터리 등의 리소스 사용을 유저의 사용 패턴에 의해 제한한다. 2. Battery saver 개선 Battery saver 가 켜져 있을 때 시스템이 모든 앱에 대해 제한을 건다. 이건 기존에 있던 기능인데, Pie(9) 에서 개선되었다. * App Standby Buckets -얼마나 최근에 얼마나 자주 앱이 사용되었는지에 대한 유저.. 2019. 7. 29.
[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] File-Based Encryption & Direct Boot mode https://source.android.com/security/encryption/file-basedhttps://developer.android.com/training/articles/direct-boot -Android 7.0 (NOS) 이상부터는 file-based encryption (이하 FBE) 를 지원한다.FBE는 각각 다른 key 를 사용하여 각각 다른 파일들이 encrypt 될 수 있고, unlock 도 각각 될 수 있다. (DE 와 CE 를 각각 암호화하고, 각각의 접근범위를 설정한다.) ( 돼왕 : 무슨 말인지 전혀 모를텐데 뒤를 쭉 읽어보면 이해가 될 것이다. ) 이 글에서는 새로운 단말에서.. 2019. 7. 8.
[RxJava] #8 테스팅과 Flowable [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-jupite.. 2019. 6. 12.