Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2018-05-22-android-app-bundle

AAkira
May 22, 2018

 2018-05-22-android-app-bundle

CA.apk Google I/O 報告会
Android App Bundle
https://cyberagent.connpass.com/event/84233/

AAkira

May 22, 2018
Tweet

More Decks by AAkira

Other Decks in Technology

Transcript

  1. Agenda • About Android App Bundle • App Bundle •

    Dynamic Delivery • Develop Android App Bundle • Upload .aab file to PlayStore • bundle tool • Summary
  2. Android App Bundle arm 64 bit Lang : US hdpi

    x86 arm xxhdpi xhdpi dpi Lang : JA Lang : PL Lang : IT Lang : IS Lang : FR Lang : DE Lang : ES Lang : NL Lang : TR
  3. Android App Bundle arm 64 bit Lang : US hdpi

    x86 arm xxhdpi xhdpi dpi Lang : JA Lang : PL Lang : IT Lang : IS Lang : FR Lang : DE Lang : ES Lang : NL Lang : TR
  4. Android App Bundle arm 64 bit Lang : US hdpi

    x86 arm xxhdpi xhdpi dpi Lang : JA Lang : PL Lang : IT Lang : IS Lang : FR Lang : DE Lang : ES Lang : NL Lang : TR arm 64 bit Lang : US hdpi x86 arm xxhdpi xhdpi dpi Lang : JA Lang : PL Lang : IT Lang : IS Lang : FR Lang : DE Lang : ES Lang : NL Lang : TR 全てのリソースを 端末にインストール
  5. Android App Bundle arm 64 bit Lang : US hdpi

    x86 arm xxhdpi xhdpi dpi Lang : JA Lang : PL Lang : IT Lang : IS Lang : FR Lang : DE Lang : ES Lang : NL Lang : TR
  6. Android App Bundle hdpi x86 arm arm 64 bit Lang

    : US xxhdpi xhdpi dpi Lang : JA Lang : PL Lang : IT Lang : IS Lang : FR Lang : DE Lang : ES Lang : NL Lang : TR arm 64 bit Lang : US xxhdpi 必要なリソースのみを 端末にインストール
  7. Prepare keystore 
 $ java -jar pepk.jar \
 --keystore=[your keystore]

    \ --alias=[keystore alias] \
 --output=[encrypted_private_key] \
 --encryptionkey=[hogehogehoge]
  8. 
 $ java -jar pepk.jar \
 --keystore=[your keystore] \ --alias=[keystore

    alias] \
 --output=[encrypted_private_key] \
 --encryptionkey=[hogehogehoge] Prepare keystore storeからDL
  9. 
 $ java -jar pepk.jar \
 --keystore=[your keystore] \ --alias=[keystore

    alias] \
 --output=[encrypted_private_key] \
 --encryptionkey=[hogehogehoge] Prepare keystore 既存のkeystoreを指定
  10. 
 $ java -jar pepk.jar \
 --keystore=[your keystore] \ --alias=[keystore

    alias] \
 --output=[encrypted_private_key] \
 --encryptionkey=[hogehogehoge] Prepare keystore keystoreのaliasを指定
  11. 
 $ java -jar pepk.jar \
 --keystore=[your keystore] \ --alias=[keystore

    alias] \
 --output=[encrypted_private_key] \
 --encryptionkey=[hogehogehoge] Prepare keystore 任意のファイル名
  12. 
 $ java -jar pepk.jar \
 --keystore=[your keystore] \ --alias=[keystore

    alias] \
 --output=[encrypted_private_key] \
 --encryptionkey=[hogehogehoge] Prepare keystore storeに表示されているkeyを指定
  13. bundle tool $ ls base-hdpi.apk base-master.apk base-tvdpi.apk base-xxhdpi.apk standalone-hdpi.apk standalone-mdpi.apk

    standalone-xhdpi.apk standalone-xxxhdpi.apk base-ldpi.apk base-mdpi.apk base-xhdpi.apk base-xxxhdpi.apk standalone-ldpi.apk standalone-tvdpi.apk standalone-xxhdpi.apk toc.pb
  14. bundle tool $ bundletool get-device-spec \
 --output=<device.json> \ { "supportedAbis":

    ["arm64-v8a", "armeabi-v7a"], "supportedLocales": ["en-US"], "screenDensity": 640, "sdkVersion": 27 } Pixel2.json
  15. bundle tool android { splits { language { enable true

    include "en", "ja" } density { enable true } abi { enable true } } }
  16. bundle tool android { splits { language { enable true

    include "en", "ja" } density { enable true } abi { enable true } } } 言語ファイルの分割
  17. bundle tool android { splits { language { enable true

    include "en", "ja" } density { enable true } abi { enable true } } } 画面サイズの分割
  18. bundle tool android { splits { language { enable true

    include "en", "ja" } density { enable true } abi { enable true } } } CPU命令セットの分割
  19. bundle tool android { splits { language { enable true

    include "en", "ja" } density { enable true } abi { enable false } } } 分割不要ならfalse
  20. bundle tool android { generatePureSplits true splits { language {

    enable true include "en", "ja" } density { enable true } abi { enable true } } }
  21. bundle tool android { generatePureSplits true splits { language {

    enable true include "en", "ja" } ɹɹ… multi apk, instant appsで使われてる
  22. bundle tool android { generatePureSplits true splits { language {

    enable true include "en", "ja" } ɹɹ… min SDK21以上 multi apk, instant appsで使われてる