Google Android는 .NET을 지원합니까? [닫은]


253

이제 Google의 Android OS가 포함 된 G1을 사용할 수있게되었습니다. 곧 Android 플랫폼이 .Net을 지원합니까?


24
이제 뭔가가 될 것입니다!
Calanus

더 중요한 것은 Microsoft가 .NET을 Windows 이외의 플랫폼으로 이식하는 것입니까?
케리

답변:


325

업데이트 : 2 년 전에이 답변을 썼기 때문에 Android에서 실행되도록 Mono를 제품화했습니다. 이 작업에는 Mono를 Android로 포팅, Visual Studio와 통합, Mac 및 Windows에서 MonoDevelop 용 플러그인 빌드 및 Java Android API를 .NET 언어로 노출하는 몇 가지 단계가 포함되었습니다. 이것은 현재 http://monodroid.net 에서 사용할 수 있습니다

Android의 Mono는 Mono 2.10 런타임을 기반으로하며 C # 4.0 컴파일러를 사용하여 기본값은 4.0 프로필이며 Mono의 새로운 SGen 가비지 수집 엔진은 물론 Java 및 Mono에서 GC를 수행하는 새로운 분산 가비지 수집 시스템을 사용합니다.


아래 링크는 2009 년 1 월 현재 Android의 모노를 반영하므로 역사적 맥락을 유지했습니다.

Koushik Dutta와 Marc Crichton의 작업 덕분에 Mono는 이제 Android에서 작동합니다.

여기에서 실행되는 비디오를 볼 수 있습니다 : http://www.koushikdutta.com/2009/01/mono-on-android-with-gratuitous-shaky.html

그리고 여기 모노를 직접 만드는 지침을 얻을 수 있습니다 : http://www.koushikdutta.com/2009/01/building-mono-for-android.html

Mono의 JIT와 Dalvik의 인터프리터를 비교 한 벤치 마크는 다음과 같습니다. http://www.koushikdutta.com/2009/01/dalvik-vs-mono.html

물론 Mono를 사용하여 사전 구성된 이미지를 얻을 수 있습니다 (자세한 내용은 게시물 하단으로 이동) .http : //www.koushikdutta.com/2009/01/building-mono-for- android.html


1
글쎄, 나는 MS 나 구글이 아니라 아마 미구엘이라고 말했고 여기에 당신이 있습니다 (잘 알고 있습니다. 그러나 어떻게 든 가깝습니다) 미겔과 연결되어 있습니다. Google이이 기능을 지원할 것이라고 생각하십니까? 그들이 포트 아래에서 포트를 가져가는 것을 의미합니까? : 나는 내 자신의 대답 : downvote 할 수 있다면
OscarRyz

6
음, 그것은 동일한 하드웨어에서 실행되는 데비안에서만 실행되는 것입니다. 내 의견으로는 "안드로이드"로 포팅되지는 않았지만 완전히 포팅하는 데 큰 문제는 아닌 것 같습니다.
sandos

1
궁금한 점이 있는데, 설치하기 쉽도록 Google과 대화를 나눈 적이 있습니까? 아마도 마켓에서 무료로 다운로드 할 수 있습니까? .Net 앱을 시장에 출시 할 수 있습니까?
csauve

1
Visual Studio Express에서는 작동하지 않습니다.
Rockcoder

1
대박. 업데이트 된 답변을 보내 게되어 기쁩니다. +1 Miguel
Steven Evers

78

예, 가능할 것입니다. 그렇게 어렵지는 않습니다. 이 시점에서 시작하기 위해 필요한 것은 MSIL을 Dalvik bytecode 로 변환하는 일종의 변환기입니다 . 두 형식 모두 공개 소스이며 잘 문서화되어 있으므로 아무런 문제가 없습니다.

따라서 C # 또는 VB.NET에서 Android 애플리케이션을 작성하는 것이 가능할 것입니다. 문제는 .NET 프레임 워크 표준 라이브러리가 얼마나 지원 될 것인가입니다. 그러나 그것은 또 다른 문제입니다.

오스카 레예스는 다음과 같이 썼습니다.

구글이 .net에 관심을 가지고 있다면 안드로이드가 첫 단계에 있었을 때 무언가를 디자인했을 것입니다. 지금은 프로덕션 단계에 있지 않습니다. 나는 그것이 불가능하다는 것을 의미하지는 않습니다. 제가 말하는 것은 그들이 관심이 없다는 것입니다. 아마도 10 년 후에 mmm hhh 일 것이다.

실제로 그들이 이미 디자인 한 것은 Java 및 .NET과 매우 호환 됩니다.

한 번에 모든 작업을 수행 할 수는 없지만 Android SDK를 살펴보면 dx 라는 도구가 있습니다. 이 도구는 Java 바이트 코드를 Dalvik 바이트 코드로 변환합니다. 즉, 현재 Android에서 Java로 작성된 프로그램을 손쉽게 실행할 수 있습니다. 이제 .NET에도 동일한 도구가 필요합니다.

.NET과 Java가 얼마나 유사한 지 고려하면 실제로 시간 문제입니다.

ddimitrov는 다음과 같이 썼습니다.

.Net-> Java-> Dalvik 번역은 지금도 가능합니다 ( http://dev.mainsoft.com/ ).하지만 .Net 라이브러리의 부족을 과소 평가한다고 생각합니다. 물론 누군가는 모노를 포팅 할 수 있지만 확실히 사소한 노력은 아닙니다.

모노를 포팅 할 필요가 없습니다. 안드로이드에는 이미 VM과 기본 API가 있습니다. 필요한 것은 CIL-> Dalvik 변환기와 Android API 용 소형 .NET 래퍼 (일부 표준 .NET 클래스의 기본 구현) 일뿐입니다. 그게 다야.

업데이트 : .NET은 이미 Android에서 작동 하므로 위에서 언급 한대로 Monodroid ( http://monodroid.net ) 라는 제품이 필요합니다 .


예, 우리는 ... 아마도, 아마도 ... 음 대신 (10)는 4 세 만들 ... 결코 알지 못할 : P
OscarRyz

16
동의하지 않습니다. 당신이 말하는 모든 것은 기술적으로 가능하지만, 나는 당신이 필요한 작업을 몇 배 정도 과소 평가한다고 생각합니다. 몇 시간 만에 크로스 컴파일 된 hello 단어와 같은 개념 증명을 쉽게 정리할 수 있습니다. 그러나 모든 클래스에 랩퍼를 설정하는 것은 많은 작업입니다.
레나 Schimmel

4
@Brian, 귀하가 게시 한 비디오는 Android가 아닌 iPhone에 관한 것입니다.
lubos hasko

14
글쎄, 구글의 자바 선호도를 감안할 때 .NET을 사용 하지 않았다는 것은 놀라운 일 이 아닙니다 . 예. Mono를 사용하는 것이 가능할 수도 있지만 Microsoft가 Linux를 사용하지 않는 것과 비슷한 열성으로 .NET을 사용하지 않는 것이 거의 확실합니다.
Joey

2
"소규모 기업은 큰 기업이 그 뒤에 무게를 두지 않는 한 미래에 내기를 걸지 않을 것입니다." Novell은 이미 후원하고 있습니다. 또한 Microsoft는 코덱과 테스트 제품군을 제공하여 파생 프로젝트 Moonlight를 지원합니다.
sblom

23

Miguel de Icaza는 2010 년 2 월 17 일 자신의 블로그 에서 MonoDroid라고하는 Android 용 모노 작업을 시작 한다고 발표했습니다 .

이것은 아이폰의 모노 터치와 비슷하지만 대신 안드로이드 용입니다.

안드로이드 UI에 바인딩을 제공하므로 앱은 라이브 네이티브 안드로이드 앱을보고 느낄 수 있습니다. 이를 위해서는 안드로이드 전용 UI를 작성해야합니다.

그러나 재 컴파일 할 필요없이 기존 하위 레벨 라이브러리를 재사용 할 수 있습니다.


Monodroid 베타는 베타 프로그램에 일찍 가입 한 사람들에게 제공됩니다.
Damian

예, 현재 비공개 베타 버전으로 등록했지만 지금까지 초대장을 놓쳤습니다. (
trampster

9

Android 용으로 포팅 된 .NET 프레임 워크 인 Mono for Android가 있습니다. 또한 C # 및 핵심 .NET API를 사용하여 Android 기반 응용 프로그램을 개발하기위한 개발 스택 인 MonoDroid가 있습니다. MonoDroid Preview 1은 며칠 전에 출시되었습니다.


9

이것은 Android 및 .net 지원을 검색 할 때 Google의 첫 번째 링크 중 하나이므로 여기에 게시하는 것이 적합합니다.

모노 프로젝트는 C #과 같은 CIL 언어를 사용하여 Android 애플리케이션을 개발하기 위해 SDK를 개발 중입니다. 단점은 상용 제품이 될 것입니다. 단일체


7

MonoDroid는 미리 볼 수 있습니다. 나는 그것이 격차를 해소 할 것이라고 생각한다. 그러나 MonoDroid는 개발 비용이 많이 드는 옵션이 될 수 있습니다. 다른 개발 도구의 가격은 199 달러에서 4000 달러 사이입니다 (MonoTouch .. iPhone 개발 도구는 399 달러에서 3999 달러 사이입니다). 사람들이 이러한 도구를 사용하여 앱을 개발하는 경우 수익을 내기 위해서는 매우 강력한 비즈니스 모델이 필요합니다.


6

xmlvm을 확인하십시오. 이것이 가능하다고 생각합니다. 이 비디오 도 확인할 수 있습니다


나는 그 대답을 좋아한다. 그것은 가능하다는 것을 보여 주지만, 그 비디오를 보면, 여전히 해결하기 위해 열려있는 문제의 수와 그 배후의 작업량도 보여줍니다.
레나 Schimmel

4

Mono 의 수정 된 포트 도 전적으로 가능합니다.


@akdom, 데스크탑 / 서버 OS에서 임베디드로 소프트웨어를 이식 한 경험이 있습니까? 나는 모바일 개발 경험 (Java와 Brew)과 IMHO를 가지고 있으며, 당신은 노력을 과소 평가하고 있습니다. 가능할 수도 있지만 향후 3 년 동안은 확실하지 않습니다.
ddimitrov

@ ddmitrov : 문제는 안드로이드 플랫폼이 .NET을 지원하는지 아닌지, 향후 3 년 이내에할지 여부입니다. Mono는 .NET의 오픈 소스 구현이기 때문에 처음부터 시작하는 것보다 Mono의 Android 버전을 구성하는 것이 더 쉬울 것이라고 단지 포지셔닝했습니다.
akdom

2
결국 3 년이 걸리지 않았습니다. 그리고 Xamarin 직원들은 6 개월 이내에 다시 할 계획입니다.
Justin

4

.NET 컴팩트 프레임 워크는 Symbian OS ( http://www.redfivelabs.com/ ) 로 포팅되었습니다 . '폐쇄 된'플랫폼 인 .NET을이 플랫폼으로 이식 할 수 있다면 Android에서이를 수행 할 수없는 이유를 알 수 없습니다.


컴팩트 한 프레임 워크를 사용해 보셨습니까? 나는 매일 직장에서 일을하며 MonoDroid 형식의 모노 포트가 더 좋습니다.
trampster

4

.NET과 Mono는 사용 방법을 알고있는 사람들을위한 많은 도구와 뛰어난 기술 기반을 갖춘 훌륭한 환경입니다.

모노는 모바일 크로스 플랫폼 개발 환경이 될 기회가 있다고 생각합니다. 이는 아이폰의 Objective-C에 대한 유일한 대안이며 Android에 이식 가능해야하며 .NET은 이미 Windows Mobile에 있습니다.

필자는 Android에서 Monotouch와 마찬가지로 Android API 용 래퍼를 사용하여 Mono의 견고한 구현을 기대하고 있으며 직접 할 수있는 입장이 아니기 때문에 지불 할 준비가되어 있습니다.


3

Android에서 Silverlight를 구현할 가능성이 높습니다. Microsoft 담당자는 문제가 있다고 말한 iPhone과 비교할 수 있음을 확인했습니다.

그러나 .Net 프레임 워크의 버전이 가능합니다. 그것에 대해 많은 관심을 가진 누군가가 필요합니다. :)

그러나 실제로 C #에서 Java로 전환하는 것은 그리 큰 문제가 아니며 두 플랫폼 (PC 대 G1)의 급격한 차이점을 고려하면 다음과 같은 응용 프로그램에 대해 하나의 코드베이스로 얻을 수 없을 것 같습니다. 둘 다 실행하고 싶었습니다.


3

제 생각에는 CLI 바이트 코드를 Dalvik으로 변환하고 컬렉션, 파일 액세스 등과 같은 일부 핵심 기능에 대한 래퍼 클래스를 작성하는 것은 기술적으로 가능할 것입니다.

그러나 Android에서 실행되는 .NET 데스크톱 응용 프로그램은 터치 장치에서 사용할 수없는 고전적인 Windows와 같은 GUI를 갖기 때문에 외계인처럼 느껴질 것입니다. 반면에 .NET에서 Android와 유사한 GUI를 코딩하려는 경우 다른 래퍼 세트가 필요합니다 (래핑은 위에서 언급 한 래퍼와 반대되는 다른 방법이라는 점에 유의하십시오).

.NET 모바일 응용 프로그램이 Android에서 기본으로 느껴질 지 확실하지 않지만 그렇지 않을 것입니다.

다른 접근 방식에 관심이있을 수도 있습니다. Java 언어로 응용 프로그램을 작성할 수 있습니다. 그런 다음 Microsoft J #을 통해 .NET으로 컴파일하고 (단종되었지만 여전히 다운로드하여 사용할 수 있음) Android에서 동일한 Java 코드를 사용할 수 있습니다. 다시 말하지만, 이는 핵심 비즈니스 클래스, 즉 비즈니스 로직에 해당되며 다시 견인 GUI를 작성해야합니다. .NET을 사용하면 J2ME에 태그를 지정할 수 있습니다.


아니, 당신은 승리 양식이 이식 될 것이라고 가정하지 않을 것입니다. monoDroid에서 실행 중
trampster

또한 Dalvik의 CLI 바이트 코드는 나쁜 생각입니다. 모노 런타임과 VM은 이미 ARM에서 작동하므로 Android에서 실행하면 문제가되지 않습니다. 그리고 mono로 보는 것은 JIT 컴파일되고 Dalvik은 해석됩니다. 모노 런타임에서 실행하는 것이 훨씬 빠릅니다.
trampster

2

Android 용 .NET은 나에게 진정한 가능성처럼 보입니다. 마이크로 소프트가 안드로이드 용으로 적절한 실버 라이트를 출시 할 것이라는 소식이있다. 부팅을 애플에 넣는 것에 대한 마이크로 소프트의 이점을 결코 과소 평가하지 말라. 더 빠르고, 기능이 풍부하고, 더 빠른 개발 수명주기, 인상적인 하드웨어, 표준 설치 가능한 Flash & Silverlight 인 스마트 폰.

Microsoft는 Android 개선에 관심을 가지고 있으며, 동시에 Silverlight 용 응용 프로그램을 개발할 예정입니다. Android에서 멀티 터치, GPS 등을 사용하는 Windows Phone 7 OS에서도 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.