programing

안드로이드용 스칼라 프로그래밍

batch 2023. 8. 14. 22:41
반응형

안드로이드용 스칼라 프로그래밍

저는 Scala 2.7.3 파이널에서 Scala와 Android의 튜토리얼을 따라왔습니다.결과적으로 생성된 Android 앱은 작동하지만 가장 기본적인 애플리케이션도 컴파일하는 데 몇 분(!)이 걸리고 900kb 압축이 필요합니다. 이는 모바일 애플리케이션을 위한 쇼 스토퍼입니다.또한 IDE는 때때로 메모리가 부족합니다.아마dex같은 큰 도서관을 위해 만들어진 것이 아닙니다.scala-library.

  • 그래서 제 질문은: 실제로 이것을 해본 사람이 있는가 하는 것입니다. 그리고 이것에 대한 치료법은 없을까요?

저는 스칼라에서 기본적인 안드로이드 애플리케이션을 몇 개 작성했는데, 너무 거창한 것은 없습니다.자바 프로그래머가 아니었기 때문에, 저는 "트리셰이크"를 사용하라고 친구로부터 이것이 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 응용 프로그램을 만들 수 있습니다.ProGuard 도구를 통합하여 결과 APK 파일에서 지방을 제거하므로 필요에 맞는 것 같습니다.

https://github.com/jvoegele/gradle-android-plugin/wiki

스칼라 기반 빌더 sbt용 플러그인인 sbt-android-plugin도 있습니다.

튜토리얼 및 예제는 스테판 미쉘우드의 "안드로이드 탐색" 페이지를 참조하십시오. http://lamp.epfl.ch/ ~httpsou/https/

Eclipse 3.7, Scala 2.10 및 플러그인 Android Proguard Scala v50을 사용하여 이 세부 솔루션을 확인했습니다.

https://stackoverflow.com/a/11084146/1287856

모든 것이 잘 작동합니다.기본 활동 클래스가 확장된 단순 테스트 애플리케이션은 38Kb만 사용합니다.라이브러리 프로젝트가 지원됩니다.Proguard는 프로젝트를 내보낼 때 활성화됩니다.

스칼라용 안드로이드 앱 개발은 지속적으로 진화하고 있습니다.현재 가장 좋은 방법은 SBT가 Android-sdk-plugin과 함께 사용하는 것으로 보이며 이는 유지 관리*되며 Scala/Android 프로젝트에서 잘 작동합니다.이미 언급한 Scaloid와 함께 이 플러그인을 사용하는 것을 보여주는 최근의 예도 찾을있습니다.

이 질문은 스택 오버플로에 대한 답변이 오래된 질문의 일반적인 예입니다.이 대답은 언젠가는 구식이 될 것입니다.

이 답변 스레드에 언급된 다른 SBT 기반 프로젝트는 작성 당시 지난 6개월 동안 작성된 코드가 없는 것으로 보입니다.최신 Scala 및 SBT 버전과의 호환성 문제가 있을 수 있습니다.

메이븐을 사용하는 경우 시작 템플릿으로 Android-scala-test를 사용합니다.그것은 즉시 사용할 수 있는 저에게 아주 효과적입니다.

Scaloid는 Scala로 작성된 Android API 래퍼로, Android 프로그램을 Scala 스타일로 작성할 수 있도록 도와줍니다.

SBT 없이 Android에서 Scala를 사용할 수 있으며, Gradle이 안드로이드 애플리케이션을 만들기 위해 외부에서 구축했습니다.https://github.com/yareally/android-scala-intellij-no-sbt-plugin

Gradle은 SBT보다 안드로이드를 위한 더 기본적인 빌드 도구입니다.

Scala 클라이언트 및 서버 측 솔루션 개념의 좋은 예와 IntelliJ IDEA 워크벤치의 고급 기능인 Gradle Building Tool이 있습니다.

핵심 클래스가 클라이언트와 서버에 공통적이라는 큰 진전이 있습니다.

https://github.com/ghik/akkdroid

IDEA 및 안드로이드 스마트폰을 위한 좋은 튜토리얼: http://fxthomas.github.io/android-plugin/

안드로이드에서 스칼라의 가장 큰 문제는 컴파일 시간입니다.

Proguard 클래스 스트리핑으로 인해 8GB의 듀얼 쿼드 코어(8-CPU) E5450 Xeon에서 IDEA13/Scala 플러그인이 포함된 컴파일이 2분 이상 걸릴 수 있습니다.

컴파일 시간이 너무 답답해서 큰 Scala Android 프로젝트를 마치고 자바로 다시 돌아왔습니다.

언급URL : https://stackoverflow.com/questions/476111/scala-programming-for-android

반응형