[업데이트] 드디어 최신 툴체인을 사용하여 4.2에 앱을 배포 할 수있었습니다. 오류가 발생합니다. 원문 후 아래를 참조하십시오.
우리는 이전 Android 플랫폼 (4.4 이전)을 계속 개발하면서 Visual Studio의 최신 버전 (이 게시물 당시 2019)을 계속 사용할 수있는 장기적인 솔루션을 찾고 있습니다.
Xamarin @ Microsoft는 Xamarin.Android 릴리스 9.2에서 Android 4.4 이전에 대한 지원을 중단했지만 제품에 대한 지원을 중단 할 수 없습니다. 지금까지 특정 Android 개발에 VS2017을 계속 사용하고 있지만 VS2019와 VS2017 개발 환경 간의 격차가 증가하고 있으며 이로 인해 일상적인 개발에 오버 헤드가 증가하고 있습니다.
우리의 프로젝트는 PC에 배포 된 소프트웨어에 대한 대부분의 일반적인 코드 기반을 사용하여 개발되었지만이 코드의 일부는 특정 장치에서 실행할 수있는 Android 애플리케이션의 일부이기도합니다. 우리의 주요 활동 인 PC 개발을 위해 가능한 한 최신 .NET 표준 및 최신 도구를 사용하여 코딩 할 수 있기를 바랍니다.
Android 버전은 사용되는 하드웨어에 매우 특정한 산업용 소프트웨어이며 Android OS가 업데이트 될 것으로 기대할 수 없으므로 4.2.2의 최소 Android 버전 지원에 갇혀 있습니다.
이미 SO 및 기타 포럼에서 검색했지만 "좋은"장기적인 해결책을 찾지 못했습니다. 여기에이 주제와 관련하여 찾은 몇 가지 좋은 정보가 있습니다.
https://docs.microsoft.com/en-us/xamarin/android/release-notes/9/9.2
https://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/android-api-levels?tabs=windows
어떤 .Net Standard 버전이 어떤 Android 버전을 지원합니까?
https://github.com/xamarin/xamarin-android/blob/master/Documentation/guides/messages/xa4216.md
https://docs.microsoft.com/en-us/dotnet/standard/net-standard
현재 우리가 할 수있는 일은 다음과 같습니다.
1) 주로 코드의 공통 부분에 .NET 표준 라이브러리를 사용합니다.
2) 일반적으로 UI 부분에만 Xamarin.Android를 직접 사용하는 어셈블리가 거의 없습니다.
이것은 우리가 이미 수행하고있는 것과 비슷합니다 (제 생각에 .NET Standard에 더 많은 어셈블리를 이식 할 수 있다는 점을 제외하면).
그러나 API 레벨 4.4를 대상으로하고 4.2에서 애플리케이션을 사용하기 때문에 4.2에서 지원되지 않는 일부 API 또는 더 나쁜 경우 새 Xamarin / Mono 런타임이 이전 Android 버전을 지원하지 않기 때문에 지원되지만 버그가있는 API를 호출 할 수 있습니다. XA4216 경고가 있기 때문에 특히 그렇습니다. 매니페스트가 허용하기 때문에 이전 Android에서 배포하고 실행할 수 있다고해도 OS가 모노 런타임에서 사용하는 모든 필수 기능을 제공하는지 확인할 수는 없습니다. 현재 경고 XA4216은 버전 4.0.3에 대한 것이지만 VS2019를 업데이트하고 Android 4.2에 대해이 경고를받는 날이 올 것입니다.
따라서 다음보다 더 나은 솔루션이 있습니까?
1) 이전 VS2017 / 이전 Xamarin.Android 빌드 환경을 유지하고 Android 4.2와의 완전한 호환성을 유지하기 위해 일상적인 생산성을 차단합니다.
2) 최신 Xamarin으로 빌드 및 개발 환경을 VS2019로 완전히 업데이트하고 구현이 이전 OS에서 버그가 발생하지 않도록기도하십시오.
Visual Studio 업데이트가있을 때마다 전체 응용 프로그램을 다시 테스트 할 필요없이 2로 이동하여 모든 것이 잘 작동 할 것이라는 보험에 가입하고 싶습니다. 어떻게 생각해? 애플리케이션 안정성을 보장하기 위해 이전 빌드 시스템 (VS2017 + 이전 Xamarin.Android)을 사용하고 있습니까? 아니면 최신 Xamarin을 사용하여 VS2019로 업그레이드하는 것이 "안전한"위험입니까?
이 주제에 대한 좋은 조언에 미리 감사드립니다.
추신 : 솔루션 2 : "최신 Xamarin을 사용하여 빌드 및 개발 환경을 VS2019로 완전히 업데이트하고 이전 OS에서 구현에 버그가 발생하지 않기를기도합니다." 처음에는 내 PC에서 로컬로 테스트를 수행합니다. VS2019 및 최신 Xamarin으로 빌드되도록 앱에서 필요한 변경을 수행 한 후 Android 4.2.2 장치에서 테스트하기 위해 배포했습니다 (빌드 오류를 수정하는 데 하루 종일 걸렸습니다 ...). 다음과 같은 오류가 발생하고 앱이 멈 춥니 다. W / libc (9196) : protoent * getprotobyname (char const *) (3) is not implementation on Android.
기도만으로는 충분하지 않을 수도 있습니다 ... 어떤 아이디어라도?
옵션 2로 이동하고 최신 Xamarin을 사용하여 빌드 및 개발 환경을 VS2019로 완전히 업데이트하십시오! 구현시 이전 OS에 버그가 없어야합니다.
버그가 추가 되더라도 QA에서 코드를 테스트하기 만하면됩니다. 프로덕션의 경우 앱에 좋은 충돌 분석을 배치 할 수 있으며 버그를 포착,보고 및 수정할 수 있습니다.
대부분의 경우 Android에서 Android 4.4 미만을 사용하는 사용자 수는 전체 사용자의 0.001 % 미만입니다. 이 시점에서 1000 배 더 많은 사용자에게 영향을 미치므로 앱에서 접근성을 구현하는 것이 더 합리적입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다