След като се сблъсках с главата напред в толкова много проблеми, колкото има пермутации на набора от инструменти на командния ред на Android, най-накрая успях да компилирам комбинация от изходен код на Scala и Java в използваем apk.
Както предполагат мнозина, използвах proguard
, за да изстискам библиотеката на Scala чрез инструмента dex
. Проблемът е следният:
BUILD SUCCESSFUL
Total time: 1 minute 29 seconds
Минута и половина. Тук говорим за приложение със сложност Hello-World. Не мисля, че мога да се развивам така. Ще трябва да ходя на уроци по медитация.
Това е конфигурацията proguard
:
-injars ${out.absolute.dir}/classes:${scala-library.jar}(!META-INF/MANIFEST.MF,!library.properties)
-outjars ${out.absolute.dir}/classes.min.jar
-libraryjars ${android.jar}
-dontwarn
-dontoptimize
-dontobfuscate
-keep public class * extends android.app.Activity
Има ли начин да се ускори стъпката proguard?
Редактиране: Пускам това в доста прилична двуядрена, 3GB ram машина, върху 64-битов Linux. Изпълнението на ant compile
(scalac
/javac
) отнема 3 секунди. Пълен ant install
отнема 1:30, както е описано по-горе. Това е стъпката proguard
, която „замръзва“, според изхода, най-вероятно поради размерите на библиотеката за изпълнение на scala/android.