More Related Content
Similar to 2016 Android × Scala @ScalaMatsuri2016 (20)
2016 Android × Scala @ScalaMatsuri2016
- 4. ビルドシステム
• ビルドシステムが2種類ある
• android-idk-plugin
• SBTにAndroid-SDKを対応させるプラグイン
• gradle-android-scala-plugin (@saturday06さん作)
• GradleにScalaを対応させるプラグイン
• gradle-android-scala-plugin の方を採用
• 標準ビルド環境へのプラグインなので、導入がとても楽
• IDEAとの統合に特殊操作不要
• Gradle前提の各種ライブラリがそのまま使える
• 現状困っていることは無い
- 11. つらい:MultiDex地獄
• Dalvikは1dex 65,535メソッドまで制限
• Scalaを使うと余裕で突破するのでMultiDex必須
• GANMA!アプリで3Dex( ProGuard適用済み)
• 実際にはぴったり65,535詰めると2Dexだが、Android4.0.x系にバグが
あって余裕を持たせないといけない
• 初回起動がかなり遅い
• テストAPKにMultiDexをかけると死ぬ
• コマンドラインをいじってテストパッケージは除外
• 65,535超えないことを祈る。
- 12. つらい:MultiDex地獄(2)
tasks.matching {
it.name.startsWith('dex') && !it.name.contains("Test")
}.each { dx ->
if (dx.additionalParameters == null) {
dx.additionalParameters = []
}
dx.additionalParameters += '--multi-dex'
dx.additionalParameters += "--main-dex-list=$projectDir/multidex.keep".toString()
dx.additionalParameters += '--set-max-idx-number=45000'
}