Share
Embed
キャッチアップ Android 13 / Catch up Android 13
TechFeed Conference 2022
https://techfeed.io/events/techfeed-conference-2022
次の Android バージョンである Android 13 の機能について紹介します。
Yuki Anzai
May 14, 2022
Transcript
22 slides
-
"OESPJEͷػೳΛΞϓϦͰࢼ͢ IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTTFUVQTEL android { compileSdkPreview "Tiramisu" defaultConfig { …
targetSdkPreview "Tiramisu" … } … } -
ͯ͢ͷΞϓϦʹӨڹ͢Δมߋ w 'PSFHSPVOE4FSWJDFT '(4 5BTL.BOBHFS w +PC4DIFEVMFSͷQSFGFUDIࢦఆ w #BUUFSZ3FTPVSDF6UJMJ[BUJPO w
/PUJ fi DBUJPO༻ͷSVOUJNFQFSNJTTJPO w ʜ -
/PUJGJDBUJPO༻ͷSVOUJNFQFSNJTTJPO w /PUJ fi DBUJPOΛૹΔͷʹQFSNJTTJPO͕ඞཁʹ w ΞϓϦΛΠϯετʔϧ͢Δͱ w "OESPJE·ͰσϑΥϧτͰ/PUJ fi
DBUJPOΛૹΕΔ w "OESPJE͔ΒσϑΥϧτͰ/PUJ fi DBUJPOΛૹΕͳ͍ʢ1FSNJTTJPO ͕ڐՄ͞Ε͍ͯͳ͍ʣ -
/PUJGJDBUJPO༻ͷSVOUJNFQFSNJTTJPO w UBSHFU4EL7FSTJPO"OESPJE w "OESPJE.BOJGFTUʹ BOESPJEQFSNJTTJPO1045@/05*'*$"5*0/4Λએ ݴ͠ͳ͍ͱɺઃఆΞϓϦ͔Β௨Λ༗ޮʹ͢Δ͜ͱ ͕Ͱ͖ͳ͍ EJTBCMFE
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> -
/PUJGJDBUJPO༻ͷSVOUJNFQFSNJTTJPO w UBSHFU4EL7FSTJPO"OESPJE w ৽͘͠ΠϯετʔϧɺΠϯετʔϧ͞Εͨঢ়ଶͰ ʹ04Ξοϓσʔτ w /PUJ fi DBUJPODIBOOFM͕࡞ΒΕͨ͋ͱͰ࠷ॳͷ
"DUJWJUZ͕։࢝͞ΕΔͱ͖PS"DUJWJUZΛ։࢝͠ ͯ࠷ॳͷ/PUJ fi DBUJPODIBOOFMΛ࡞ͬͨͱ͖ʹ 1FSNJTTJPOμΠΞϩά͕දࣔ͞ΕΔ -
/PUJGJDBUJPO༻ͷSVOUJNFQFSNJTTJPO w UBSHFU4EL7FSTJPO"OESPJE w Πϯετʔϧ͞Εͨঢ়ଶͰʹ04Ξοϓσʔτ w Ξοϓσʔτલʹ௨͕ڐՄ͞Ε͍ͯΔ߹ w 1FSNJTTJPOμΠΞϩά͕දࣔ͞ΕΔ·ͰҰ࣌తڐՄঢ়ଶʹͳΔ w
1FSNJTTJPOμΠΞϩάͰϢʔβʔ͕ڐՄɾڋ൱Λબ͠ͳ͍ͰμΠΞ ϩάΛดͨ͡߹Ұ࣌తڐՄঢ়ଶ͕ଓ͘ -
"OESPJEҎ߱ΛUBSHFUͱ͢ΔΞϓϦʹӨڹ͢Δมߋ w GPSFHSPVOETFSWJDFͷOPUJ fi DBUJPOʹର͢Δ/PUJ fi DBUJPOQFSNJTTJPOͷӨڹ w OFBSCZ8J'JEFWJDFT༻ͷ৽͍͠SVOUJNFQFSNJTTJPO w
3&"%@&95&3/"-@4503"(& 83*5&@&95&3/"-@4503"(& QFSNJTTJPOͷഇࢭ w όοΫάϥϯυͰCPEZTFOTPSTΛ͏߹৽͍͠QFSNJTTJPO͕ඞཁʹ w *OUFOU fi MUFSTCMPDLOPONBUDIJOHJOUFOUT w #BUUFSZ3FTPVSDF6UJMJ[BUJPO w .FEJBDPOUSPMTEFSJWFEGSPN 1MBZCBDL4UBUF IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTCFIBWJPSDIBOHFT -
"OESPJEҎ߱ΛUBSHFUͱ͢ΔΞϓϦʹӨڹ͢Δมߋ w GPSFHSPVOETFSWJDFͷOPUJ fi DBUJPOʹର͢Δ/PUJ fi DBUJPOQFSNJTTJPOͷӨڹ w OFBSCZ8J'JEFWJDFT༻ͷ৽͍͠SVOUJNFQFSNJTTJPO w
3&"%@&95&3/"-@4503"(& 83*5&@&95&3/"-@4503"(& QFSNJTTJPOͷഇࢭ w όοΫάϥϯυͰCPEZTFOTPSTΛ͏߹৽͍͠QFSNJTTJPO͕ඞཁʹ w *OUFOU fi MUFSTCMPDLOPONBUDIJOHJOUFOUT w #BUUFSZ3FTPVSDF6UJMJ[BUJPO w .FEJBDPOUSPMTEFSJWFEGSPN 1MBZCBDL4UBUF IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTCFIBWJPSDIBOHFT -
"OESPJEҎ߱ΛUBSHFUͱ͢ΔΞϓϦʹӨڹ͢Δมߋ w GPSFHSPVOETFSWJDFͷOPUJ fi DBUJPOʹର͢Δ/PUJ fi DBUJPOQFSNJTTJPOͷӨڹ w OFBSCZ8J'JEFWJDFT༻ͷ৽͍͠SVOUJNFQFSNJTTJPO w
3&"%@&95&3/"-@4503"(& 83*5&@&95&3/"-@4503"(& QFSNJTTJPOͷഇࢭ w όοΫάϥϯυͰCPEZTFOTPSTΛ͏߹৽͍͠QFSNJTTJPO͕ඞཁʹ w *OUFOU fi MUFSTCMPDLOPONBUDIJOHJOUFOUT w #BUUFSZ3FTPVSDF6UJMJ[BUJPO w .FEJBDPOUSPMTEFSJWFEGSPN 1MBZCBDL4UBUF IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTCFIBWJPSDIBOHFT -
"OESPJEҎ߱ΛUBSHFUͱ͢ΔΞϓϦʹӨڹ͢Δมߋ w GPSFHSPVOETFSWJDFͷOPUJ fi DBUJPOʹର͢Δ/PUJ fi DBUJPOQFSNJTTJPOͷӨڹ w OFBSCZ8J'JEFWJDFT༻ͷ৽͍͠SVOUJNFQFSNJTTJPO w
3&"%@&95&3/"-@4503"(& 83*5&@&95&3/"-@4503"(& QFSNJTTJPOͷഇࢭ w όοΫάϥϯυͰCPEZTFOTPSTΛ͏߹৽͍͠QFSNJTTJPO͕ඞཁʹ w *OUFOU fi MUFSTCMPDLOPONBUDIJOHJOUFOUT w #BUUFSZ3FTPVSDF6UJMJ[BUJPO w .FEJBDPOUSPMTEFSJWFEGSPN 1MBZCBDL4UBUF IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTCFIBWJPSDIBOHFT -
৽͍͠ػೳ w 1SFEJDUJWFCBDLHFTUVSF w 5IFNFEBQQJDPOT w ৽͍͠1IPUP1JDLFS w ΞϓϦ͝ͱͷݴޠઃఆ w
ຊޠͷંΓฦ͠Ґஔͷվળ w ʜ IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTGFBUVSFT -
1SFEJDUJWFCBDLHFTUVSF w "OESPJE fi OBMSFMFBTF͔ΒEFWFMPQFSPQUJPOΛ༗ ޮʹ͢Δͱ͑Δ w "OESPJEҎ߱ͷ࣍ͷNBKPSWFSTJPO·ͰʹରԠ͕ඞ ཁ
IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTGFBUVSFTQSFEJDUJWFCBDLHFTUVSF -
5IFNFEBQQJDPOT w ୯৭༻ͷΞϓϦΞΠίϯ IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTGFBUVSFTUIFNFEBQQJDPOT <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> <background android:drawable="…" />
<foreground android:drawable="…" /> <monochrome android:drawable="@drawable/ic_launcher_monochrome" /> </adaptive-icon> -
৽͍͠1IPUP1JDLFS private val photoPickerLauncher = registerForActivityResult( object : ActivityResultContract<String,
Uri?>() { @CallSuper override fun createIntent(context: Context, input: String): Intent { return Intent(MediaStore.ACTION_PICK_IMAGES) .setType(input) } override fun parseResult(resultCode: Int, intent: Intent?): Uri? { return intent.takeIf { resultCode == Activity.RESULT_OK }?.data } } ) { // ... } IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTGFBUVSFTQIPUPQJDLFS -
<manifest …> <application … android:localeConfig="@xml/locales_config"> … </application> </manifest> <?xml version="1.0"
encoding="utf-8"?> <locale-config xmlns:android="http://schemas.android.com/apk/res/android"> <locale android:name="ja"/> <locale android:name="fr"/> <locale android:name="en"/> </locale-config> SFTYNMMPDBMT@DPO fi HYNM ΞϓϦ͝ͱͷݴޠઃఆ "OESPJE.BOJGFTUYNM