안드로이드 7.0 nougat의 변경점

android nougat 누가

안드로이드 차기버전 OS에서 바뀐 점에 대해 설명합니다.

누가 버전
1. 멀티 윈도우 지원
- 화면 분할
- 포커스를 받고 있는 화면만 엑티비티  resume 상태 실행 , 나머지는 onpause
- 포커스가 변경될 때 마다 onConfigrationchange 이벤트 실행

2. 설정에서 디스플레이 사이즈 변경
        - density 값이 변경됨.최소 디스플레이 지원 사이즈를 w320dp 부터 개발


3 가로/ 세로 모드 모두 지원하는 편이 좋을 듯
- 멀티 윈도우 지원 시 폰 화면에서는 강제로 가로 모드 레이아웃으로 변경됨.
- memory leak 발생하는지 확인
(예, Handler의 view Context 참조, 별도 스레드에서 Activity의 참조)

- 기본 시소스가 잘 준비되어 있는지 확인
(화면 변화에 따른 resource not found exception이 발생할 수 있음.)

- 프로세스가 재시작 되는 경우 정상 동작확인
(화면사이즈를 변경하면 프로세스가 재시작 함)

- 220dp 크기에서 화면 레이아웃 확인


멀티 원도우 제한 방법
1. targetSdk >= 24
ex> android:resizeableActivity="false"

2. targetSdk < 24
android:screenOrientation=""landscape"


2.Doze

extended doze
- 움직임이 10분간 움직임이 없을 경우
- No Network Access
- jobs/ sync deferred
- maintenance window : 약 10분에 한번씩 작동
- 1시간 정도 지나면 일반적인 Doze mode로


네트워크 연결이 필요할 땐
1. Foreground service
2. high-priority GCM
3. AlarmManager
a. setAndAllowWhileIdle / SetExactAndAllowWhilteIdle
4. Wakeloack
a. wifiManager.wifiLock
5. whitelisting 요청
a. Request_ignore_battery_optimizations : 사용 시나리오에 부합하지 않으면 앱 등록 거부 문서 참고 할 것


3. Background Optimization
 TargetSdk > 24
1. connectivity_change : 받지 못함

SDK 버전에 상관없이
1. New_picture 는 sdk 버전에 상관없이 사용하지 못함
2. new_video는 sdk 버전에 상관없이 사용하지 못함.

해결방법
1. jobScheduler (api 21)
2. FirebseJobDispatcher

Will Be..
모든 Implicit Broadcast 제거
모든 App Background Services 제거


4. file system permission changes
Private File의 권한을 공개 가능하도록 벼경 불가
MODE_WORLD_READABLE 또는 MODE_WORLD_WRITEABLE 사용 불가.

TargetSdk > 24
file://URI 형태로 외부 앱으로 전달 불가 . fileProvider 사용


 5. private ndk lib
  TargetSdk >=24 런타임에러


 알려진 버그
  listview 안에 editview 가 있을 경우 한글 입력이 안됨. 리사이클러 뷰는 괜찮음
  exifInterface, jpeg 이외 파일을 수정할 경우 file이 날라감
  WearableExtender Notification


https://developer.android.com/about/versions/nougat/android-7.0.html
https://developer.android.com/about/versions/nougat/android-7.0-changes.html

이영찬 7년전 질문


댓글 0

댓글작성

목록보기