Geo*_*iev 2 xamarin.android xamarin
我是 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>
Run Code Online (Sandbox Code Playgroud)
这是背后的代码:
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");
}
}
}
Run Code Online (Sandbox Code Playgroud)
这种行为的原因可能是什么?
首先,不要尝试在调试(或内置调试配置)时分析应用程序的电池使用情况,因为执行的代码(运行时和 Jit'd)会有所不同......
其次,您应该用于Google's Battery Historian应用程序的电池分析。这是 Google 提供/支持的 Android 工具集,恕我直言,非常值得花费最少的精力来设置它。
Batterystats 从您的设备收集电池数据,Battery Historian 将该数据转换为 HTML 可视化形式,您可以在浏览器中查看。Batterystats 是 Android 框架的一部分,而 Battery Historian 是开源的,可在 GitHub 上获取:https://github.com/google/battery-historian。
向您展示进程在何处以及如何从电池获取电流。识别应用程序中可以推迟甚至删除的任务,以延长电池寿命。
| 归档时间: |
|
| 查看次数: |
813 次 |
| 最近记录: |