2017-08-25 80 views
0

我是Xamarin平臺的初學者。我最近開始開發一些簡單的應用程序,只是爲了學習平臺。我遇到了一個「問題」。我在Android平臺上的跨平臺應用程序(我沒有在其他平臺上測試過)會消耗不尋常的電量。例如,在大約2分鐘的使用中,該應用程序消耗電池的5%,而顯示器的消耗則爲6%。我發現進入電池消耗頁面(Android設置)。我懷疑這是因爲我沒有將事件處理程序設置爲null(即處置它們,請參閱下面的代碼)。Xamarin Android應用程序消耗異常數量的電池。爲什麼?

這是我的XAML代碼:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    xmlns:local="clr-namespace:XamarinSample" 
    x:Class="XamarinSample.MainPage"> 


    <StackLayout> 

     <Slider VerticalOptions="CenterAndExpand" 
       ValueChanged="OnSliderValueChanged"/> 

     <Label x:Name="valueLabel" 
       HorizontalOptions="Center" 
       VerticalOptions="CenterAndExpand" 
       Text="A Simple Label" 
       Font="Large"/> 

     <Button HorizontalOptions="Center" 
       VerticalOptions="CenterAndExpand" 
       Text="Click me!" 
       Clicked="OnButtonClick"/> 

    </StackLayout> 
</ContentPage> 

這是後臺代碼:

namespace XamarinSample 
{ 
    public partial class MainPage : ContentPage 
    { 
     public MainPage() 
     { 
      InitializeComponent(); 
     } 

     protected override void OnDisappearing() 
     { 
      base.OnDisappearing(); 
     } 

     void OnSliderValueChanged(object sender, ValueChangedEventArgs args) 
     { 
      valueLabel.Text = args.NewValue.ToString("F3"); 
     } 

     async void OnButtonClick(object sender, EventArgs args) 
     { 
      Button button = (Button)sender; 
      await DisplayAlert("Clicked!", 
       "The button labeled '" + button.Text + "' has been clicked","OK"); 
     } 
    } 
} 

enter image description here

誰能請我隱藏的可能是什麼原因,方向對於這種行爲?先謝謝你!

回答

2

先不要嘗試分析應用程序的電池使用在調試(或一個內置的調試配置)作爲代碼執行(運行時和這些JIT過)會有所不同......

二,您應該使用Google's Battery Historian進行應用程序的電池分析。這是一個Google提供的/支持的Android工具集,恕我直言,值得花費最少的努力來設置它。

Batterystats從您的設備收集電池數據,並且Battery Historian將該數據轉換爲可在瀏覽器中查看的HTML可視化文件。 Batterystats是Android框架的一部分,Battery Historian是開源的,可在GitHub上獲得https://github.com/google/battery-historian

向您顯示過程從何處以及如何從電池中吸取電流。 識別您的應用程序中可能推遲或甚至取消的任務以延長電池壽命。

+0

謝謝您的建議!我還沒有聽說過這個工具。我會給它一個嘗試:) –