[android] Android 6.0(MOS) SDK 에서 바뀐 것들!! |
https://commonsware.com/blog/2015/08/17/random-musings-android-6p0-sdk.html
-
ACTION_INSTALL_PACKAGE 를 사용하면서 targetSdkVersion 이 22 이상이면 REQUEST_INSTALL_PACKAGE permission 이 반드시 있어야 한다.
-
PendingIntent 는 FLAG_IMMUTABLE 이라는 option 이 있다.
이것은 PendingIntent 를 invoke 할 때 변형되지 않게 하는 것으로 security 측면에서 좋다.
-
새로운 Setting screen 들을 Settings 의 action string 을 통해 접근할 수 있다.
ACTION_MANAGE_WRITE_SETTINGS 는 app 이 system setting 을 쓸 수 있는지를 보여준다.
app 이 WRITE_SETTINGS permission 을 요청하면 위의 ACTION 을 통해 띄워진 화면의 list 에서 해당 앱을 확인할 수 있다.
App 에서는 Settings.System.canWrite() 를 호출하여 setting 값을 쓸 수 있는 permission 이 grant 되었는지 확인할 수 있다.
ACTION_MANAGE_OVERLAY_PERMISSION 은 다른 앱 위에 그릴 수 있는 권한이 있는지를 보여주는 화면으로 이동할 수 있다.
SYSTEM_ALERT_WINDOW 가 이 화면의 listing 에 관여를 하며,
Settings.System.canDrawOverLays() 를 통해 해당 permission 이 grant 되었는지 확인할 수 있다.
-
다음 2개의 Settings action 은 app standby 와 whitelist 에 대한 설정을 보여준다.
ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS 는 white list 에 있는 app 을 toggle 할 수 있는 기능을 보여주고,
ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 는 white list 에 app 을 등록시키는 action 이다.
ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 를 사용하기 위해서는 REQUEST_IGNORE_BATTERY_OPTIMIZATIONS permission 이 필요하다.
이 녀석은 normal permission 이다.
-
PowerManager 의 isDeviceIdleMode() 는 device 가 idle 이라 곧 Doze 모드에 빠질 것이라는 사실 여부를 return 한다.
ACTION_DEVICE_IDLE_MODE_CHANGE 는 app 의 상태가 바뀌었을 때 날아간다.
isIgnoringBatteryOptimizations() 는 user 가 app standby whitelist 에 등록했는지를 알려준다.
-
App Assist stuff 가 document 가 잘 되었으며 Activity 의 onProvideAssistData 메소드를 호출한다.
-
BatteryManager 는 ACTION_CHARGING 과 ACTION_DISCHARGING 을 제공한다.
ACTION_BATTERY_CHANGED 와는 달리 이 두 녀석은 manifest 에 static 으로 등록될 수 있는 것으로 보인다.
isCharging() method 가 charge 여부를 return 하기도 한다.
-
system 또는 signature|system permission protectionLevel level 은 deprecated 되었다.
그 대신 다른 protectionLevel flag 들이 나왔다.
-
Browser provider 관련된 녀석이 많이 제거되었다. ( deprecated )
Browser provider 는 bookmark 등을 접근할 수 있는 기능들이 있었다.
-
StrictMode 가 이제는 detectResourceMismatches() 를 지원한다.
-
TextView 가 XML attribute android:breakStrategy 와 android:hyphenationFrequency 를 통해서 line-break 와 하이픈 사용을 control 할 수 있다.
line-break 전략은 simple, high-quality, balanced 를 설정할 수 있는데, high-quality 는 hyphenation 와 조합하여 사용한다.
Hyphenation 전략은 none, less-frequent 그리고 standard 가 있다.
defauilt 는 high-quality & default 설정이다.
-
WebView 는 HTML5 의 MessageEvent interface 를 WebMessage 나 WebView 의 createWebMessageChannel(), postWebMessage() 등을 통해 제공한다.
-
ActivityOptions 의 requestUsageTimeReport 함수를 통해서 analytics 를 할 수 있다.
PendingIntent 를 등록하여 launching 후 얼마나 사용했냐 등을 분석할 수 있다.
-
ConnectivityManager 의 ACTION_CAPTIVE_PORTAL_SIGN_IN 과 같은 녀석들이 network access 가 필요할 때 저장된 어떤 정보들로 로그인을 자동 수행할 수 있게 한다.
CaptivePortal class 가 있다.
-
getSystemService() 이 type-safe 하게 변경됨
-
TelecomManager 가 call, conference, gateway, phone account 등을 hook 할 수 있는 기능을 제공한다.
-
MODE_MULTI_PROCESS 가 deprecated 되었다.
이 녀석은 여러개의 process 가 SharedPreference 에 읽고 쓰고를 동시에 할 수 있도록 하기 위함이었다.
보통 android:process 를 통해 한 app 이 process 를 여러개 돌릴 때 해당하는 현상이다.
SharedPreference 는 사실 share 해서 사용하는 것이 위험하다.
그래서 real IPC API ( broadcast, ContentProvider ) 등을 사용하는 것이 권장된다.
-
Configuration 에 isScreenRound 가 있다.
AndroidWare 용 혹은 Motorola Aura 으로 추정된다.
-
다음 permission 들이 제거되었다.
ACCESS_MOCK_LOCATION
ACCESS_SURFACE_FLINGER
AUTHENTICATE_ACCOUNTS
BRICK
CLEAR_APP_USER_DATA
DEVICE_POWER
FORCE_BACK
GET_TOP_ACTIVITY_INFO
HARDWARE_TEST
INJECT_EVENTS
INTERNAL_SYSTEM_WINDOW
MANAGE_ACCOUNTS
MANAGE_APP_TOKENS
READ_HISTORY_BOOKMARKS
READ_PROFILE
READ_SOCIAL_STREAM
READ_USER_DICTIONARY
SET_ACTIVITY_WATCHER
SET_ORIENTATION
SET_POINTER_SPEED
SUBSCRIBED_FEEDS_READ
SUBSCRIBED_FEEDS_WRITE
USE_CREDENTIALS
WRITE_HISTORY_BOOKMARKS
WRITE_PROFILE
WRITE_SMS
WRITE_SOCIAL_STREAM
WRITE_USER_DICTIONARY
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] 외부저장소의 앱 고유 영역 사용하기 (0) | 2017.09.21 |
---|---|
[android] onActivityResult 는 app 이 background 일 때 불리지 않는다 (0) | 2017.09.20 |
[android] Doze 모드와 App standby 모드 + GCM High priority message (2) | 2017.09.17 |
[android] Percent Support Library (0) | 2017.09.16 |
[android] Tinting drawables (0) | 2017.09.15 |
댓글