안드로이드/SDK version

안드로이드 7.0 Nougat 대응

코딩하는후운 2021. 3. 24. 17:21
반응형
    • Multi-Window 지원
    • Display Size 변경가능
    • Extended Doze
    • 브로드퀘스트리시버 (CONNECTIVITY_CHANGE) 메니페스트에 static 하게 선언 불가 

 

1. Multi_Window 지원 

 

- 기존 삼성단말에서 지원하던 Multi-Window 가 누가 버전에서는 기본으로 기능이 탑재 됩니다. 

- 기존 삼성단말에서의 Multi_Window 와는 다르게 해당 앱 창이 포커스게 되지 않았을시에 onResume이 타지 않는다고 함.

- 동영상 재생앱 경우 동영상 정지 이벤트를 onPause 가 아닌 onStop 에 하도록 권고 함 

 

멀티 윈도우 막는 방법

 - target>=24  :   manifest에  android:resizeableActivity=false; 속성 추가

 - target<24 : 기존 가로 세로 고정  추가로 가능 

 


2. Display size 변경가능

- 환경설정-디스플레이 메뉴에서 화면 사이즈 변경이 가능합니다.  5단계로 조절이 가능하며 dp 가 변동됩니다. .

- 최소 220dp까지 변경되며 리소스 폴더 관련 관리를 신경 써 줘야 합니다. 

 


3. Extended Doze 

- Doze 모드는 안드로이드 M버전부터 추가된 기능입니다. 이모드에 들어가는 조건에는 3가지가 있습니다

      • 충전중이지 않으며
      • 핸드폰이 움직이지 않으며
      • 스크린오프상태로  1시간(시간은 정확하지않습니다)

- 위에 조건 중 움직이고있으나 사용자가 핸드폰을 15분동안 사용하지 않으면 이 Extended Doze 모드에 들어가게된다. 네트워크가 연결되지 않으며 백그라운드돌아가는 서비스들이 뒤로 밀리게된다.

4. BroadCastReceiver static한 CONNECTIVITY_CHANGE 선언(manifest에 선언) 제약

- 기존 CONNECTIVITY_CHANGE 를 메니페스트에 action을 등록하여 리시버로 받아 사용하는 경우가 많다 네트워크 변경됬을때 체크하기위해 많이 사용하게되는데 이상황에서 실제 돌고있는 앱이 아닌 앱들도 리시버등록을 해놓았을대 앱이 다 메모리에 올라와서 메모리 누수가 생기는 경우가 있다고 한다. 그래서 N 버전부터는 메니페스트에 선언하는 스텍틱한 방법은 지원하지 않으며 런타임에 리시버를 등록해서 사용하도록 권한다

 

기타 : NEW_PICTURE, NEW_VIDEO 은 지원하지 않는다고한다.



 

기타 : 

  •  File system permision changes ( MODE_WORLD_READABLE/MODE_WORLD_WRITEABLE)
  • "file:// URI" 형태로 file경로는 외부로 전달 불가
  • private NDK libraries 오류(여러 목록이 있지만 눈에 띄는것은 libcrypto.so 정도)
  • 일부 API삭제

 

-FileProvider

앱과 앱간의 파일공유 정책이 변경되었다.

앱 외부에서 file:URI를 참조하면 FileUriExposeException이 발생한다.

앱 사이에 파일을 공유하려면 content:URI를 사용해야 하고, 이 URI에 접근권한을 허용해야 한다.

 

FileProvider란?

앱과 앱사이의 안전한 파일 공유를 가능하게하는, ContentProvider의 하위 클래스이다.

file:URI 대신 content:URI를 사용한다.

 

 

 

출처 : 

dunkinpender.tistory.com/11

mixup.tistory.com/98

developer.android.com/about/versions/nougat/android-7.0-changes.html#sharing-files

stickyny.tistory.com/110

반응형