2010-05-14 2 views
12

나는 지금 막 나 자신에게 안드로이드 전화가있어, 나는 그것에 코딩을 시작하고 싶다! 그러나 나는 그걸로 살 수는 있지만 큰 자바 팬이 아니며, 안드로이드 가상 머신을위한 합리적인 대안이 있는지 알고 싶습니다. 나는 clojure를 사용하여 중간 규모의 프로젝트를 수행했지만, 내가 읽은 리뷰에서는 안드로이드에서 실행할 때 매우 느리다. 스칼라는 어때? 나는 어떤 사람들이 안드로이드에서 실험을했는데, "충분히 빠르다"고 읽었습니까? 학습 곡선의 크기는 얼마나됩니까?android에 자바 대신에

건배, '제 마리아

답변

4

당신이 부품 C 또는 C 프로그램 ++의를 쓸 수있는 NDK있다.

을 파이썬으로 작성하고 다른 언어로 작성할 수있는 ASE가 있습니다. 당신이 다르게 들릴 지 모르지만 파이썬 컴파일러는 없습니다.

나는 스칼라에 대해 읽었지만 관심이 없었기 때문에 나는주의를 기울이지 않았다.

+1

NDK는 현재 ARM 용 코드 만 생산합니다. 따라서 다른 CPU가있는 장치는 제외됩니다. WeTab처럼. – stesch

4

확실히 스칼라에서 안드로이드 개발을하는 사람들이 꽤 있습니다. 특히 주목해야 할 점은 Android 관련 대상이있는 Scala 프로젝트에 대해 선호하는 빌더 SBT에 대해서도 plugin입니다.

학습 곡선에 관해서는 안 했으므로 안드로이드 개발 자체를 말할 수는 없습니다. 스칼라의 경우 매우 빠른 생산성을 발휘할 수 있지만 언어의 모든 특수성을 배우려면 시간이 필요합니다. 모든 특수성을 배우려면 이 필요하지 않습니다. 사람들이 경험이 거의없는 비 장난감 프로그램을 작성하는 것을 보았습니다. 그러나 일부 사람들은 사용하는 언어에 대해 알지 못하는 경우가 있습니다.

또한 많은 스칼라 코드가 매우 선언적입니다. 예를 들어 SBT 빌드 파일을 보면 대부분 선언적입니다. 어떤 사람들은 어떤 이유로 그 일로 인해 매우 화가납니다.

저는 여러분이 스칼라에게 얼마나 잘 할 것인지는 여러분에게 주로 달려 있다고 말하고 싶습니다.

속도면에서 보면 스칼라 코드는 Java 코드만큼 빠르지 만 좀더 높은 수준의 추상화를 피할 수는 있지만 더 어렵지만 빠른 코드가 될 수 있습니다. 그것은 당신이하고있는 계산의 종류에 따라 달라집니다.

3

Android 2.2에서는 Clojure 프로그램을 훨씬 더 효율적으로로드하는 것으로 간주되는 VM에 jit을 추가합니다. Clojure는 안드로이드 프로그램이 시작될 때 잠시 시간을들이는 작은 클래스를 많이 생성합니다. 이것은 참을 수없는 안드로이드로 완화되어야한다.

+4

그리고 Clojure 코드는 dalvik이 제공 할 수없는 좋은 GC를 사용합니다. JIT 여부. – stesch

0

"충분히 빠르다"- 휴대 전화로 응용 프로그램을 실행하고 예상 한 상대적인 질문을합니다.

또한 java의 성능이 향상되었습니다. 또한 자바로 코딩 만하면된다. Google은 자바 바이트 코드를 사용하여 .dex (Dalvik Executables)로 변환하는 도구를 만들었습니다.Dalvik이 사용하는 VM 구현은이 플랫폼에 최적화되어 있습니다. 즉, 당신이 더 생산적이 될 것이라는 것을 의미하는 많은 도우미 클래스를 제공하는 자바와 같은 고수준 언어로 프로그램 할 수 있다는 것을 의미합니다.

이들은 NDK가 있지만 여전히 자바 프론트 엔드를 가지고 있어야하고 Java 코드가 필요할 때 NDK 코드를 호출해야한다고 생각합니다. 실제로 최적화가 필요할 때만 네이티브 코드를 작성하려고합니다. java nio 및 opengl 클래스와 같은 Java 클래스는 하드웨어 리소스를 직접 사용하는 로우 레버 ​​호출에 대한 래퍼입니다.

나는 약간의 질문에 답을 할 것입니다.

1

내가 놀아 봤고 흥미롭게 보이는 안드로이드에 JRuby 포트가 있습니다. http://ruboto.org/

0

또한 Lua가 있습니다.이 루아는 Corona SDK와 함께 사용할 수 있습니다.