Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
a3c6e4a0
Unverified
Commit
a3c6e4a0
authored
Mar 18, 2020
by
Emmanuel Garcia
Committed by
GitHub
Mar 18, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Reland: Add Platform View benchmark (#52839)
parent
5d0e87ce
Changes
32
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
1312 additions
and
0 deletions
+1312
-0
README.md
dev/benchmarks/platform_views_layout/README.md
+26
-0
build.gradle
...benchmarks/platform_views_layout/android/app/build.gradle
+54
-0
AndroidManifest.xml
...orm_views_layout/android/app/src/main/AndroidManifest.xml
+23
-0
DummyPlatformView.java
...ev/bechmarks/platform_views_layout/DummyPlatformView.java
+31
-0
DummyPlatformViewActivity.java
...arks/platform_views_layout/DummyPlatformViewActivity.java
+19
-0
DummyPlatformViewFactory.java
...marks/platform_views_layout/DummyPlatformViewFactory.java
+42
-0
build.gradle
dev/benchmarks/platform_views_layout/android/build.gradle
+33
-0
gradle.properties
...enchmarks/platform_views_layout/android/gradle.properties
+4
-0
gradle-wrapper.properties
...s_layout/android/gradle/wrapper/gradle-wrapper.properties
+6
-0
settings.gradle
dev/benchmarks/platform_views_layout/android/settings.gradle
+5
-0
AppFrameworkInfo.plist
.../platform_views_layout/ios/Flutter/AppFrameworkInfo.plist
+26
-0
Flutter.xcconfig
...hmarks/platform_views_layout/ios/Flutter/Flutter.xcconfig
+1
-0
project.pbxproj
...latform_views_layout/ios/Runner.xcodeproj/project.pbxproj
+448
-0
contents.xcworkspacedata
...er.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+7
-0
IDEWorkspaceChecks.plist
...project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+8
-0
AppDelegate.h
...benchmarks/platform_views_layout/ios/Runner/AppDelegate.h
+10
-0
AppDelegate.m
...benchmarks/platform_views_layout/ios/Runner/AppDelegate.m
+27
-0
Icon-App-76x76@3x.png
.../Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@3x.png
+0
-0
LaunchScreen.storyboard
...iews_layout/ios/Runner/Base.lproj/LaunchScreen.storyboard
+27
-0
Main.storyboard
...atform_views_layout/ios/Runner/Base.lproj/Main.storyboard
+26
-0
DummyPlatformView.h
...arks/platform_views_layout/ios/Runner/DummyPlatformView.h
+23
-0
DummyPlatformView.m
...arks/platform_views_layout/ios/Runner/DummyPlatformView.m
+57
-0
Info.plist
dev/benchmarks/platform_views_layout/ios/Runner/Info.plist
+47
-0
main.m
dev/benchmarks/platform_views_layout/ios/Runner/main.m
+14
-0
main.dart
dev/benchmarks/platform_views_layout/lib/main.dart
+129
-0
pubspec.yaml
dev/benchmarks/platform_views_layout/pubspec.yaml
+96
-0
scroll_perf.dart
...hmarks/platform_views_layout/test_driver/scroll_perf.dart
+11
-0
scroll_perf_test.dart
...s/platform_views_layout/test_driver/scroll_perf_test.dart
+64
-0
platform_views_scroll_perf__timeline_summary.dart
...n/tasks/platform_views_scroll_perf__timeline_summary.dart
+14
-0
platform_views_scroll_perf_ios__timeline_summary.dart
...sks/platform_views_scroll_perf_ios__timeline_summary.dart
+14
-0
perf_tests.dart
dev/devicelab/lib/tasks/perf_tests.dart
+8
-0
manifest.yaml
dev/devicelab/manifest.yaml
+12
-0
No files found.
dev/benchmarks/platform_views_layout/README.md
0 → 100644
View file @
a3c6e4a0
# platform_views_layout
## Scrolling benchmark
To run the scrolling benchmark on a device:
```
flutter drive --profile test_driver/scroll_perf.dart
```
Results should be in the file
`build/platform_views_scroll_perf.timeline_summary.json`
.
More detailed logs should be in
`build/platform_views_scroll_perf.timeline.json`
.
## Startup benchmark
To measure startup time on a device:
```
flutter run --profile --trace-startup
```
Results should be in the logs.
Additional results should be in the file
`build/start_up_info.json`
.
dev/benchmarks/platform_views_layout/android/app/build.gradle
0 → 100644
View file @
a3c6e4a0
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
def
localProperties
=
new
Properties
()
def
localPropertiesFile
=
rootProject
.
file
(
'local.properties'
)
if
(
localPropertiesFile
.
exists
())
{
localPropertiesFile
.
withInputStream
{
stream
->
localProperties
.
load
(
stream
)
}
}
def
flutterRoot
=
localProperties
.
getProperty
(
'flutter.sdk'
)
if
(
flutterRoot
==
null
)
{
throw
new
GradleException
(
"Flutter SDK not found. Define location with flutter.sdk in the local.properties file."
)
}
apply
plugin:
'com.android.application'
apply
from:
"$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android
{
compileSdkVersion
28
lintOptions
{
disable
'InvalidPackage'
}
defaultConfig
{
minSdkVersion
16
targetSdkVersion
28
versionCode
1
versionName
"0.0.1"
}
buildTypes
{
release
{
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig
signingConfigs
.
debug
}
}
aaptOptions
{
// TODO(goderbauer): remove when https://github.com/flutter/flutter/issues/8986 is resolved.
if
(
System
.
getenv
(
"FLUTTER_CI_WIN"
))
{
println
"AAPT cruncher disabled when running on CI, see https://github.com/flutter/flutter/issues/8986"
cruncherEnabled
false
}
}
}
flutter
{
source
'../..'
}
dev/benchmarks/platform_views_layout/android/app/src/main/AndroidManifest.xml
0 → 100644
View file @
a3c6e4a0
<!-- Copyright 2014 The Flutter Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
package=
"dev.benchmarks.platform_views_layout"
>
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<application
android:name=
"io.flutter.app.FlutterApplication"
android:label=
"platform_view_layout"
>
<activity
android:name=
".DummyPlatformViewActivity"
android:launchMode=
"singleTop"
android:theme=
"@android:style/Theme.Black.NoTitleBar"
android:configChanges=
"orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated=
"true"
android:windowSoftInputMode=
"adjustResize"
>
<intent-filter>
<action
android:name=
"android.intent.action.MAIN"
/>
<category
android:name=
"android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
</application>
</manifest>
dev/benchmarks/platform_views_layout/android/app/src/main/java/dev/bechmarks/platform_views_layout/DummyPlatformView.java
0 → 100644
View file @
a3c6e4a0
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package
dev
.
benchmarks
.
platform_views
;
import
android.content.Context
;
import
android.graphics.Color
;
import
android.view.View
;
import
android.widget.TextView
;
import
io.flutter.plugin.platform.PlatformView
;
public
class
DummyPlatformView
implements
PlatformView
{
private
final
TextView
textView
;
@SuppressWarnings
(
"unchecked"
)
DummyPlatformView
(
final
Context
context
,
int
id
)
{
textView
=
new
TextView
(
context
);
textView
.
setTextSize
(
72
);
textView
.
setBackgroundColor
(
Color
.
rgb
(
255
,
255
,
255
));
textView
.
setText
(
"DummyPlatformView"
);
}
@Override
public
View
getView
()
{
return
textView
;
}
@Override
public
void
dispose
()
{}
}
dev/benchmarks/platform_views_layout/android/app/src/main/java/dev/bechmarks/platform_views_layout/DummyPlatformViewActivity.java
0 → 100644
View file @
a3c6e4a0
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package
dev
.
benchmarks
.
platform_views
;
import
androidx.annotation.NonNull
;
import
io.flutter.embedding.android.FlutterActivity
;
import
io.flutter.embedding.engine.FlutterEngine
;
public
class
DummyPlatformViewActivity
extends
FlutterActivity
{
@Override
public
void
configureFlutterEngine
(
@NonNull
FlutterEngine
flutterEngine
)
{
flutterEngine
.
getPlatformViewsController
()
.
getRegistry
()
.
registerViewFactory
(
"benchmarks/platform_views_layout/DummyPlatformView"
,
new
DummyPlatformViewFactory
());
}
}
dev/benchmarks/platform_views_layout/android/app/src/main/java/dev/bechmarks/platform_views_layout/DummyPlatformViewFactory.java
0 → 100644
View file @
a3c6e4a0
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package
dev
.
benchmarks
.
platform_views
;
import
android.content.Context
;
import
androidx.annotation.Nullable
;
import
io.flutter.plugin.common.MessageCodec
;
import
io.flutter.plugin.common.StringCodec
;
import
io.flutter.plugin.platform.PlatformView
;
import
io.flutter.plugin.platform.PlatformViewFactory
;
import
java.nio.ByteBuffer
;
public
final
class
DummyPlatformViewFactory
extends
PlatformViewFactory
{
DummyPlatformViewFactory
()
{
super
(
new
MessageCodec
<
Object
>()
{
@Nullable
@Override
public
ByteBuffer
encodeMessage
(
@Nullable
Object
o
)
{
if
(
o
instanceof
String
)
{
return
StringCodec
.
INSTANCE
.
encodeMessage
((
String
)
o
);
}
return
null
;
}
@Nullable
@Override
public
Object
decodeMessage
(
@Nullable
ByteBuffer
byteBuffer
)
{
return
StringCodec
.
INSTANCE
.
decodeMessage
(
byteBuffer
);
}
}
);
}
@SuppressWarnings
(
"unchecked"
)
@Override
public
PlatformView
create
(
Context
context
,
int
id
,
Object
args
)
{
return
new
DummyPlatformView
(
context
,
id
);
}
}
dev/benchmarks/platform_views_layout/android/build.gradle
0 → 100644
View file @
a3c6e4a0
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
buildscript
{
repositories
{
google
()
jcenter
()
}
dependencies
{
classpath
'com.android.tools.build:gradle:3.5.0'
}
}
allprojects
{
repositories
{
google
()
jcenter
()
}
}
rootProject
.
buildDir
=
'../build'
subprojects
{
project
.
buildDir
=
"${rootProject.buildDir}/${project.name}"
}
subprojects
{
project
.
evaluationDependsOn
(
':app'
)
}
task
clean
(
type:
Delete
)
{
delete
rootProject
.
buildDir
}
dev/benchmarks/platform_views_layout/android/gradle.properties
0 → 100644
View file @
a3c6e4a0
org.gradle.jvmargs
=
-Xmx1536M
android.useAndroidX
=
true
android.enableJetifier
=
true
android.enableR8
=
true
dev/benchmarks/platform_views_layout/android/gradle/wrapper/gradle-wrapper.properties
0 → 100644
View file @
a3c6e4a0
#Fri Jun 23 08:50:38 CEST 2017
distributionBase
=
GRADLE_USER_HOME
distributionPath
=
wrapper/dists
zipStoreBase
=
GRADLE_USER_HOME
zipStorePath
=
wrapper/dists
distributionUrl
=
https
\:
//services.gradle.org/distributions/gradle-5.6.2-all.zip
dev/benchmarks/platform_views_layout/android/settings.gradle
0 → 100644
View file @
a3c6e4a0
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
include
':app'
dev/benchmarks/platform_views_layout/ios/Flutter/AppFrameworkInfo.plist
0 → 100644
View file @
a3c6e4a0
<
?xml
v
e
rsion="
1
.
0
"
e
n
c
o
d
ing="UT
F
-
8
"?
>
<
!
D
O
C
TYP
E
plist
PU
B
LI
C
"-//
A
ppl
e
//
D
T
D
PLIST
1
.
0
//
E
N"
"http://www.
a
ppl
e
.
c
om/
D
T
D
s/Prop
e
rtyList-
1
.
0
.
d
t
d
"
>
<
plist
v
e
rsion="
1
.
0
"
>
<
d
i
c
t
>
<
k
e
y
>
CFBundleDevelopmentRegion
<
/k
e
y
>
<
string
>
$
(
DEVELOPMENT_LANGUAGE
)<
/string
>
<
k
e
y
>
CFBundleExecutable
<
/k
e
y
>
<
string
>
App
<
/string
>
<
k
e
y
>
CFBundleIdentifier
<
/k
e
y
>
<
string
>
io.flutter.flutter.app
<
/string
>
<
k
e
y
>
CFBundleInfoDictionaryVersion
<
/k
e
y
>
<
string
>
6.0
<
/string
>
<
k
e
y
>
CFBundleName
<
/k
e
y
>
<
string
>
App
<
/string
>
<
k
e
y
>
CFBundlePackageType
<
/k
e
y
>
<
string
>
FMWK
<
/string
>
<
k
e
y
>
CFBundleShortVersionString
<
/k
e
y
>
<
string
>
1.0
<
/string
>
<
k
e
y
>
CFBundleSignature
<
/k
e
y
>
<
string
>
????
<
/string
>
<
k
e
y
>
CFBundleVersion
<
/k
e
y
>
<
string
>
1.0
<
/string
>
<
k
e
y
>
MinimumOSVersion
<
/k
e
y
>
<
string
>
8.0
<
/string
>
<
/
d
i
c
t
>
<
/plist
>
dev/benchmarks/platform_views_layout/ios/Flutter/Flutter.xcconfig
0 → 100644
View file @
a3c6e4a0
#include "Generated.xcconfig"
dev/benchmarks/platform_views_layout/ios/Runner.xcodeproj/project.pbxproj
0 → 100644
View file @
a3c6e4a0
This diff is collapsed.
Click to expand it.
dev/benchmarks/platform_views_layout/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
0 → 100644
View file @
a3c6e4a0
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version =
"1.0"
>
<FileRef
location =
"self:Runner.xcodeproj"
>
</FileRef>
</Workspace>
dev/benchmarks/platform_views_layout/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
0 → 100644
View file @
a3c6e4a0
<
?xml
v
e
rsion="
1
.
0
"
e
n
c
o
d
ing="UT
F
-
8
"?
>
<
!
D
O
C
TYP
E
plist
PU
B
LI
C
"-//
A
ppl
e
//
D
T
D
PLIST
1
.
0
//
E
N"
"http://www.
a
ppl
e
.
c
om/
D
T
D
s/Prop
e
rtyList-
1
.
0
.
d
t
d
"
>
<
plist
v
e
rsion="
1
.
0
"
>
<
d
i
c
t
>
<
k
e
y
>
IDEDidComputeMac32BitWarning
<
/k
e
y
>
<
tru
e
/
>
<
/
d
i
c
t
>
<
/plist
>
dev/benchmarks/platform_views_layout/ios/Runner/AppDelegate.h
0 → 100644
View file @
a3c6e4a0
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import <Flutter/Flutter.h>
#import <UIKit/UIKit.h>
@interface
AppDelegate
:
FlutterAppDelegate
@end
dev/benchmarks/platform_views_layout/ios/Runner/AppDelegate.m
0 → 100644
View file @
a3c6e4a0
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "AppDelegate.h"
#include "DummyPlatformView.h"
#include "GeneratedPluginRegistrant.h"
@implementation
AppDelegate
-
(
BOOL
)
application
:(
UIApplication
*
)
application
didFinishLaunchingWithOptions
:(
NSDictionary
*
)
launchOptions
{
[
GeneratedPluginRegistrant
registerWithRegistry
:
self
];
NSObject
<
FlutterPluginRegistrar
>*
registrar
=
[
self
registrarForPlugin
:
@"benchmarks/platform_views_layout/DummyPlatformViewPlugin"
];
DummyPlatformViewFactory
*
dummyPlatformViewFactory
=
[[
DummyPlatformViewFactory
alloc
]
init
];
[
registrar
registerViewFactory
:
dummyPlatformViewFactory
withId
:
@"benchmarks/platform_views_layout/DummyPlatformView"
gestureRecognizersBlockingPolicy:
FlutterPlatformViewGestureRecognizersBlockingPolicyEager
];
// Override point for customization after application launch.
return
[
super
application
:
application
didFinishLaunchingWithOptions
:
launchOptions
];
}
@end
dev/benchmarks/platform_views_layout/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@3x.png
0 → 100644
View file @
a3c6e4a0
This diff was suppressed by a .gitattributes entry.
dev/benchmarks/platform_views_layout/ios/Runner/Base.lproj/LaunchScreen.storyboard
0 → 100644
View file @
a3c6e4a0
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document
type=
"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB"
version=
"3.0"
toolsVersion=
"10117"
systemVersion=
"15F34"
targetRuntime=
"iOS.CocoaTouch"
propertyAccessControl=
"none"
useAutolayout=
"YES"
launchScreen=
"YES"
useTraitCollections=
"YES"
initialViewController=
"01J-lp-oVM"
>
<dependencies>
<deployment
identifier=
"iOS"
/>
<plugIn
identifier=
"com.apple.InterfaceBuilder.IBCocoaTouchPlugin"
version=
"10085"
/>
</dependencies>
<scenes>
<!--View Controller-->
<scene
sceneID=
"EHf-IW-A2E"
>
<objects>
<viewController
id=
"01J-lp-oVM"
sceneMemberID=
"viewController"
>
<layoutGuides>
<viewControllerLayoutGuide
type=
"top"
id=
"Llm-lL-Icb"
/>
<viewControllerLayoutGuide
type=
"bottom"
id=
"xb3-aO-Qok"
/>
</layoutGuides>
<view
key=
"view"
contentMode=
"scaleToFill"
id=
"Ze5-6b-2t3"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"600"
height=
"600"
/>
<autoresizingMask
key=
"autoresizingMask"
widthSizable=
"YES"
heightSizable=
"YES"
/>
<color
key=
"backgroundColor"
white=
"1"
alpha=
"1"
colorSpace=
"custom"
customColorSpace=
"calibratedWhite"
/>
</view>
</viewController>
<placeholder
placeholderIdentifier=
"IBFirstResponder"
id=
"iYj-Kq-Ea1"
userLabel=
"First Responder"
sceneMemberID=
"firstResponder"
/>
</objects>
<point
key=
"canvasLocation"
x=
"53"
y=
"375"
/>
</scene>
</scenes>
</document>
dev/benchmarks/platform_views_layout/ios/Runner/Base.lproj/Main.storyboard
0 → 100644
View file @
a3c6e4a0
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document
type=
"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB"
version=
"3.0"
toolsVersion=
"10117"
systemVersion=
"15F34"
targetRuntime=
"iOS.CocoaTouch"
propertyAccessControl=
"none"
useAutolayout=
"YES"
useTraitCollections=
"YES"
initialViewController=
"BYZ-38-t0r"
>
<dependencies>
<deployment
identifier=
"iOS"
/>
<plugIn
identifier=
"com.apple.InterfaceBuilder.IBCocoaTouchPlugin"
version=
"10085"
/>
</dependencies>
<scenes>
<!--Flutter View Controller-->
<scene
sceneID=
"tne-QT-ifu"
>
<objects>
<viewController
id=
"BYZ-38-t0r"
customClass=
"FlutterViewController"
sceneMemberID=
"viewController"
>
<layoutGuides>
<viewControllerLayoutGuide
type=
"top"
id=
"y3c-jy-aDJ"
/>
<viewControllerLayoutGuide
type=
"bottom"
id=
"wfy-db-euE"
/>
</layoutGuides>
<view
key=
"view"
contentMode=
"scaleToFill"
id=
"8bC-Xf-vdC"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"600"
height=
"600"
/>
<autoresizingMask
key=
"autoresizingMask"
widthSizable=
"YES"
heightSizable=
"YES"
/>
<color
key=
"backgroundColor"
white=
"1"
alpha=
"1"
colorSpace=
"custom"
customColorSpace=
"calibratedWhite"
/>
</view>
</viewController>
<placeholder
placeholderIdentifier=
"IBFirstResponder"
id=
"dkx-z0-nzr"
sceneMemberID=
"firstResponder"
/>
</objects>
</scene>
</scenes>
</document>
dev/benchmarks/platform_views_layout/ios/Runner/DummyPlatformView.h
0 → 100644
View file @
a3c6e4a0
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import <Flutter/Flutter.h>
NS_ASSUME_NONNULL_BEGIN
@interface
DummyPlatformView
:
NSObject
<
FlutterPlatformView
>
-
(
instancetype
)
initWithFrame
:
(
CGRect
)
frame
viewIdentifier
:
(
int64_t
)
viewId
arguments
:
(
id
_Nullable
)
args
binaryMessenger
:
(
NSObject
<
FlutterBinaryMessenger
>*
)
messenger
;
-
(
UIView
*
)
view
;
@end
@interface
DummyPlatformViewFactory
:
NSObject
<
FlutterPlatformViewFactory
>
-
(
instancetype
)
initWithMessenger
:
(
NSObject
<
FlutterBinaryMessenger
>*
)
messenger
;
@end
NS_ASSUME_NONNULL_END
dev/benchmarks/platform_views_layout/ios/Runner/DummyPlatformView.m
0 → 100644
View file @
a3c6e4a0
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "DummyPlatformView.h"
@implementation
DummyPlatformViewFactory
{
NSObject
<
FlutterBinaryMessenger
>*
_messenger
;
}
-
(
instancetype
)
initWithMessenger
:
(
NSObject
<
FlutterBinaryMessenger
>*
)
messenger
{
self
=
[
super
init
];
if
(
self
)
{
_messenger
=
messenger
;
}
return
self
;
}
-
(
NSObject
<
FlutterPlatformView
>*
)
createWithFrame
:
(
CGRect
)
frame
viewIdentifier
:
(
int64_t
)
viewId
arguments
:
(
id
_Nullable
)
args
{
return
[[
DummyPlatformView
alloc
]
initWithFrame
:
frame
viewIdentifier
:
viewId
arguments
:
args
binaryMessenger
:
_messenger
];
}
-
(
NSObject
<
FlutterMessageCodec
>*
)
createArgsCodec
{
return
[
FlutterStringCodec
sharedInstance
];
}
@end
@implementation
DummyPlatformView
{
UITextView
*
_view
;
FlutterMethodChannel
*
_channel
;
}
-
(
instancetype
)
initWithFrame
:
(
CGRect
)
frame
viewIdentifier
:
(
int64_t
)
viewId
arguments
:
(
id
_Nullable
)
args
binaryMessenger
:
(
NSObject
<
FlutterBinaryMessenger
>*
)
messenger
{
if
([
super
init
])
{
_view
=
[[
UITextView
alloc
]
initWithFrame
:
CGRectMake
(
0
.
0
,
0
.
0
,
250
.
0
,
100
.
0
)];
_view
.
textColor
=
UIColor
.
blueColor
;
_view
.
backgroundColor
=
UIColor
.
lightGrayColor
;
[
_view
setFont
:[
UIFont
systemFontOfSize
:
52
]];
_view
.
text
=
@"DummyPlatformView"
;
}
return
self
;
}
-
(
UIView
*
)
view
{
return
_view
;
}
@end
dev/benchmarks/platform_views_layout/ios/Runner/Info.plist
0 → 100644
View file @
a3c6e4a0
<
?xml
v
e
rsion="
1
.
0
"
e
n
c
o
d
ing="UT
F
-
8
"?
>
<
!
D
O
C
TYP
E
plist
PU
B
LI
C
"-//
A
ppl
e
//
D
T
D
PLIST
1
.
0
//
E
N"
"http://www.
a
ppl
e
.
c
om/
D
T
D
s/Prop
e
rtyList-
1
.
0
.
d
t
d
"
>
<
plist
v
e
rsion="
1
.
0
"
>
<
d
i
c
t
>
<
k
e
y
>
CFBundleDevelopmentRegion
<
/k
e
y
>
<
string
>
$
(
DEVELOPMENT_LANGUAGE
)<
/string
>
<
k
e
y
>
CFBundleExecutable
<
/k
e
y
>
<
string
>
$
(
EXECUTABLE_NAME
)<
/string
>
<
k
e
y
>
CFBundleIdentifier
<
/k
e
y
>
<
string
>
com.yourcompany.complexLayout
<
/string
>
<
k
e
y
>
CFBundleInfoDictionaryVersion
<
/k
e
y
>
<
string
>
6.0
<
/string
>
<
k
e
y
>
CFBundleName
<
/k
e
y
>
<
string
>
complex_layout
<
/string
>
<
k
e
y
>
CFBundlePackageType
<
/k
e
y
>
<
string
>
APPL
<
/string
>
<
k
e
y
>
CFBundleShortVersionString
<
/k
e
y
>
<
string
>
1.0
<
/string
>
<
k
e
y
>
CFBundleSignature
<
/k
e
y
>
<
string
>
????
<
/string
>
<
k
e
y
>
CFBundleVersion
<
/k
e
y
>
<
string
>
1
<
/string
>
<
k
e
y
>
LSRequiresIPhoneOS
<
/k
e
y
>
<
tru
e
/
>
<
k
e
y
>
UILaunchStoryboardName
<
/k
e
y
>
<
string
>
LaunchScreen
<
/string
>
<
k
e
y
>
UIMainStoryboardFile
<
/k
e
y
>
<
string
>
Main
<
/string
>
<
k
e
y
>
UISupportedInterfaceOrientations
<
/k
e
y
>
<
a
rr
a
y
>
<
string
>
UIInterfaceOrientationPortrait
<
/string
>
<
string
>
UIInterfaceOrientationLandscapeLeft
<
/string
>
<
string
>
UIInterfaceOrientationLandscapeRight
<
/string
>
<
/
a
rr
a
y
>
<
k
e
y
>
UISupportedInterfaceOrientations
~
ipad
<
/k
e
y
>
<
a
rr
a
y
>
<
string
>
UIInterfaceOrientationPortrait
<
/string
>
<
string
>
UIInterfaceOrientationPortraitUpsideDown
<
/string
>
<
string
>
UIInterfaceOrientationLandscapeLeft
<
/string
>
<
string
>
UIInterfaceOrientationLandscapeRight
<
/string
>
<
/
a
rr
a
y
>
<
k
e
y
>
UIViewControllerBasedStatusBarAppearance
<
/k
e
y
>
<
fa
ls
e
/
>
<
k
e
y
>
io.flutter.embedded_views_preview
<
/k
e
y
>
<
tru
e
/
>
<
/
d
i
c
t
>
<
/plist
>
dev/benchmarks/platform_views_layout/ios/Runner/main.m
0 → 100644
View file @
a3c6e4a0
//
Copyright
2014
The
Flutter
Authors
.
All
rights
reserved
.
//
Use
of
this
source
code
is
governed
by
a
BSD
-
style
license
that
can
be
//
found
in
the
LICENSE
file
.
#import
<
UIKit
/
UIKit
.
h
>
#import
<
Flutter
/
Flutter
.
h
>
#import
"AppDelegate.h"
int
main
(
int
argc
,
char
*
argv
[])
{
@
autoreleasepool
{
return
UIApplicationMain
(
argc
,
argv
,
nil
,
NSStringFromClass
([
AppDelegate
class
]))
;
}
}
dev/benchmarks/platform_views_layout/lib/main.dart
0 → 100644
View file @
a3c6e4a0
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'dart:io'
;
import
'package:flutter/material.dart'
;
import
'package:flutter/scheduler.dart'
show
timeDilation
;
void
main
(
)
{
runApp
(
PlatformViewApp
()
);
}
class
PlatformViewApp
extends
StatefulWidget
{
@override
PlatformViewAppState
createState
()
=>
PlatformViewAppState
();
static
PlatformViewAppState
of
(
BuildContext
context
)
=>
context
.
findAncestorStateOfType
<
PlatformViewAppState
>();
}
class
PlatformViewAppState
extends
State
<
PlatformViewApp
>
{
@override
Widget
build
(
BuildContext
context
)
{
return
MaterialApp
(
theme:
ThemeData
.
light
(),
title:
'Advanced Layout'
,
home:
const
PlatformViewLayout
(),
);
}
void
toggleAnimationSpeed
()
{
setState
(()
{
timeDilation
=
(
timeDilation
!=
1.0
)
?
1.0
:
5.0
;
});
}
}
class
PlatformViewLayout
extends
StatelessWidget
{
const
PlatformViewLayout
({
Key
key
})
:
super
(
key:
key
);
@override
Widget
build
(
BuildContext
context
)
{
return
Scaffold
(
appBar:
AppBar
(
title:
const
Text
(
'Platform View Scrolling Layout'
)),
body:
ListView
.
builder
(
key:
const
Key
(
'platform-views-scroll'
),
// This key is used by the driver test.
itemCount:
200
,
itemBuilder:
(
BuildContext
context
,
int
index
)
{
return
Padding
(
padding:
const
EdgeInsets
.
all
(
5.0
),
child:
Material
(
elevation:
(
index
%
5
+
1
).
toDouble
(),
color:
Colors
.
white
,
child:
Stack
(
children:
const
<
Widget
>
[
DummyPlatformView
(),
RotationContainer
(),
],
),
),
);
},
),
);
}
}
class
DummyPlatformView
extends
StatelessWidget
{
const
DummyPlatformView
({
Key
key
})
:
super
(
key:
key
);
@override
Widget
build
(
BuildContext
context
)
{
const
String
viewType
=
'benchmarks/platform_views_layout/DummyPlatformView'
;
StatefulWidget
nativeView
;
if
(
Platform
.
isIOS
)
{
nativeView
=
const
UiKitView
(
viewType:
viewType
,
);
}
else
if
(
Platform
.
isAndroid
)
{
nativeView
=
const
AndroidView
(
viewType:
viewType
,
);
}
else
{
assert
(
false
,
'Invalid platform'
);
}
return
Container
(
color:
Colors
.
purple
,
height:
200.0
,
child:
nativeView
,
);
}
}
class
RotationContainer
extends
StatefulWidget
{
const
RotationContainer
({
Key
key
})
:
super
(
key:
key
);
@override
_RotationContainerState
createState
()
=>
_RotationContainerState
();
}
class
_RotationContainerState
extends
State
<
RotationContainer
>
with
SingleTickerProviderStateMixin
{
AnimationController
_rotationController
;
@override
void
initState
()
{
super
.
initState
();
_rotationController
=
AnimationController
(
vsync:
this
,
duration:
const
Duration
(
seconds:
1
),
value:
1
,
);
_rotationController
.
repeat
();
}
@override
Widget
build
(
BuildContext
context
)
{
return
RotationTransition
(
turns:
Tween
<
double
>(
begin:
0.0
,
end:
1.0
).
animate
(
_rotationController
),
child:
Container
(
color:
Colors
.
purple
,
width:
50.0
,
height:
50.0
,
),
);
}
}
dev/benchmarks/platform_views_layout/pubspec.yaml
0 → 100644
View file @
a3c6e4a0
name
:
platform_views_layout
description
:
A benchmark for platform views.
environment
:
# The pub client defaults to an <2.0.0 sdk constraint which we need to explicitly overwrite.
sdk
:
"
>=2.0.0-dev.68.0
<3.0.0"
dependencies
:
flutter
:
sdk
:
flutter
flutter_driver
:
sdk
:
flutter
# To change the version of the gallery assets, edit
# //packages/flutter_tools/lib/src/commands/update_packages.dart
# and run
# flutter update-packages --force-upgrade
flutter_gallery_assets
:
0.1.9+2
archive
:
2.0.11
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
args
:
1.5.2
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
async
:
2.4.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
charcode
:
1.1.2
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
collection
:
1.14.11
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
convert
:
2.1.1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
crypto
:
2.1.3
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
file
:
5.1.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
intl
:
0.16.1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
json_rpc_2
:
2.1.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
matcher
:
0.12.6
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
meta
:
1.1.8
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
path
:
1.6.4
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pub_semver
:
1.4.4
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
source_span
:
1.5.5
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
stack_trace
:
1.9.3
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
stream_channel
:
2.0.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
sync_http
:
0.2.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
term_glyph
:
1.1.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
typed_data
:
1.1.6
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
vector_math
:
2.0.8
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
vm_service_client
:
0.2.6+2
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
web_socket_channel
:
1.1.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
webdriver
:
2.1.2
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
dev_dependencies
:
flutter_test
:
sdk
:
flutter
test
:
1.14.2
_fe_analyzer_shared
:
1.0.3
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
analyzer
:
0.39.4
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
boolean_selector
:
1.0.5
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
coverage
:
0.13.9
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
csslib
:
0.16.1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
glob
:
1.2.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
html
:
0.14.0+3
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
http
:
0.12.0+4
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
http_multi_server
:
2.2.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
http_parser
:
3.1.3
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
image
:
2.1.4
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
io
:
0.3.3
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
js
:
0.6.1+1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
logging
:
0.11.4
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
mime
:
0.9.6+3
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
multi_server_socket
:
1.0.2
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
node_interop
:
1.0.3
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
node_io
:
1.0.1+2
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
node_preamble
:
1.4.8
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
package_config
:
1.9.1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
package_resolver
:
1.0.10
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pedantic
:
1.9.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
petitparser
:
2.4.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pool
:
1.4.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
quiver
:
2.0.5
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
shelf
:
0.7.5
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
shelf_packages_handler
:
1.0.4
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
shelf_static
:
0.2.8
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
shelf_web_socket
:
0.2.3
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
source_map_stack_trace
:
2.0.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
source_maps
:
0.10.9
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
string_scanner
:
1.0.5
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
test_api
:
0.2.15
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
test_core
:
0.3.3
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
vm_service
:
3.0.0+1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
watcher
:
0.9.7+14
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
webkit_inspection_protocol
:
0.5.0+1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
xml
:
3.5.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
yaml
:
2.2.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
flutter
:
uses-material-design
:
true
assets
:
-
packages/flutter_gallery_assets/people/square/ali.png
-
packages/flutter_gallery_assets/places/india_chettinad_silk_maker.png
# PUBSPEC CHECKSUM: 8ffb
dev/benchmarks/platform_views_layout/test_driver/scroll_perf.dart
0 → 100644
View file @
a3c6e4a0
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'package:flutter_driver/driver_extension.dart'
;
import
'package:platform_views_layout/main.dart'
as
app
;
void
main
(
)
{
enableFlutterDriverExtension
();
app
.
main
();
}
dev/benchmarks/platform_views_layout/test_driver/scroll_perf_test.dart
0 → 100644
View file @
a3c6e4a0
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'dart:async'
;
import
'package:flutter_driver/flutter_driver.dart'
;
import
'package:test/test.dart'
hide
TypeMatcher
,
isInstanceOf
;
void
main
(
)
{
group
(
'scrolling performance test'
,
()
{
FlutterDriver
driver
;
setUpAll
(()
async
{
driver
=
await
FlutterDriver
.
connect
();
await
driver
.
waitUntilFirstFrameRasterized
();
});
tearDownAll
(()
async
{
if
(
driver
!=
null
)
driver
.
close
();
});
Future
<
void
>
testScrollPerf
(
String
listKey
,
String
summaryName
)
async
{
// The slight initial delay avoids starting the timing during a
// period of increased load on the device. Without this delay, the
// benchmark has greater noise.
// See: https://github.com/flutter/flutter/issues/19434
await
Future
<
void
>.
delayed
(
const
Duration
(
milliseconds:
250
));
await
driver
.
forceGC
();
final
Timeline
timeline
=
await
driver
.
traceAction
(()
async
{
// Find the scrollable stock list
final
SerializableFinder
list
=
find
.
byValueKey
(
listKey
);
expect
(
list
,
isNotNull
);
// Scroll down
for
(
int
i
=
0
;
i
<
5
;
i
+=
1
)
{
await
driver
.
scroll
(
list
,
0.0
,
-
300.0
,
const
Duration
(
milliseconds:
300
));
await
Future
<
void
>.
delayed
(
const
Duration
(
milliseconds:
500
));
}
// Scroll up
for
(
int
i
=
0
;
i
<
5
;
i
+=
1
)
{
await
driver
.
scroll
(
list
,
0.0
,
300.0
,
const
Duration
(
milliseconds:
300
));
await
Future
<
void
>.
delayed
(
const
Duration
(
milliseconds:
500
));
}
});
final
TimelineSummary
summary
=
TimelineSummary
.
summarize
(
timeline
);
summary
.
writeSummaryToFile
(
summaryName
,
pretty:
true
);
summary
.
writeTimelineToFile
(
summaryName
,
pretty:
true
);
}
test
(
'platform_views_scroll_perf'
,
()
async
{
// Disable frame sync, since there are ongoing animations.
await
driver
.
runUnsynchronized
(()
async
{
await
testScrollPerf
(
'platform-views-scroll'
,
'platform_views_scroll_perf'
);
});
});
});
}
dev/devicelab/bin/tasks/platform_views_scroll_perf__timeline_summary.dart
0 → 100644
View file @
a3c6e4a0
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'dart:async'
;
import
'package:flutter_devicelab/tasks/perf_tests.dart'
;
import
'package:flutter_devicelab/framework/adb.dart'
;
import
'package:flutter_devicelab/framework/framework.dart'
;
Future
<
void
>
main
()
async
{
deviceOperatingSystem
=
DeviceOperatingSystem
.
android
;
await
task
(
createPlatformViewsScrollPerfTest
());
}
dev/devicelab/bin/tasks/platform_views_scroll_perf_ios__timeline_summary.dart
0 → 100644
View file @
a3c6e4a0
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'dart:async'
;
import
'package:flutter_devicelab/tasks/perf_tests.dart'
;
import
'package:flutter_devicelab/framework/adb.dart'
;
import
'package:flutter_devicelab/framework/framework.dart'
;
Future
<
void
>
main
()
async
{
deviceOperatingSystem
=
DeviceOperatingSystem
.
android
;
await
task
(
createPlatformViewsScrollPerfTest
());
}
dev/devicelab/lib/tasks/perf_tests.dart
View file @
a3c6e4a0
...
@@ -30,6 +30,14 @@ TaskFunction createTilesScrollPerfTest() {
...
@@ -30,6 +30,14 @@ TaskFunction createTilesScrollPerfTest() {
).
run
;
).
run
;
}
}
TaskFunction
createPlatformViewsScrollPerfTest
(
)
{
return
PerfTest
(
'
${flutterDirectory.path}
/dev/benchmarks/platform_views_layout'
,
'test_driver/scroll_perf.dart'
,
'platform_views_scroll_perf'
,
).
run
;
}
TaskFunction
createHomeScrollPerfTest
(
)
{
TaskFunction
createHomeScrollPerfTest
(
)
{
return
PerfTest
(
return
PerfTest
(
'
${flutterDirectory.path}
/dev/integration_tests/flutter_gallery'
,
'
${flutterDirectory.path}
/dev/integration_tests/flutter_gallery'
,
...
...
dev/devicelab/manifest.yaml
View file @
a3c6e4a0
...
@@ -147,6 +147,12 @@ tasks:
...
@@ -147,6 +147,12 @@ tasks:
stage
:
devicelab
stage
:
devicelab
required_agent_capabilities
:
[
"
mac/android"
]
required_agent_capabilities
:
[
"
mac/android"
]
platform_views_scroll_perf__timeline_summary
:
description
:
>
Measures the runtime performance of platform views in the Complex Layout sample app on Android.
stage
:
devicelab_ios
required_agent_capabilities
:
[
"
linux/android"
]
home_scroll_perf__timeline_summary
:
home_scroll_perf__timeline_summary
:
description
:
>
description
:
>
Measures the runtime performance of scrolling the material page in the
Measures the runtime performance of scrolling the material page in the
...
@@ -439,6 +445,12 @@ tasks:
...
@@ -439,6 +445,12 @@ tasks:
# TODO(keyonghan): change with https://github.com/flutter/flutter/issues/50383
# TODO(keyonghan): change with https://github.com/flutter/flutter/issues/50383
required_agent_capabilities
:
[
"
mac/ios"
]
required_agent_capabilities
:
[
"
mac/ios"
]
platform_views_scroll_perf_ios__timeline_summary
:
description
:
>
Measures the runtime performance of platform views in the Complex Layout sample app on iPhone 6.
stage
:
devicelab_ios
required_agent_capabilities
:
[
"
mac/ios"
]
flutter_gallery_ios32__start_up
:
flutter_gallery_ios32__start_up
:
description
:
>
description
:
>
Measures the startup time of the Flutter Gallery app on 32-bit iOS (iPhone 4S).
Measures the startup time of the Flutter Gallery app on 32-bit iOS (iPhone 4S).
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment