2016-11-08 4 views
3

Xamarin.Android 접근 방식을 사용하여 C#으로 작성된 내 안드로이드 응용 프로그램의 시작 성능/시작 시간 (응용 프로그램이 시작되고 소개 화면이 나타나는 시간)을 어떻게 향상시킬 수 있습니까? .xamarin을 사용하여 android app에서 시작 성능을 향상

내 장치가 가장 오래된 것이 아니기 때문에 (Motorola Moto G3) Clash of Clans 및 Facebook과 같은 일부 대형 상용 응용 프로그램/게임에 "blackscreen"시간이 거의없고 내 작은 재미 있고 안락한 안드로이드 응용 프로그램이 필요한 이유가 궁금합니다. (하드 코딩 된 값에서 데이터 모델을 만드는 것만으로) 로컬 스토리지에서 데이터를로드하지도 않으므로 소개 화면을 표시하는 데 너무 오래 걸립니다. 완전히 새로운 응용 프로그램을 만들고 ADB를 통해 내 전화에 시작하더라도

약간의 지연을 사전에 감사가

답변

1

내가 먼저 당신은 서명 Release 구성 N 대 Debug 구성 사이의 실제 차이를 확인했을 것이다 "시작 성능"측면에서.

https://developer.xamarin.com/guides/android/advanced_topics/application_package_sizes/#Release_Packages

슬프게도 Debug 구성은 디버깅을하기 위해서는 필요한 항목의 비트를 가지고있다. 이를 Shared RuntimeShared Platform이라고도합니다. 처음 실행시 ~ 10MB가 복사됩니다. 이러한 핵심 구성 요소를 복사

https://developer.xamarin.com/guides/android/advanced_topics/application_package_sizes/#Debug_Packages

는 단지 그것을 꽤 많은 시간이 필요하지만 디버그 모드에서 실행되는 다음 응용 프로그램을 활용할 수로 한 번 이루어집니다. 마지막으로, 작고 빠른 실제 응용 프로그램을 복사합니다.

그래서 하나의 요인이 될 수 있습니다. 여기에있는 동안 다른 옵션에 대해 이야기 해 봅시다. Fast Assembly DeploymentFast Assembly DeploymentFast Assembly Deployment을 사용하면 장치에 직접 어셈블리를 한 번만 설치 한 다음 이전 배포 이후 수정 된 파일을 복사합니다.

https://developer.xamarin.com/guides/android/advanced_topics/application_package_sizes/#Fast_Assembly_Deployment

참고 : AOT(참고 사용할 수 있습니다 <AndroidUseSharedRuntime>true</AndroidUseSharedRuntime><EmbedAssembliesIntoApk>False</EmbedAssembliesIntoApk>

다음 :이 두 설정은 다음의 MSBuild 속성를 통해 기본적으로 "에"있다가에서 실험인가 쓰기 시간) :

AOT Compil 패키징 등록 정보 페이지의 ation 옵션을 사용하면 AOT (Ahead-of-Time) 어셈블리를 컴파일 할 수 있습니다. 이 옵션을 사용하면 JIT (Just In Time) 시작 오버 헤드가 런타임 전에 어셈블리를 미리 컴파일하여 최소화됩니다. 결과로 생성되는 원시 코드는 컴파일되지 않은 어셈블리와 함께 APK에 포함됩니다. 이로 인해 응용 프로그램 시작 시간이 짧아 지지만 APK 크기가 약간 커집니다.

AOT 편집 옵션에는 엔터프라이즈 라이센스 이상이 필요합니다. AOT 컴파일은 프로젝트가 릴리스 모드로 구성된 경우에만 사용할 수 있으며 기본적으로 비활성화되어 있습니다. AOT 컴파일에 대한 자세한 정보는 AOT를 참조하십시오.

마지막으로

https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/publishing_an_application/part_1_-_preparing_an_application_for_release/#AOT_Compilation

당신이 LLVM Optimization Compiler활성화 할 수 있습니다 (참고 : 글을 쓰는 시점에서 실험적입니다) 다음 AOT 컴파일 옵션은 포장 속성 페이지에 (활성화

)를 사용하면 AOT 컴파일 어셈블리를 원시 코드로 변환하기 위해 LLVM 최적화 컴파일러를 활성화 할 수 있습니다. LLVM 컴파일러는 작고 빠른 컴파일 된 코드를 생성하지만 빌드 시간이 느려집니다. LLVM 컴파일러는 기본적으로 비활성화되어 있습니다.

LLVM 최적화 컴파일러 옵션에는 비즈니스 라이센스 이상이 필요하며 AOT 컴파일을 사용하는 경우에만 사용할 수 있습니다. 모두 AOTLLVM를 사용하는 경우 https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/publishing_an_application/part_1_-_preparing_an_application_for_release/#LLVM_Optimizing_Compiler

은이 점을 염두에 메모를 보관하십시오 :

참고 : AOT는 현재 experimental feature입니다. 프로덕션 용도로 권장되지 않습니다. AOT와 LLVM은 Xamarin.Android 5.1에서 사용할 수 있었지만 더 이상 Xamarin.Android 버전에서는 더 이상 사용할 수 없습니다. 자세한 내용은 release notes을 참조하십시오.

기타 관련 될 수있는 항목,하지만 난 당신을 기반으로 세부 사항으로 가지 않을 것이다 "파일 -> 새 프로젝트"가정 :

  • 적용하기 전에 너무 많은 일을하고는 OnCreate()
  • 종료
  • 축소 아닌 .apk만큼 당신이 가능하게 할 수 이미합니다 ([AOT 문서]에서 한 링크를 기반으로 빠른로드 시간
+0

추가 된 메모에 대한 https://developer.xamarin.com/guides/ 안드로이드 –

+0

미안 해요, 아직 커피가 부족합니다 :-) – SushiHangover

+0

Xamarin 6.1 ([release note] (https : // developer) 이후로 AOT가 삭제되었습니다.) --------------------------------------- .xamarin.com/releases/android/xamarin.android_6/xamarin.android_6.1)) 나는 천천히 시작하는 앱을 유지할 것이다. : – Drakkin

관련 문제