Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
mobilemethod-osaka-2018-11-09-jakalada-android
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Hideki Hamada
November 09, 2018
Technology
1.2k
0
Share
mobilemethod-osaka-2018-11-09-jakalada-android
モバイルメソッド大阪 第4回 登壇資料「AndroidアプリのターゲットAPIレベルを上げたときのなんやかんや」
Hideki Hamada
November 09, 2018
More Decks by Hideki Hamada
See All by Hideki Hamada
AndroidアプリとWebコンテンツの連携 / Sansan Tech Meetup Android
jakalada
1
1.2k
devio2019osaka_hamada_hideki.pdf
jakalada
0
1.8k
2019-05-18-gdg-kyoto-jakalada.pdf
jakalada
0
890
Other Decks in Technology
See All in Technology
変化の激しい時代をゴキゲンに生き抜くために 〜ストレスマネジメントのススメ〜
kakehashi
PRO
4
1.2k
AI対話分析の夢と、汚いデータの現実 Looker / Dataplex / Dataform で実現する品質ファーストな基盤設計
waiwai2111
0
270
freeeで運用しているAIQAについて
qatonchan
0
430
マンション備え付けのネットワークとLTE回線を組み合わせた ネットワークの安定化の考案
harutiro
1
110
小さいVue.jsを30分で作る
hal_spidernight
0
150
ブラウザの投機的読み込みと投機ルールAPIを理解し、Webサービスのパフォーマンスを最適化する
shuta13
3
300
SREの仕事は「壊さないこと」ではなくなった 〜自律化していくシステムに、責任と判断を与えるという価値〜 / 20260515 Naoki Shimada
shift_evolve
PRO
1
100
Modernizing Your HCL Connections Experience: Visual Report to chain, Profile Enhancements, and AI Integration
wannesrams
0
290
Digital Independence: Why, When and How
wannesrams
0
310
ハーネスエンジニアリング入門
hatyibei
0
110
AIと乗り切った1,500ページ超のヘルプサイト基盤刷新とさらにその先の話
mugi_uno
2
320
AI時代に越境し、 組織を変えるQAスキルの正体 / QA Skills for Transforming an Organization
mii3king
5
4.2k
Featured
See All Featured
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
290
A Tale of Four Properties
chriscoyier
163
24k
Designing Powerful Visuals for Engaging Learning
tmiket
1
360
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
560
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
350
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
190
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
290
Crafting Experiences
bethany
1
140
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
70
39k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
290
Transcript
"OESPJEΞϓϦͷ λʔήοτ"1*ϨϕϧΛ ্͛ͨͱ͖ͷͳΜ͔Μ ϞόΠϧϝιουେࡕୈ̐ճ ాӯथ!KBLBMBEB
ࣗݾհ w ాӯथʢ·ͩͻͰ͖ʣ
ࣗݾհ w ాӯथʢ·ͩͻͰ͖ʣ w Ϋϥεϝιουגࣜձࣾ w ϞόΠϧΞϓϦαʔϏε෦ॴଐ
ࣗݾհ w ాӯथʢ·ͩͻͰ͖ʣ w Ϋϥεϝιουגࣜձࣾ w ϞόΠϧΞϓϦαʔϏε෦ॴଐ w "OESPJEΤϯδχΞ w
ϲ݄લʹೖࣾʢ݄ʣ
ࠓ͢Δ
"OESPJEΞϓϦͷ λʔήοτ"1*ϨϕϧΛ ্͛ͨͱ͖ͷͳΜ͔Μ
࣍ (PPHMF1MBZͷཁ݅มߋ ରԠͨ͠ΞϓϦ ରԠͷ֓ཁ ରԠͷৄࡉ
(PPHMF1MBZͷཁ݅มߋ
AndroidΞϓϦ։ൃͷ Ұ࣍ใ
Android Developers https://developer.android.com
Google Developers https://developers.google.com
Google Developersͷ ϒϩά
https://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html
https://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html
https://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html
֓ཁ
https://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html
https://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html
https://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html
APIϨϕϧΛ λʔήοτʹࢦఆ͢Δʁ
https://developer.android.com/about/versions/pie/android-9.0-changes-28
https://developer.android.com/about/versions/pie/android-9.0-changes-28
"1*Ϩϕϧະຬ͕λʔήοτͷ ΞϓϦʹద༻͞Εͳ͍ https://developer.android.com/about/versions/pie/android-9.0-changes-28
λʔήοτAPIϨϕϧཁ݅
https://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html
https://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html
https://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html
https://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html
https://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html
UBSHFU4EL7FSTJPO λʔήοτ"1*Ϩϕϧͷ͜ͱ https://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html
https://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html
ίʔυωʔϜͱ͓ͯ͠՛ࢠͷ໊લ͕͍ͯΔ "OESPJE$VQDBLF ΧοϓέʔΩ "OESPJE0SFP ΦϨΦ "OESPJE1JF ύΠ
https://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html
࠷৽ͷOSʹະରԠͷ ΞϓϦެ։Ͱ͖ͳ͍
ެ։ࡁΈͷΞϓϦ ຖͷରԠ͕ඞཁ
ରԠͨ͠ΞϓϦ
ॳࣄ
None
࠷ऴߋ৽݄
࠷ऴߋ৽݄ &DMJQTF
࠷ऴߋ৽݄ &DMJQTF +BWB
࠷ऴߋ৽݄ &DMJQTF +BWB "OESPJEΛαϙʔτ
࠷ऴߋ৽݄ &DMJQTF +BWB "OESPJEΛαϙʔτ λʔήοτ"1*Ϩϕϧʜ
࠷ऴߋ৽݄ &DMJQTF +BWB "OESPJEΛαϙʔτ λʔήοτ"1*Ϩϕϧʜ
࠷ऴߋ৽݄ &DMJQTF +BWB "OESPJEΛαϙʔτ λʔήοτ"1*Ϩϕϧʜ
https://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html
https://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html
19→26Ҏ߱
ରԠͷ֓ཁ
։ൃڥ
։ൃڥ ରԠલ ରԠޙ *%& &DMJQTF "%5 "OESPJE4UVEJP ݴޠ +BWB ͦͷ··
։ൃڥ ରԠલ ରԠޙ *%& &DMJQTF "%5 "OESPJE4UVEJP ݴޠ +BWB ͦͷ··
ਖ਼ࣜ൛ϦϦʔε αϙʔτऴྃ
։ൃڥ ରԠલ ରԠޙ *%& &DMJQTF "%5 "OESPJE4UVEJP ݴޠ +BWB ͦͷ··
։ൃڥ ରԠલ ରԠޙ *%& &DMJQTF "%5 "OESPJE4UVEJP ݴޠ +BWB ͦͷ··
Ҡߦ͢Δͱͨ͠Β গͣͭ͠,PUMJO Ұؾʹ,PUMJO
Ϗϧυπʔϧ
Ϗϧυπʔϧ ରԠલ ରԠޙ (SBEMF ະ༻ "OESPJEQMVHJOGPS (SBEMF ະ༻
CVJME5PPMT7FSTJPO ෆ໌
Ϗϧυπʔϧ ରԠલ ରԠޙ (SBEMF ະ༻ "OESPJEQMVHJOGPS (SBEMF ະ༻
CVJME5PPMT7FSTJPO ෆ໌
Ϗϧυπʔϧ ରԠલ ରԠޙ (SBEMF ະ༻ "OESPJEQMVHJOGPS (SBEMF ະ༻
CVJME5PPMT7FSTJPO ෆ໌
Ϗϧυπʔϧ ରԠલ ରԠޙ (SBEMF ະ༻ "OESPJEQMVHJOGPS (SBEMF ະ༻
CVJME5PPMT7FSTJPO ෆ໌ "OESPJE4UVEJPͷҠߦ࣌ʹ ࠷৽൛͕ࢦఆ͞Εͨ
λʔήοτAPIϨϕϧؔ࿈
λʔήοτAPIϨϕϧؔ࿈ ରԠલ ରԠޙ UBSHFU4EL7FSTJPO DPNQJMF4EL7FSTJPO ෆ໌ BQQDPNQBUW
ෆ໌
λʔήοτAPIϨϕϧؔ࿈ ରԠલ ରԠޙ UBSHFU4EL7FSTJPO DPNQJMF4EL7FSTJPO ෆ໌ BQQDPNQBUW
ෆ໌ λʔήοτ"1*Ϩϕϧ
λʔήοτAPIϨϕϧؔ࿈ ରԠલ ରԠޙ UBSHFU4EL7FSTJPO DPNQJMF4EL7FSTJPO ෆ໌ BQQDPNQBUW
ෆ໌ ίϯύΠϧʹ༻͢Δ 4%,ͷόʔδϣϯ
λʔήοτAPIϨϕϧؔ࿈ ରԠલ ରԠޙ UBSHFU4EL7FSTJPO DPNQJMF4EL7FSTJPO ෆ໌ BQQDPNQBUW
ෆ໌ αϙʔτϥΠϒϥϦͷͻͱͭ
build.gradle android { // ... compileSdkVersion 28 defaultConfig { //
... targetSdkVersion 28 } } dependencies { // ... implementation 'com.android.support:appcompat-v7:28.0.0' }
λʔήοτAPIϨϕϧؔ࿈ ରԠલ ରԠޙ UBSHFU4EL7FSTJPO DPNQJMF4EL7FSTJPO ෆ໌ BQQDPNQBUW
ෆ໌
λʔήοτAPIϨϕϧؔ࿈ ରԠલ ରԠޙ UBSHFU4EL7FSTJPO DPNQJMF4EL7FSTJPO ෆ໌ BQQDPNQBUW
ෆ໌ Λ͑ͯ·Ͱ্͛ͨ
28Ͱ߹Θ͍ͤͯΔཧ༝
λʔήοτAPIϨϕϧؔ࿈ ରԠલ ରԠޙ UBSHFU4EL7FSTJPO DPNQJMF4EL7FSTJPO ෆ໌ BQQDPNQBUW
ෆ໌
λʔήοτAPIϨϕϧؔ࿈ ରԠલ ରԠޙ UBSHFU4EL7FSTJPO DPNQJMF4EL7FSTJPO ෆ໌ BQQDPNQBUW
ෆ໌ ݹ͍4%,৽͍͠4%,ΛΒͳ͍ DPNQJMF4EL7FSTJPO UBSHFU4EL7FSTJPOҎ্
λʔήοτAPIϨϕϧؔ࿈ ରԠલ ରԠޙ UBSHFU4EL7FSTJPO DPNQJMF4EL7FSTJPO ෆ໌ BQQDPNQBUW
ෆ໌ όʔδϣϯ͕ҟͳΔͱ ҟৗಈ࡞͢Δʢ͔ʣ DPNQJMF4EL7FSTJPOͱ BQQDPNQBUWͷόʔδϣϯಉ͡
λʔήοτAPIϨϕϧؔ࿈ ରԠલ ରԠޙ UBSHFU4EL7FSTJPO DPNQJMF4EL7FSTJPO ෆ໌ BQQDPNQBUW
ෆ໌ ߹ΘͤͨΒͯ͢ͷ݅Λຬͨ͢
ରԠͷৄࡉ
ਐΊํ
build.gradle android { // ... compileSdkVersion 19 defaultConfig { //
... targetSdkVersion 19 } } dependencies { // ... implementation 'com.android.support:appcompat-v7:19.1.0' } ελʔτ
build.gradle android { // ... compileSdkVersion 28 defaultConfig { //
... targetSdkVersion 28 } } dependencies { // ... implementation 'com.android.support:appcompat-v7:28.0.0' } ΰʔϧ
1ݸ্ͣͭ͛Δ
https://developer.android.com/about/versions/pie/android-9.0-changes-28
ͦͷ·͑ʹ
Android StudioҠߦ࣌Ͱ ϏϧυΤϥʔ
resource android:attr/ preserveIconSpacing is private. failed linking references.
19→22 (Android 4.4→5.1) ࢀߟ: https://stackoverflow.com/questions/29248579/error-in-declare- styleable-menuview-unable-to-find-attribute-androidpreserv
ϏϧυͰ͖ͨ
1ݸ্ͣͭ͛Δ
22→23 (Android 5.1→6.0)
ϏϧυΤϥʔ 22→23
org.apache.http ͷআ 22→23
build.gradle android { // ... useLibrary 'org.apache.http.legacy' }
ϏϧυΤϥʔղܾ 22→23
࣮ߦ࣌Τϥʔ 22→23
࣮ߦ࣌ύʔϛογϣϯ ͷ༷Ճ 22→23
ϥΠϒϥϦ͕৭ʑ͋Δ 22→23
PermissionsDispatcher ͬͨ 22→23
༻ྫ @RuntimePermissions public class MainActivity extends AppCompatActivity { @NeedsPermission(Manifest.permission.CAMERA) void
showCamera() { // ... } @OnShowRationale(Manifest.permission.CAMERA) void showRationaleForCamera(final PermissionRequest request) { // ... } @OnPermissionDenied(Manifest.permission.CAMERA) void showDeniedForCamera() { // ... } @OnNeverAskAgain(Manifest.permission.CAMERA) void showNeverAskForCamera() { // ... } } https://github.com/permissions-dispatcher/PermissionsDispatcher
23→24 (Android 6.0→7.0)
ಈ࡞ɾUIͷද͕͓͔͍ࣔ͠ 23→24
ContentResolver.addPeriodicSync ͷ༷มߋ 23→24 ࢀߟ: https://developer.android.com/reference/android/content/ContentResolver.html
ࢦఆִ͕ͨؒ͠15ʹؙΊΒΕΔ 23→24 ࢀߟ: https://developer.android.com/reference/android/content/ContentResolver.html
UIͷද͚ࣔͩमਖ਼ 23→24
24→25 (Android 7.0→7.1)
OK 24→25
25→26 (Android 7.1→8.0)
ϏϧυΤϥʔ 25→26
ActionBarActivity ͷআ 25→26 ࢀߟ: https://android-developers.googleblog.com/2015/04/android-support-library-221.html
ରԠྫ import android.support.v7.app.ActionBarActivity; // ... public class BaseActivity extends ActionBarActivity
{ // ... }
ରԠྫ import android.support.v7.app.AppCompatActivity; // ... public class BaseActivity extends AppCompatActivity
{ // ... }
26→27 (Android 8.0→8.1)
OK 26→27
27→28 (Android 8.1→9.0)
࣮ߦ࣌Τϥʔ 27→28
org.apache.http.legacy ͷআ 27→28 ࢀߟ: https://developer.android.com/about/versions/pie/android-9.0-changes-28
AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest ... > ... <application ...
> <uses-library android:name="org.apache.http.legacy" android:required="false"/> ... </application> </manifest> ࢀߟ: https://developer.android.com/about/versions/pie/android-9.0-changes-28
·ͱΊ
Ұཡ "1*Ϩϕϧ 04όʔδϣϯ ग़͖ͯͨ՝ PSHBQBDIFIUUQͷআ
࣮ߦ࣌ύʔϛογϣϯͷ༷Ճ $POUFOU3FTPMWFSBEE1FSJPEJD4ZODͷ༷มߋ "DUJPO#BS"DUJWJUZͷআ PSHBQBDIFIUUQMFHBDZͷআ
ෛ࠴ͨ͘͞ΜͬͯΔ…
͋Γ͕ͱ͏͍͟͝·ͨ͠