我是Xamarin平台的初学者。我最近开始开发一些简单的应用程序,其唯一目的是学习该平台。我遇到了一个"问题"。 Android平台上的我的跨平台应用程序(我没有在其他平台上测试过它)消耗了不寻常的电量。例如,在大约2分钟的使用时,该应用消耗5%的电池,相比之下,显示器消耗6%。我通过进入电池消耗页面(Android设置)发现了这一点。我怀疑这是因为我没有将事件处理程序设置为null(即处理它们,请参阅下面的代码)。
这是我的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");
}
}
}
有人可以向我隐瞒这个行为的原因吗?先感谢您!
答案 0 :(得分:2)
首先不要试图在调试时(或内置调试配置)分析应用程序的电池使用情况,因为执行的代码(运行时和Jit&#39; d)会有所不同......
其次,您应该使用 Google's Battery Historian
进行应用的电池分析。这是谷歌提供/支持的Android工具集,恕我直言,非常值得设置它的最小努力。
Batterystats从您的设备收集电池数据,Battery Historian将该数据转换为您可以在浏览器中查看的HTML可视化。 Batterystats是Android框架的一部分,Battery Historian是开源的,可在https://github.com/google/battery-historian的GitHub上获得。
显示进程从电池中吸取电流的位置和方式。 识别应用中可以推迟甚至删除的任务,以延长电池寿命。