前提,有個哥們骄瓣,目前在做 ios flutter的停巷,我也在做flutter App,他向我反饋一個問題
這是他提的 :https://github.com/flutter/flutter/issues/102020
用的是這個官方動畫效果
(https://api.flutter.dev/flutter/widgets/ScaleTransition-class.html)
這是測試代碼
import 'package:flutter/material.dart';
class TestDemo extends StatefulWidget {
const TestDemo({Key? key}) : super(key: key);
@override
State<TestDemo> createState() => _TestDemoState();
}
class _TestDemoState extends State<TestDemo> with TickerProviderStateMixin {
late final AnimationController _controller = AnimationController(
duration: const Duration(seconds: 2),
vsync: this,
)..repeat(reverse: true);
late final Animation<double> _animation = CurvedAnimation(
parent: _controller,
curve: Curves.fastOutSlowIn,
);
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Animation'),
),
body: Column(
children: [
_buildAniCircle(),
_buildAniCircle(),
_buildAniCircle(),
const Text('no rebuild'),
// _buildAniCircle(),
],
),
);
}
_buildAniCircle() {
return ScaleTransition(
scale: _animation,
child: _buildAni(),
);
}
_buildAni() {
return const Padding(
padding: EdgeInsets.all(8.0),
child: FlutterLogo(size: 150.0),
);
}
}
運行起來的效果 如下:就是在一個Column 中放置了3個的動畫
這是 ios手機上占用CPU
那么這些代碼在安卓手機的表現(xiàn)情況如何榕栏?
1畔勤、查看CPU占用率的命令 adb shell top
目前測試App在前臺,運行中的CPU的情況
首先解釋下名稱
- PR就是優(yōu)先級扒磁,廠商自定義庆揪,系統(tǒng)的應用的優(yōu)先級會高一些
- CPU占用率表示交換機在某個時間點的運行任務情況。A任務占用10ms妨托,B任務占用30ms缸榛,然后空閑60ms,再又是A任務占10ms兰伤,B任務占30ms内颗,空閑60ms。如果在一段時間內(nèi)都是如此敦腔,那么這段時間內(nèi)的占用率為40%均澳。CPU占用率越高,說明交換機在這個時間上運行了很多任務会烙,反之則很少负懦。CPU使用率其實就是你運行的程序占用的CPU資源,表示你的機器在某個時間點的運行程序的情況柏腻。使用率越高纸厉,說明你的機器在這個時間上運行了很多程序,反之較少五嫂。使用率的高低與你的CPU強弱有直接關系颗品。
說明安卓的flutter的動畫的Demo的占有率達到了 80%肯尺,感覺有點恐怖呀
打開簡書App的時候 CPU的使用率 ,當App在做網(wǎng)絡請求的時候躯枢,占用率會更加的高
這是打開百度翻譯的APP CPU占有率
記不記得這個圖片则吟,電腦的CPU使用率,如果它的占用大于了60%锄蹂,你就會發(fā)現(xiàn)電腦的風扇在拼命的轉氓仲,而且電腦會運行過慢
但是手機好像沒有像電腦那么嚴重,使用起來也沒有那么卡得糜,這個和手機的固件設計有關系
這是另外一個小伙伴的公司的App內(nèi)存的占用情況
最后說明
CPU使用率是性能測試是一項重要指標敬扛,CPU占用過高會使得設備運行程序出現(xiàn)卡頓與發(fā)熱,甚至出現(xiàn)應用程序Crash,影響用戶體驗朝抖。在排除硬件環(huán)境的限制下啥箭,應用程序應該盡可能少的占用CPU。
一個Demo治宣,3個動畫的CPU使用率達到了80%急侥,如果用java or kotlin 去實現(xiàn)應該不會有那么高的占有率,所以Flutter的還需要繼續(xù)的優(yōu)化侮邀。
(App性能測試—CPU使用率):https://cloud.tencent.com/developer/article/1858070