Xamarin android应用程序:backgroundImage导致崩溃和性能问题

时间:2018-09-26 20:44:46

标签: android xamarin memory xamarin.forms

我遇到一个奇怪的问题。我的应用程序有一个初始屏幕,加载后显示了第一页,即登录页面。如果我没有在登录的堆栈布局中放置任何背景色,则始终会始终显示启动画面的背景图像。所以我这样做了:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"   x:Class="App.Login"
         BackgroundImage="background.jpg">

background.jpg设置为EmbededResource,大小为78kb

这解决了问题,并且按预期显示了新的背景。但是,随之而来的是一个新问题:

使用BackgroundImage选项,该应用程序在MotoG5(android 7.0牛轧糖)上运行良好,在华硕zenphone上运行速度非常慢,即使触摸任何输入组件,最后在Galaxy S6上虚拟键盘也需要很长时间才能显示(也android 7.0(牛轧糖)应用程序显示启动屏幕并突然崩溃。

如果我删除BackgroundImage选项并重新编译,则在3种指定设备上一切正常。

我对此并不陌生,但我认为Login.xaml的代码太多:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="App.Login"
             BackgroundImage="background.jpg">
    <ContentPage.Content>
        <StackLayout VerticalOptions="Fill" HorizontalOptions="Fill">
            <Image Source="logomarca.png" HorizontalOptions="Center" Margin="0, 50, 0, 0" />
            <StackLayout VerticalOptions="CenterAndExpand" Margin="25">
                <Label Text="Usuário" VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand" TextColor="#FF7500" />
                <Entry x:Name="usuario" Placeholder="seu@email.com" FontSize="Small" TextColor="#FF7500" />
                <Label Text="Senha" VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand" Margin="0, 20, 0, 0" TextColor="#FF7500" />
                <Entry x:Name="senha" Placeholder="******" IsPassword="True" FontSize="Small" Margin="0" TextColor="#FF7500" />
                <Button x:Name="botaoEntrar" Text="Entrar" Clicked="BotaoEntrar_Clicked" TextColor="White" BackgroundColor="#ff9600" />
                <Button x:Name="facebookLogin" Text="Facebook" Clicked="BotaoEntrar_Clicked" TextColor="White" BackgroundColor="#4267b2" />
            </StackLayout>
            <Label x:Name="statusLogin" Text="Validando informações..." HorizontalTextAlignment="Center" HorizontalOptions="CenterAndExpand" TextColor="Green" FontSize="Micro" Margin="0, 0, 0, 40" IsVisible="False" />
            <Label x:Name="rodapeLink" Text="Ainda não tem uma conta? Crie agora." HorizontalOptions="CenterAndExpand" TextColor="#5b93fc" FontSize="Default" Margin="0, 0, 0, 20" />
        </StackLayout>
    </ContentPage.Content>
</ContentPage>

logomarca.png只有73kb

我试图将Java Maximum Heap设置为1G,但没有成功。

您是否遇到任何问题,或者可以提供一些提示,以了解解决此问题的最佳方法?我不知道该如何调试,因为Moto G5使用的是相同的android(牛轧糖7.0),一切正常。

0 个答案:

没有答案