2011-05-10 7 views
10

저는 C#을 잘 알고 있고 Visual Studio를 IDE로 사용하고 있습니다. :) 그러나 지금은 안드로이드 개발을 시작하고 싶습니다 ...MonoDroid VS Java에서 안드로이드 개발?

나는 약 MonoDroid에 대해 알아 냈고 Java가 더 좋게 만들 수있는 단점이 있는지 물어보고 싶었습니다. 또는 Eclipse를 제거하고 곧바로 다이빙을해야합니까? MonoDroid?

내가 이해한다면, MonoDroid는 기본 안드로이드 응용 프로그램을 배포/컴파일하며 .net과 같은 프레임 워크가 필요하지 않습니다.

MonoDroid로 할 수있는 것에 중요한 제한이 있습니까? 예를 들어 앱을 배경에서 실행하거나 이미지 편집을 위해 외부 .net 라이브러리를 사용하는 등의 작업을 할 수 있습니까?

답변

5

davlick에서 실행되는 래퍼 집합보다 훨씬 많은 내용이 있습니다. 훨씬 더 많은 내용이 있습니다. MonoDroid와 Android 간의 수평 적 관계

enter image description here

때 OS 개발자가 큰 문제가 될 같은 언어를 사용 했습니까? 많은 C++ 프로그래머가 BSD 나 SVR5를 사용하고 Windows C++에서 무엇을 할지를 알고 싶어하는 많은 C 프로그래머를 궁금해합니다 ...

+2

ok ...하지만 평신도의 용어로, 그래서 MonoDroid 룰츠 또는 MonoDroid sux? :) – Roger

+0

.net 또는 linux mono를 알고 있다면 안드로이드 개발을 고려해야합니다. familure API를 사용하여 familure 코드 편집기를 사용할 수 있다는 것은 내적 클래스에 암시 적으로 전달 된 대리자 인수에 대해 걱정하지 않고 원하는 것입니다. =) 그것은 rulz !! – RandomNickName42

+2

참고로, .NET 런타임은 Mono Android에서 Java 런타임과 함께 실행됩니다. 실행중인 두 개의 가비지 콜렉터와 두 개의 프레임 워크가 있습니다. 이는 배터리 수명, 메모리 사용 공간 등에 영향을 미칠 수 있습니다. 제게 희생은 받아 들일 만했으나 스스로 결정해야합니다. – emalamisura

7

많은 설명서가 Java로 제공됩니다. 따라서 MonoDroid를 사용할 때 전화 동작에 어려움을 겪는다면 Eclipse에 충실하기 위해 많은 도움이나 디버깅 정보를 찾을 수 없습니다.

3

어쨌든 C#으로 작성한다면 Java 코드로 마무리해야 할 것입니다. 그렇다면 요점은 무엇입니까? 또한 자바 프로그래밍을 위해 작성된 API를 이해하려고 시도하는 동안 매우 어려운 문제로 머리를 쓸 수도 있습니다 ...

+1

나는 자바보다 C#이 강하다 고 생각한다. 대부분의 C# 개발자는 MonoDroid가 많은 의미가 있다고 생각합니다. 아, 그리고 기존 코드와 동일한 코드베이스를 공유 할 수 있어야합니다. 저에게는 큰 판매 포인트가 될 것입니다. – Andy

9

저는 C#에서 재생하는 대신 똑같은 것에 대해 걱정했습니다. 익숙하지 않은 언어로, OS 개발자가 의도했던 방식을 개발하는 것. 단점 대

쉬운 목록 프로 - (monodroid의, C#을 개발자를위한)

프로

  • 익숙한 dev에 환경은 자바에게 비주얼 스튜디오를
  • C#을 대신를 사용
  • 을 개발할 수 있습니다 재사용 가능한 코드 자산 - 모노 터치와 WP7 SDK를 사용하여 iphone 프로젝트 또는 Windows phone 7 프로젝트에서 많은 코드를 사용할 수 있습니다.

단점 -

  • 디버깅 때문에 구글 API 문서의 부족으로 어려울 수 있습니다. monodroid 문서에만 의존해야합니다.
  • 새로운 최첨단 기능을 제공 할 때 지연이있을 수 있습니다. 단일 OS 팀이 출시 될 때마다 Monodroid 팀이 최신 Android 기능을 사용할 때마다 시간이 필요하다고 가정하는 것이 안전합니다.
  • 라이브러리 가용성 - 난 당신이 안드로이드 플랫폼 주위에 진화했을 오픈 소스 라이브러리를 사용하는 방법을 잘 모르겠습니다, 그 개발 시간을 줄일 수 있습니다 여기에
+2

실제 경험에 비추어 볼 때 코드베이스의 약 50-60 %를 다시 사용할 수 있다는 것을 알았습니다. MVC를 사용한 절대 추상화 및 Repoistory 패턴이 있습니다. 다른 40-50 %는 순수한 UI 코드입니다. Android는 Tab, Inflating Views 등을 사용하는 것과 같은 간단한 작업을 할 때 특히 끔찍하고 매우 장황합니다. iOS를 사용하는 비율은 70/30과 비슷하지만, Windows Phone에서 약 80/20. – emalamisura

3

는 심사숙고 할 수있는 몇 가지 사항은 다음과 같습니다

  1. Android 앱 lications는 주로 Java로 작성됩니다. Android SDK 자체는 기본적으로 Java로 작성됩니다.

  2. Mono로 작업하면 Java SDK에서 사용할 수있는 모든 기능을 제공하지 못할 수도 있습니다.

  3. C# 개발자라면 Java에서 C#에서 사용할 수있는 (멋진) 기능 중 일부 (예 : 속성 대리인 등)를 찾을 수 없을 것입니다.

  4. .NET으로 작성된 코드는 다른 환경에서 다시 사용할 수 있습니다. 이렇게하면 목표/C와 같은 새로운 언어/환경을 배우고 코딩하는 데 많은 시간을 절약 할 수 있습니다.

  5. . NET은 기존 라이브러리 및 API로 Android 개발 스택을 확장합니다.

나는 둘 다 특정 이유로 좋다고 생각합니다. 안드로이드 개발에 어느 쪽이 더 좋은지 말하기는 매우 어려울 것입니다. 결국 그것은 당신에게 달려 있습니다.

2

또한 monodroid를 사용하는 모든 릴리스 빌드는 apk 파일 크기에 4MB를 추가하고 앱 시작 시간을 몇 초로 늘립니다.

간단한 응용 프로그램의 경우 파일 크기가 500-800 % 증가 할 수 있습니다. 이는 제 책에서 상당히 나쁜 것입니다.