2017-08-02 29 views
0

我正在構建我的Xamarin.Android項目,我選擇了AOT彙編,這使我的.apk膨脹到165mb。我如何知道要選擇什麼樣的目標架構?

爲了讓我的apk文件大小下來我在看的目標架構,目前我的目標:

armeabi,armeabi-V7,X86,arm64-V8A

但我沒有了解這些架構如何與現代設備相對應。

我已閱讀Android CPU Architectures和它說:

Xamarin.Android默認爲armeabi-V7A的發佈版本。這 設置提供比armeabi更好的性能。如果您的 針對的是64位ARM平臺(如Nexus 9),請選擇 arm64-v8a。如果您要將應用程序部署到x86設備,請選擇x86。 如果目標x86設備使用64位CPU架構,請選擇 x86_64。

因此,我需要針對armeabi和armeabi-v7嗎?

我應該爲現代Android平板電腦和手機定位哪些構架?

+0

我取決於你...說你排除86,那麼你的應用程序將不會顯示爲有基於英特爾芯片的設備(華碩,宏碁,惠普,聯想,戴爾等用戶。Android平板電腦使用Intel Atoms)。目前正在使用的ABI的設備編號分類是什麼? Google不會發布此統計信息,他們只會在其儀表板上發佈API級統計信息。我個人處理的大多數客戶都會爲每個ABI發佈不同的APK,因此每個APK對於Xamarin應用程序來說都是最小的。如果你正在手動完成這項工作,這會爲你的構建/發佈過程增加更多的工作.... – SushiHangover

+0

....排除'arm64-v8a'和更新的Nexus將使用'armeabi-v7a',但運行速度會慢一點等。 ..爲單個App ID發佈單獨的APK:https://developer.android.com/google/play/publishing/multiple-apks.html – SushiHangover

+0

@SushiHangover我在辦公室裏有一個Nexus 9,所以我會嘗試排除'arm64 -v8a'看看會發生什麼。我目前使用'VSTS'和[Google play extension](https://marketplace.visualstudio.com/items?itemName=ms-vsclient.google-play)發佈我的應用。我不認爲他們允許你爲不同的ABI上傳多個apk,這很煩人 – user1

回答

2

armeabi適用於較舊的設備,因爲大多數較新的設備都運行armeabi-v7。其次,64位設備可以回退到其他ABI。如果你擔心的大小,那麼你最好的選擇是創建多個APK:

https://developer.xamarin.com/guides/android/application_fundamentals/cpu_architectures/#Targeting_Multiple_Platforms

雖然谷歌建議單個APK,這並非總是如此:

雖然我們鼓勵您開發併發布支持儘可能多設備配置的單個APK,但這樣做有時是不可能的。爲了幫助您儘可能多地發佈應用,Google Play允許您在同一應用列表下發布多個APK。 Google Play會根據您在每個APK的清單文件中聲明的配置支持,將每個APK提供給相應的設備。

https://developer.android.com/google/play/publishing/multiple-apks.html

+1

我從[quora](https://www.quora.com/Are)找到了[Android-x86 devices](http://www.android-x86.org/hardware-list)列表 - 任何現代的Android手機 - 不支持-armeabi-v7a)鏈接似乎表明'armeabi-v7'是在2012年推出的,所以'armeabi'必須適用於2012年之前的設備。我爲其他人添加了這些鏈接。如我錯了請糾正我。我結束了'armeabi-v7'和'arm64-v8a',即使如此,我仍然是99mb,因此需要調查您發佈的鏈接 – user1

相關問題