Android 용 스칼라 프로그래밍
I은 튜토리얼 따랐다 스칼라와 안드로이드 와 스칼라 2.7.3 최종합니다. 결과적으로 생성되는 Android 앱은 작동하지만 가장 기본적인 애플리케이션조차 컴파일하는 데 몇 분 (!)이 걸리고 900kb 압축이 필요 합니다. 이는 모바일 애플리케이션의 쇼 스토퍼입니다. 또한 IDE는 때때로 메모리가 부족합니다. 나는 dex
같은 큰 라이브러리를 위해 만들어진 것이 아니라고 가정 합니다 scala-library
.
- 그래서 내 질문은 : 누군가 실제로 이것을 했습니까? 그리고 이것에 대한 치료법이 있습니까?
스칼라에서 기본적인 안드로이드 응용 프로그램을 작성했습니다. Java 프로그래머가 아니기 때문에 "treeshake"를 사용하는 것이 좋습니다. 친구에게 이것이 jar 파일 에서 불필요한 모든 라이브러리를 제거한다고 설명했습니다 .
나는 그것을 문서화하지 않았지만 다른 누군가가 이미 가지고 있음을 발견했다.
http://chneukirchen.org/blog/archive/2009/04/programming-for-android-with-scala.html
Proguard가 유일한 솔루션은 아니며 작업 흐름에 적합하거나 환경에 더 적합한 것을 찾을 수 있습니다.
또한 Google은 JACK을 구현했으며 빌드 및 메모리 시간을 상당히 단축시킵니다. https://source.android.com/source/jack.html
이제 Gradle 용 Android 플러그인을 사용하여 Scala에서 Android 애플리케이션을 작성할 수 있습니다. 그것은 APK 파일에서 지방을 다듬기 위해 ProGuard 도구를 통합하므로 귀하의 요구를 충족시키는 것 같습니다.
https://github.com/jvoegele/gradle-android-plugin/wiki
스칼라 기반 빌더 sbt : sbt-android-plugin 용 플러그인도 있습니다.
튜토리얼 및 예제는 Stéphane Micheloud의 "Android 탐색"페이지를 참조하십시오. http://lamp.epfl.ch/~michelou/android/
Eclipse 3.7, Scala 2.10 및 플러그인 AndroidProguardScala v50으로이 자세한 솔루션을 확인했습니다.
https://stackoverflow.com/a/11084146/1287856
모든 것이 잘 작동합니다. 확장 된 기본 활동 클래스가있는 간단한 테스트 애플리케이션은 38Kb 만 걸립니다. 라이브러리 프로젝트가 지원됩니다. 프로젝트를 내보낼 때 Proguard가 활성화됩니다.
Scala 용 Android 앱 개발은 지속적으로 발전하고 있습니다. 현재 수행하는 가장 좋은 방법은 android-sdk-plugin 과 함께 SBT에 나타나고 유지 관리되며 Scala / Android 프로젝트에서 잘 작동합니다. 이미 언급 한 스칼 로이드와 함께이 플러그인을 사용하는 방법을 보여주는 다소 최근 예제 도 찾을 수 있습니다 .
이 질문은 스택 오버플로에 대한 답변이 오래된 질문 의 일반적인 예입니다 . 이 답변은 어느 시점에서 구식이 될 것입니다.
*이 답변 스레드에서 언급 된 다른 SBT 기반 프로젝트는 작성 당시 지난 6 개월 동안 코드를 작성하지 않은 것으로 보입니다. 최신 버전의 Scala 및 SBT와 호환성 문제가있을 수 있습니다.
maven을 사용하는 경우 android-scala-test 를 시작 템플릿으로 사용하십시오. 즉시 사용할 수 있습니다.
Scaloid 는 Scala로 작성된 Android API 래퍼로, Android 프로그램을 Scala 스타일로 작성하는 데 도움이됩니다.
SBT없이 Android에서 Scala를 사용할 수 있으며 Gradle에 의해 외부에서 빌드되어 Android 응용 프로그램을 만들 수 있습니다. https://github.com/yareally/android-scala-intellij-no-sbt-plugin
Gradle은 SBT보다 Android 용 기본 빌드 도구입니다.
IntelliJ IDEA 워크 벤치의 발전을위한 Scala 클라이언트 및 서버 측 솔루션 개념과 gradle 빌드 도구의 좋은 예가 있습니다.
핵심 클래스가 클라이언트와 서버에 공통이라는 큰 발전.
https://github.com/ghik/akkdroid
IDEA 및 android-plugin에 대한 유용한 자습서 : http://fxthomas.github.io/android-plugin/
Android에서 Scala의 가장 큰 문제는 컴파일 시간입니다.
8GB의 듀얼 쿼드 코어 (8-CPU) E5450 Xeon에서 IDEA13 / Scala 플러그인을 사용한 Proguard 클래스 스트리핑 컴파일로 인해 2 분 이상 걸릴 수 있습니다.
컴파일 시간이 너무 실망 스럽기 때문에 게으른 Scala Android 프로젝트를 완료 한 후 Java로 간단히 돌아갔습니다.
참고 URL : https://stackoverflow.com/questions/476111/scala-programming-for-android
'Programing' 카테고리의 다른 글
IntelliJ IDEA가있는 git : 원격 저장소에서 읽을 수 없습니다 (0) | 2020.04.03 |
---|---|
템플릿 Haskell과 연관된 타입 동의어 얻기 (0) | 2020.04.03 |
Python3에 xrange 함수가없는 이유는 무엇입니까? (0) | 2020.04.03 |
jQuery SVG 대 라파엘 (0) | 2020.04.03 |
`aria-labelledby` 및`aria-hidden` 속성은 무엇입니까? (0) | 2020.04.03 |