안드로이드용 스칼라 프로그래밍
저는 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
'programing' 카테고리의 다른 글
Pandas: Excel 시트에서 항상 첫 번째 시트/탭 선택 (0) | 2023.08.14 |
---|---|
다중 업데이트 mysql (0) | 2023.08.14 |
단일 C 파일의 FFT (0) | 2023.08.09 |
오라클의 클로브에서 서브스트링을 추출합니다. (0) | 2023.08.09 |
웹 사이트가 중지될 때 Oracle 데이터 공급자가 IIS 작업자 프로세스를 pegging합니다. (0) | 2023.08.09 |