Skip to content

Commit 17b6d0a

Browse files
author
vakrilov
committed
Perf-test app
1 parent bb3b0bb commit 17b6d0a

File tree

91 files changed

+1081
-4
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+1081
-4
lines changed

.gitignore

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ ng-sample/lib
3535
ng-sample/node_modules
3636
ng-sample/app/nativescript-angular
3737

38-
startup-test/platforms
39-
startup-test/lib
40-
startup-test/node_modules
38+
perf-test/platforms
39+
perf-test/hooks
40+
ng-sample/app/**/*.js
4141

4242
# IDEs and editors
4343
/.idea

nativescript-angular/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
"@angular/platform-browser": "~4.0.0 || ~4.1.0",
5252
"@angular/router": "~4.0.0 || ~4.1.0",
5353
"rxjs": "^5.0.1",
54-
"tns-core-modules": "^3.0.0",
54+
"tns-core-modules": "^3.0.0 || >=3.1.0-2017",
5555
"zone.js": "^0.8.4"
5656
},
5757
"devDependencies": {

nativescript-angular/renderer.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { Device } from "tns-core-modules/platform";
88
import { View } from "tns-core-modules/ui/core/view";
99
import { addCss } from "tns-core-modules/application";
1010
import { topmost } from "tns-core-modules/ui/frame";
11+
import { profile } from "tns-core-modules/profiling";
1112

1213
import { APP_ROOT_VIEW, DEVICE, getRootPage } from "./platform-providers";
1314
import { isBlank } from "./lang-facade";
@@ -48,6 +49,7 @@ export class NativeScriptRendererFactory implements RendererFactory2 {
4849
this.rootNgView = rootView;
4950
}
5051

52+
@profile()
5153
createRenderer(element: any, type: RendererType2): NativeScriptRenderer {
5254
if (!element || !type) {
5355
return this.defaultRenderer;
@@ -82,21 +84,25 @@ export class NativeScriptRenderer extends Renderer2 {
8284
traceLog("NativeScriptRenderer created");
8385
}
8486

87+
@profile()
8588
appendChild(parent: any, newChild: NgView): void {
8689
traceLog(`NativeScriptRenderer.appendChild child: ${newChild} parent: ${parent}`);
8790
this.viewUtil.insertChild(parent, newChild);
8891
}
8992

93+
@profile()
9094
insertBefore(parent: NgView, newChild: NgView, refChildIndex: number): void {
9195
traceLog(`NativeScriptRenderer.insertBefore child: ${newChild} parent: ${parent}`);
9296
this.viewUtil.insertChild(parent, newChild, refChildIndex);
9397
}
9498

99+
@profile()
95100
removeChild(parent: any, oldChild: NgView): void {
96101
traceLog(`NativeScriptRenderer.removeChild child: ${oldChild} parent: ${parent}`);
97102
this.viewUtil.removeChild(parent, oldChild);
98103
}
99104

105+
@profile()
100106
selectRootElement(selector: string): NgView {
101107
traceLog("selectRootElement: " + selector);
102108
return this.rootView;
@@ -106,66 +112,79 @@ export class NativeScriptRenderer extends Renderer2 {
106112
return node.parent || node.templateParent;
107113
}
108114

115+
@profile()
109116
nextSibling(node: NgView): number {
110117
traceLog(`NativeScriptRenderer.nextSibling ${node}`);
111118
return this.viewUtil.nextSiblingIndex(node);
112119
}
113120

121+
@profile()
114122
createComment(_value: any): CommentNode {
115123
traceLog(`NativeScriptRenderer.createComment ${_value}`);
116124
return this.viewUtil.createComment();
117125
}
118126

127+
@profile()
119128
createElement(name: any, _namespace: string): NgView {
120129
traceLog(`NativeScriptRenderer.createElement: ${name}`);
121130
return this.viewUtil.createView(name);
122131
}
123132

133+
@profile()
124134
createText(_value: string): CommentNode {
125135
traceLog(`NativeScriptRenderer.createText ${_value}`);
126136
return this.viewUtil.createText();
127137
}
128138

139+
@profile()
129140
createViewRoot(hostElement: NgView): NgView {
130141
traceLog(`NativeScriptRenderer.createViewRoot ${hostElement.nodeName}`);
131142
return hostElement;
132143
}
133144

145+
@profile()
134146
projectNodes(parentElement: NgView, nodes: NgView[]): void {
135147
traceLog("NativeScriptRenderer.projectNodes");
136148
nodes.forEach((node) => this.viewUtil.insertChild(parentElement, node));
137149
}
138150

151+
@profile()
139152
destroy() {
140153
traceLog("NativeScriptRenderer.destroy");
141154
// Seems to be called on component dispose only (router outlet)
142155
// TODO: handle this when we resolve routing and navigation.
143156
}
144157

158+
@profile()
145159
setAttribute(view: NgView, name: string, value: string, namespace?: string) {
146160
traceLog(`NativeScriptRenderer.setAttribute ${view} : ${name} = ${value}, namespace: ${namespace}`);
147161
return this.viewUtil.setProperty(view, name, value, namespace);
148162
}
149163

164+
@profile()
150165
removeAttribute(_el: NgView, _name: string): void {
151166
traceLog(`NativeScriptRenderer.removeAttribute ${_el}: ${_name}`);
152167
}
153168

169+
@profile()
154170
setProperty(view: any, name: string, value: any) {
155171
traceLog(`NativeScriptRenderer.setProperty ${view} : ${name} = ${value}`);
156172
return this.viewUtil.setProperty(view, name, value);
157173
}
158174

175+
@profile()
159176
addClass(view: NgView, name: string): void {
160177
traceLog(`NativeScriptRenderer.addClass ${name}`);
161178
this.viewUtil.addClass(view, name);
162179
}
163180

181+
@profile()
164182
removeClass(view: NgView, name: string): void {
165183
traceLog(`NativeScriptRenderer.removeClass ${name}`);
166184
this.viewUtil.removeClass(view, name);
167185
}
168186

187+
@profile()
169188
setStyle(view: NgView, styleName: string, value: any, _flags?: RendererStyleFlags2): void {
170189
traceLog(`NativeScriptRenderer.setStyle: ${styleName} = ${value}`);
171190
this.viewUtil.setStyle(view, styleName, value);
@@ -178,23 +197,28 @@ export class NativeScriptRenderer extends Renderer2 {
178197

179198
// Used only in debug mode to serialize property changes to comment nodes,
180199
// such as <template> placeholders.
200+
@profile()
181201
setBindingDebugInfo(renderElement: NgView, propertyName: string, propertyValue: string): void {
182202
traceLog("NativeScriptRenderer.setBindingDebugInfo: " + renderElement + ", " +
183203
propertyName + " = " + propertyValue);
184204
}
185205

206+
@profile()
186207
setElementDebugInfo(renderElement: any, _info: any /*RenderDebugInfo*/): void {
187208
traceLog("NativeScriptRenderer.setElementDebugInfo: " + renderElement);
188209
}
189210

211+
@profile()
190212
invokeElementMethod(_renderElement: NgView, methodName: string, args: Array<any>) {
191213
traceLog("NativeScriptRenderer.invokeElementMethod " + methodName + " " + args);
192214
}
193215

216+
@profile()
194217
setValue(_renderNode: any, _value: string) {
195218
traceLog("NativeScriptRenderer.setValue");
196219
}
197220

221+
@profile()
198222
listen(renderElement: any, eventName: string, callback: (event: any) => boolean):
199223
() => void {
200224
traceLog("NativeScriptRenderer.listen: " + eventName);
@@ -232,14 +256,17 @@ class EmulatedRenderer extends NativeScriptRenderer {
232256
this.addStyles(component.styles, componentId);
233257
}
234258

259+
@profile()
235260
applyToHost(view: NgView) {
236261
super.setAttribute(view, this.hostAttr, "");
237262
}
238263

264+
@profile()
239265
appendChild(parent: any, newChild: NgView): void {
240266
super.appendChild(parent, newChild);
241267
}
242268

269+
@profile()
243270
createElement(parent: any, name: string): NgView {
244271
const view = super.createElement(parent, name);
245272

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
package="__PACKAGE__"
4+
android:versionCode="1"
5+
android:versionName="1.0">
6+
7+
<supports-screens
8+
android:smallScreens="true"
9+
android:normalScreens="true"
10+
android:largeScreens="true"
11+
android:xlargeScreens="true"/>
12+
13+
<uses-sdk
14+
android:minSdkVersion="17"
15+
android:targetSdkVersion="__APILEVEL__"/>
16+
17+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
18+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
19+
<uses-permission android:name="android.permission.INTERNET"/>
20+
21+
<application
22+
android:name="com.tns.NativeScriptApplication"
23+
android:allowBackup="true"
24+
android:icon="@drawable/icon"
25+
android:label="@string/app_name"
26+
android:theme="@style/AppTheme">
27+
28+
<activity
29+
android:name="com.tns.NativeScriptActivity"
30+
android:label="@string/title_activity_kimera"
31+
android:configChanges="keyboardHidden|orientation|screenSize"
32+
android:theme="@style/LaunchScreenTheme">
33+
34+
<meta-data android:name="SET_THEME_ON_LAUNCH" android:resource="@style/AppTheme" />
35+
36+
<intent-filter>
37+
<action android:name="android.intent.action.MAIN" />
38+
<category android:name="android.intent.category.LAUNCHER" />
39+
</intent-filter>
40+
</activity>
41+
<activity android:name="com.tns.ErrorReportActivity"/>
42+
</application>
43+
</manifest>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Add your native dependencies here:
2+
3+
// Uncomment to add recyclerview-v7 dependency
4+
//dependencies {
5+
// compile 'com.android.support:recyclerview-v7:+'
6+
//}
7+
8+
android {
9+
defaultConfig {
10+
generatedDensities = []
11+
applicationId = "org.nativescript.perftest"
12+
}
13+
aaptOptions {
14+
additionalParameters "--no-version-vectors"
15+
}
16+
}
Loading
Loading
Loading
Loading
Loading
Loading
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:gravity="fill">
2+
<item>
3+
<bitmap android:gravity="fill" android:src="@drawable/background" />
4+
</item>
5+
<item>
6+
<bitmap android:gravity="center" android:src="@drawable/logo" />
7+
</item>
8+
</layer-list>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<color name="ns_accent">#3d5afe</color>
4+
</resources>
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
4+
<!-- Application theme -->
5+
<style name="AppTheme" parent="AppThemeBase">
6+
<item name="android:datePickerStyle">@style/SpinnerDatePicker</item>
7+
<item name="android:timePickerStyle">@style/SpinnerTimePicker</item>
8+
</style>
9+
10+
<!-- Default style for DatePicker - in spinner mode -->
11+
<style name="SpinnerDatePicker" parent="android:Widget.Material.Light.DatePicker">
12+
<item name="android:datePickerMode">spinner</item>
13+
</style>
14+
15+
<!-- Default style for TimePicker - in spinner mode -->
16+
<style name="SpinnerTimePicker" parent="android:Widget.Material.Light.TimePicker">
17+
<item name="android:timePickerMode">spinner</item>
18+
</style>
19+
20+
<style name="NativeScriptToolbarStyle" parent="NativeScriptToolbarStyleBase">
21+
<item name="android:elevation">4dp</item>
22+
</style>
23+
</resources>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<color name="ns_primary">#F5F5F5</color>
4+
<color name="ns_primaryDark">#757575</color>
5+
<color name="ns_accent">#33B5E5</color>
6+
<color name="ns_blue">#272734</color>
7+
</resources>
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources xmlns:android="http://schemas.android.com/apk/res/android">
3+
4+
<!-- theme to use FOR launch screen-->
5+
<style name="LaunchScreenThemeBase" parent="Theme.AppCompat.Light.NoActionBar">
6+
<item name="toolbarStyle">@style/NativeScriptToolbarStyle</item>
7+
8+
<item name="colorPrimary">@color/ns_primary</item>
9+
<item name="colorPrimaryDark">@color/ns_primaryDark</item>
10+
<item name="colorAccent">@color/ns_accent</item>
11+
12+
<item name="android:windowBackground">@drawable/splash_screen</item>
13+
14+
<item name="android:windowActionBarOverlay">true</item>
15+
<item name="android:windowTranslucentStatus">true</item>
16+
17+
</style>
18+
19+
<style name="LaunchScreenTheme" parent="LaunchScreenThemeBase">
20+
</style>
21+
22+
<!-- theme to use AFTER launch screen is loaded-->
23+
<style name="AppThemeBase" parent="Theme.AppCompat.Light.NoActionBar">
24+
<item name="toolbarStyle">@style/NativeScriptToolbarStyle</item>
25+
26+
<item name="colorPrimary">@color/ns_primary</item>
27+
<item name="colorPrimaryDark">@color/ns_primaryDark</item>
28+
<item name="colorAccent">@color/ns_accent</item>
29+
30+
</style>
31+
32+
<style name="AppTheme" parent="AppThemeBase">
33+
</style>
34+
35+
<!-- theme for actioon-bar -->
36+
<style name="NativeScriptToolbarStyleBase" parent="Widget.AppCompat.Toolbar">
37+
<item name="android:background">@color/ns_primary</item>
38+
<item name="theme">@style/ThemeOverlay.AppCompat.ActionBar</item>
39+
<item name="popupTheme">@style/ThemeOverlay.AppCompat</item>
40+
41+
</style>
42+
43+
<style name="NativeScriptToolbarStyle" parent="NativeScriptToolbarStyleBase">
44+
</style>
45+
</resources>

0 commit comments

Comments
 (0)