Android Q Beta1
書き起こし https://github.com/operando/Notes/tree/master/otemachi_apk_2
Otemachi.apk #02 https://nikkei.connpass.com/event/120816/
Android QBeta1Otemachi.apk #02
View Slide
ҙॻ͖• ຊࢿྉBeta1࣌ͰͷͰ͢• Beta1Ҏ߱ɺ༷มߋ͕ߦΘΕΔՄೳੑ͕ ͋Γ·͢• ࣗͰυΩϡϝϯτͱڍಈΛ֬ೝ͢Δ͜ͱΛ͓͢͢Ί͠·͢
Android Q Beta Sample• αϯϓϧίʔυࡶʹॻ͍ͯ·͢• https://github.com/operando/Android-Q-Sample
Android Q Beta• ެࣜυΩϡϝϯτ• https://developer.android.com/preview• https://android-developers.googleblog.com/2019/03/introducing-android-q-beta.html
Privacy in Android Q• Scoped storage• Background activity starts• App access to device location• Data & identifiers• Location & network
Scoped storage• ͜Ε͕݁ߏ৭ʑมΘͬͯΔ• ͜Ε͚ͩͰ5͠ऴΘͬͪΌ͏...• ֎෦ετϨʔδΘͳͯ͘ɺࣝͱͯ͠Ͳ͏มΘΔͷ͔Λཧղ͓͍ͯͨ͠ํ͕͍͍• https://developer.android.com/preview/privacy/scoped-storage
Scoped storage• ΞϓϦઐ༻ͷ sandboxετϨʔδʹ࡞ͨ͠ϑΝΠϧଞͷΞϓϦ͔ΒΞΫηεͰ͖ͳ͘ͳΔ• ΞϓϦઐ༻ͷ sandboxετϨʔδ• Context.getExternalFilesDirͱ͔ͰऔಘͰ͖ΔσΟϨΫτϦ• ͜Ε·ͰWRITE_EXTERNAL_STORAGE ύʔϛογϣϯͰଞͷΞϓϦͷϑΝΠϧѻ͑ͨʁ
Scoped storage• ΞϓϦ͕ΞϯΠετʔϧ͞Εͯ֎෦ετϨʔδʹ ࡞ͬͨϑΝΠϧΛ͍ͨ͠ͳΒshared collectionsʹอଘ͢Δ• shared collections include• Photos & Videos• Music• Downloads
Scoped storage• shared collectionʹଞΞϓϦ͕࡞ͬͨϑΝΠϧΛӾཡʹɺతʹԠͯ͡దͳPermission͕ඞཁ• shared collectionʹଞΞϓϦ͕࡞ͬͨϑΝΠϧΛมߋʹɺಛఆͷRole͕ඞཁ• ӾཡͱมߋΛ͚ͯߟ͑Δ
Scoped storageͳΔ΄ͲΘ͔ΒΜ
Scoped storage• ֎෦ετϨʔδΛΘͳ͍ΞϓϦؔͳ͍• ֎෦ετϨʔδΛͬͯΞϓϦઐ༻ͷσΟϨΫτϦ͚͔ͩͬͯ͠ͳ͍ΞϓϦӨڹ͠ͳ͍͔• Storage Access Framework͕ศརͳͷͰ Ͱ͖Δ͚͍͖͍ͩͬͯͨؾ࣋ͪ
Background activity starts• όοΫάϥϯυͰActivityΛىಈ͢Δ͜ͱ ͷ੍ݶ• ௨ͷλοϓͳͲϢʔβૢ࡞Ҏ֎ͰόοΫάϥϯυ͔ΒͷActivityىಈ͕Ͱ͖ͳ͘ͳΔ• มͳը໘ىಈͱ͔Ͱ͍ͬͯΔ࡞ۀͳͲ͕ தஅ͞ΕͨΓ͠ͳͯ͘ࡁΉΑ͏ʹͳΔ
ྫ͑...• IntentService͔ΒstartAcitivty͢Δͱ͔Ͱ͖ͳ͘ͳΔ• Ϣʔβૢ࡞Ͱͳ͍ͷͰ
App access to device location• Ϣʔβ͕όοΫάϥϯυͰͷҐஔใऔಘΛڐ͔͢Ͳ͏͔ΛબͰ͖ΔΑ͏ʹͳΔ• iOSͬΆ͍ͧ• όοΫάϥϯυͰҐஔใΛऔΒͳ͍ΞϓϦӨڹͳ͠
Android Q features and APIs• TLS 1.3 support• Wi-Fi Direct connection API• Roles• Settings panels
Roles• υΩϡϝϯτ• https://developer.android.com/preview/features/roles
Roles• OSϨϕϧͰΑ͘ΘΕΔϢʔεέʔε͝ͱʹRoleΛ࡞ͬͨ• RoleΛ༩͑ΒΕͨΞϓϦRoleಛ༗ͷݖݶ͕༩͞ΕΔ• ֤Role͝ͱʹRoleΛ༩͑ΒΕΔΞϓϦ1ͭ
Roles defined in Android Q
Ͳ͏ͯ͠Role͕ඞཁͩͬͨͷ͔ʁ• Android QͷPrivacyपΓͷมߋͷӨڹΛड͚ͳ͍Α͏ͳಛݖͷΈ͕ඞཁͩͬͨͷ͔ͳʔͱ͔ʁ• PrivacyकΓͭͭɺϢʔβʹෆศΛ͔͚ͳ͍ͨΊͱ͔ʁ• Ϣʔβ͕ೝΊͨΞϓϦ͋Δఔ༏۰͞ΕΔ
Ͳ͏ͬͯRoleΛ༩͑Δ͔• RoleΛ༩ͯ͠΄͍͠ΞϓϦ͕ɺʮRole༩͍ͯͩ͘͠͞ʂʯͱϢʔβʹ͓ئ͍͢Δ
Roleͷ༩ΛϦΫΤετ͢Δ• RoleManager#createRequestRoleIntentͰ࡞ͨ͠IntentΛstartActivityForResult͢Δ• onActivityResultͰϦΫΤετͷ݁ՌΛड͚औΔ
Roleͷ༩ΛϦΫΤετ͢Δ
Roles Tips• adb shell dumpsys roleͰఆٛ͞Ε͍ͯΔRoleɺ֤RoleΛ༩͑ΒΕͨΞϓϦ͕֬ೝͰ͖Δ
Settings panels• ಛఆͷઃఆΛγʔϜϨεʹදࣔͰ͖Δ• ྫ͑NFCΛONͨ͠Γ͢ΔͷʹɺઃఆΞϓϦΛ։͘ͷͰͳ͘ɺSettings PanelΛ։͘• ϢʔβΞϓϦ͔Β͢Δ͜ͱͳ͘ɺઃఆΛม͑ΒΕΔ
ωοτϫʔΫͷSettings panelΛ։͘val i = Intent(Settings.Panel.ACTION_INTERNET_CONNECTIVITY)startActivityForResult(i)
ωοτϫʔΫͷSettings panelΛ։͘
Settings panels• UI෦͕SliceͰ࣮͞ΕͯΔ• ϥούʔ͕AndroidXͰಋೖ͞ΕΔΒ͍͠
Android Q Beta• ଞʹ৭Μͳมߋ͕ೖͬͯΔͷͰɺͥͻެࣜυΩϡϝϯτಡΜͰɺίʔυΛॻ͍ͯɺڍಈΛ͔֬ΊͯΈ͍ͯͩ͘͞ʂ• ެࣜυΩϡϝϯτ• https://developer.android.com/preview
Thanks!!