diff --git a/.gitignore b/.gitignore index 642b10ac0c..7560c1805a 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,6 @@ src/BenchmarkDotNet/Disassemblers/net461/* # Cake tools/** .dotnet + +# Xamarin +Resource.designer.cs \ No newline at end of file diff --git a/BenchmarkDotNet.Xamarin.sln b/BenchmarkDotNet.Xamarin.sln new file mode 100644 index 0000000000..3ec33b36d6 --- /dev/null +++ b/BenchmarkDotNet.Xamarin.sln @@ -0,0 +1,125 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29920.165 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BenchmarkDotNet", "src\BenchmarkDotNet\BenchmarkDotNet.csproj", "{6A3481EC-78A3-4A2E-994D-ED16778D83BB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BenchmarkDotNet.Samples.Forms", "samples\BenchmarkDotNet.Samples.Forms\BenchmarkDotNet.Samples.Forms.csproj", "{34358E9C-7048-43F5-AA66-4F9060081178}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BenchmarkDotNet.Samples.Android", "samples\BenchmarkDotNet.Samples.Android\BenchmarkDotNet.Samples.Android.csproj", "{F8547E13-AE77-44CC-9F1D-1717921C4B86}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BenchmarkDotNet.Samples.iOS", "samples\BenchmarkDotNet.Samples.iOS\BenchmarkDotNet.Samples.iOS.csproj", "{0A63C8A0-F7EB-47D7-8057-0C87C77C02A4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BenchmarkDotNet.Disassembler.x64", "src\BenchmarkDotNet.Disassembler.x64\BenchmarkDotNet.Disassembler.x64.csproj", "{78BD1D11-7841-4079-8ED7-CD253A71FD33}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BenchmarkDotNet.Disassembler.x86", "src\BenchmarkDotNet.Disassembler.x86\BenchmarkDotNet.Disassembler.x86.csproj", "{6E54F07F-5B12-465A-ADA2-39879DB704C1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BenchmarkDotNet.Annotations", "src\BenchmarkDotNet.Annotations\BenchmarkDotNet.Annotations.csproj", "{FA360486-97B1-4BA9-BCB2-78F86EA0F881}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|iPhone = Debug|iPhone + Debug|iPhoneSimulator = Debug|iPhoneSimulator + Release|Any CPU = Release|Any CPU + Release|iPhone = Release|iPhone + Release|iPhoneSimulator = Release|iPhoneSimulator + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6A3481EC-78A3-4A2E-994D-ED16778D83BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6A3481EC-78A3-4A2E-994D-ED16778D83BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6A3481EC-78A3-4A2E-994D-ED16778D83BB}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {6A3481EC-78A3-4A2E-994D-ED16778D83BB}.Debug|iPhone.Build.0 = Debug|Any CPU + {6A3481EC-78A3-4A2E-994D-ED16778D83BB}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {6A3481EC-78A3-4A2E-994D-ED16778D83BB}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {6A3481EC-78A3-4A2E-994D-ED16778D83BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6A3481EC-78A3-4A2E-994D-ED16778D83BB}.Release|Any CPU.Build.0 = Release|Any CPU + {6A3481EC-78A3-4A2E-994D-ED16778D83BB}.Release|iPhone.ActiveCfg = Release|Any CPU + {6A3481EC-78A3-4A2E-994D-ED16778D83BB}.Release|iPhone.Build.0 = Release|Any CPU + {6A3481EC-78A3-4A2E-994D-ED16778D83BB}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {6A3481EC-78A3-4A2E-994D-ED16778D83BB}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {34358E9C-7048-43F5-AA66-4F9060081178}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {34358E9C-7048-43F5-AA66-4F9060081178}.Debug|Any CPU.Build.0 = Debug|Any CPU + {34358E9C-7048-43F5-AA66-4F9060081178}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {34358E9C-7048-43F5-AA66-4F9060081178}.Debug|iPhone.Build.0 = Debug|Any CPU + {34358E9C-7048-43F5-AA66-4F9060081178}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {34358E9C-7048-43F5-AA66-4F9060081178}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {34358E9C-7048-43F5-AA66-4F9060081178}.Release|Any CPU.ActiveCfg = Release|Any CPU + {34358E9C-7048-43F5-AA66-4F9060081178}.Release|Any CPU.Build.0 = Release|Any CPU + {34358E9C-7048-43F5-AA66-4F9060081178}.Release|iPhone.ActiveCfg = Release|Any CPU + {34358E9C-7048-43F5-AA66-4F9060081178}.Release|iPhone.Build.0 = Release|Any CPU + {34358E9C-7048-43F5-AA66-4F9060081178}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {34358E9C-7048-43F5-AA66-4F9060081178}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86}.Debug|iPhone.Build.0 = Debug|Any CPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86}.Debug|iPhone.Deploy.0 = Debug|Any CPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86}.Release|Any CPU.Build.0 = Release|Any CPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86}.Release|Any CPU.Deploy.0 = Release|Any CPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86}.Release|iPhone.ActiveCfg = Release|Any CPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86}.Release|iPhone.Build.0 = Release|Any CPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86}.Release|iPhone.Deploy.0 = Release|Any CPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU + {0A63C8A0-F7EB-47D7-8057-0C87C77C02A4}.Debug|Any CPU.ActiveCfg = Debug|iPhone + {0A63C8A0-F7EB-47D7-8057-0C87C77C02A4}.Debug|iPhone.ActiveCfg = Debug|iPhone + {0A63C8A0-F7EB-47D7-8057-0C87C77C02A4}.Debug|iPhone.Build.0 = Debug|iPhone + {0A63C8A0-F7EB-47D7-8057-0C87C77C02A4}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {0A63C8A0-F7EB-47D7-8057-0C87C77C02A4}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {0A63C8A0-F7EB-47D7-8057-0C87C77C02A4}.Release|Any CPU.ActiveCfg = Release|iPhone + {0A63C8A0-F7EB-47D7-8057-0C87C77C02A4}.Release|iPhone.ActiveCfg = Release|iPhone + {0A63C8A0-F7EB-47D7-8057-0C87C77C02A4}.Release|iPhone.Build.0 = Release|iPhone + {0A63C8A0-F7EB-47D7-8057-0C87C77C02A4}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {0A63C8A0-F7EB-47D7-8057-0C87C77C02A4}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator + {78BD1D11-7841-4079-8ED7-CD253A71FD33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78BD1D11-7841-4079-8ED7-CD253A71FD33}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78BD1D11-7841-4079-8ED7-CD253A71FD33}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {78BD1D11-7841-4079-8ED7-CD253A71FD33}.Debug|iPhone.Build.0 = Debug|Any CPU + {78BD1D11-7841-4079-8ED7-CD253A71FD33}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {78BD1D11-7841-4079-8ED7-CD253A71FD33}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {78BD1D11-7841-4079-8ED7-CD253A71FD33}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78BD1D11-7841-4079-8ED7-CD253A71FD33}.Release|Any CPU.Build.0 = Release|Any CPU + {78BD1D11-7841-4079-8ED7-CD253A71FD33}.Release|iPhone.ActiveCfg = Release|Any CPU + {78BD1D11-7841-4079-8ED7-CD253A71FD33}.Release|iPhone.Build.0 = Release|Any CPU + {78BD1D11-7841-4079-8ED7-CD253A71FD33}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {78BD1D11-7841-4079-8ED7-CD253A71FD33}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {6E54F07F-5B12-465A-ADA2-39879DB704C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6E54F07F-5B12-465A-ADA2-39879DB704C1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6E54F07F-5B12-465A-ADA2-39879DB704C1}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {6E54F07F-5B12-465A-ADA2-39879DB704C1}.Debug|iPhone.Build.0 = Debug|Any CPU + {6E54F07F-5B12-465A-ADA2-39879DB704C1}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {6E54F07F-5B12-465A-ADA2-39879DB704C1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {6E54F07F-5B12-465A-ADA2-39879DB704C1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6E54F07F-5B12-465A-ADA2-39879DB704C1}.Release|Any CPU.Build.0 = Release|Any CPU + {6E54F07F-5B12-465A-ADA2-39879DB704C1}.Release|iPhone.ActiveCfg = Release|Any CPU + {6E54F07F-5B12-465A-ADA2-39879DB704C1}.Release|iPhone.Build.0 = Release|Any CPU + {6E54F07F-5B12-465A-ADA2-39879DB704C1}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {6E54F07F-5B12-465A-ADA2-39879DB704C1}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {FA360486-97B1-4BA9-BCB2-78F86EA0F881}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA360486-97B1-4BA9-BCB2-78F86EA0F881}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA360486-97B1-4BA9-BCB2-78F86EA0F881}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {FA360486-97B1-4BA9-BCB2-78F86EA0F881}.Debug|iPhone.Build.0 = Debug|Any CPU + {FA360486-97B1-4BA9-BCB2-78F86EA0F881}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {FA360486-97B1-4BA9-BCB2-78F86EA0F881}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {FA360486-97B1-4BA9-BCB2-78F86EA0F881}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA360486-97B1-4BA9-BCB2-78F86EA0F881}.Release|Any CPU.Build.0 = Release|Any CPU + {FA360486-97B1-4BA9-BCB2-78F86EA0F881}.Release|iPhone.ActiveCfg = Release|Any CPU + {FA360486-97B1-4BA9-BCB2-78F86EA0F881}.Release|iPhone.Build.0 = Release|Any CPU + {FA360486-97B1-4BA9-BCB2-78F86EA0F881}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {FA360486-97B1-4BA9-BCB2-78F86EA0F881}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {36B462DE-57CC-423E-855A-F3B19FE99549} + EndGlobalSection +EndGlobal diff --git a/docs/articles/samples/IntroXamarin.md b/docs/articles/samples/IntroXamarin.md new file mode 100644 index 0000000000..4484063e97 --- /dev/null +++ b/docs/articles/samples/IntroXamarin.md @@ -0,0 +1,29 @@ +--- +uid: BenchmarkDotNet.Samples.Xamarin +--- + +## Sample: IntroXamarin + +To use BenchmarkDotNet with Xamarin, you will need to build a small UI for running Benchmarks and displaying the results so you can actually read them. +Using [Xamarin.Forms](https://dotnet.microsoft.com/apps/xamarin/xamarin-forms) is a simple way to be able to run your benchmarks on iOS or Android. + +Other notes: + +* Use `Release` builds when running actual benchmarks. +* Disable the linker via the `Don't Link` or `None`. + +### Source code + +[!code-csharp[MainPage.xaml.cs](../../../samples/BenchmarkDotNet.Samples.Forms/MainPage.xaml.cs)] + +### Output + +![Xamarin Output](../../images/xamarin-screenshot.png) + +### Links + +* [Xamarin.Android linker settings](https://docs.microsoft.com/xamarin/android/deploy-test/linker#linker-behavior) +* [Xamarin.iOS linker settings](https://docs.microsoft.com/xamarin/ios/deploy-test/linker#dont-link) +* The permanent link to this sample: @BenchmarkDotNet.Samples.Xamarin + +--- \ No newline at end of file diff --git a/docs/images/xamarin-screenshot.png b/docs/images/xamarin-screenshot.png new file mode 100644 index 0000000000..fb9670de10 Binary files /dev/null and b/docs/images/xamarin-screenshot.png differ diff --git a/samples/BenchmarkDotNet.Samples.Android/BenchmarkDotNet.Samples.Android.csproj b/samples/BenchmarkDotNet.Samples.Android/BenchmarkDotNet.Samples.Android.csproj new file mode 100644 index 0000000000..b49ff23616 --- /dev/null +++ b/samples/BenchmarkDotNet.Samples.Android/BenchmarkDotNet.Samples.Android.csproj @@ -0,0 +1,97 @@ + + + + Debug + AnyCPU + {F8547E13-AE77-44CC-9F1D-1717921C4B86} + {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {c9e5eea5-ca05-42a1-839b-61506e0a37df} + Library + BenchmarkDotNet.Samples.Forms.Droid + BenchmarkDotNet.Samples.Forms.Android + True + Resources\Resource.designer.cs + Resource + Properties\AndroidManifest.xml + Resources + Assets + false + v9.0 + true + true + Xamarin.Android.Net.AndroidClientHandler + + + + + true + portable + false + bin\Debug + DEBUG; + prompt + 4 + None + + + true + portable + true + bin\Release + prompt + 4 + true + false + armeabi-v7a;x86;x86_64;arm64-v8a + None + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {EF54613D-8A3D-42DB-BF98-AD95C582FEF3} + BenchmarkDotNet.Samples.Forms + + + + \ No newline at end of file diff --git a/samples/BenchmarkDotNet.Samples.Android/MainActivity.cs b/samples/BenchmarkDotNet.Samples.Android/MainActivity.cs new file mode 100644 index 0000000000..de4472c639 --- /dev/null +++ b/samples/BenchmarkDotNet.Samples.Android/MainActivity.cs @@ -0,0 +1,33 @@ +using System; + +using Android.App; +using Android.Content.PM; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using Android.OS; + +namespace BenchmarkDotNet.Samples.Forms.Droid +{ + [Activity(Label = "BenchmarkDotNet.Samples.Forms", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] + public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity + { + protected override void OnCreate(Bundle savedInstanceState) + { + TabLayoutResource = Resource.Layout.Tabbar; + ToolbarResource = Resource.Layout.Toolbar; + + base.OnCreate(savedInstanceState); + + Xamarin.Essentials.Platform.Init(this, savedInstanceState); + global::Xamarin.Forms.Forms.Init(this, savedInstanceState); + LoadApplication(new App()); + } + public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults) + { + Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults); + + base.OnRequestPermissionsResult(requestCode, permissions, grantResults); + } + } +} \ No newline at end of file diff --git a/samples/BenchmarkDotNet.Samples.Android/Properties/AndroidManifest.xml b/samples/BenchmarkDotNet.Samples.Android/Properties/AndroidManifest.xml new file mode 100644 index 0000000000..54785ba51b --- /dev/null +++ b/samples/BenchmarkDotNet.Samples.Android/Properties/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/samples/BenchmarkDotNet.Samples.Android/Properties/AssemblyInfo.cs b/samples/BenchmarkDotNet.Samples.Android/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..07737969cd --- /dev/null +++ b/samples/BenchmarkDotNet.Samples.Android/Properties/AssemblyInfo.cs @@ -0,0 +1,34 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using Android.App; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("BenchmarkDotNet.Samples.Forms.Android")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("BenchmarkDotNet.Samples.Forms.Android")] +[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: ComVisible(false)] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] + +// Add some common permissions, these can be removed if not needed +[assembly: UsesPermission(Android.Manifest.Permission.Internet)] +[assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)] diff --git a/samples/BenchmarkDotNet.Samples.Android/Resources/layout/Tabbar.xml b/samples/BenchmarkDotNet.Samples.Android/Resources/layout/Tabbar.xml new file mode 100644 index 0000000000..ad1f87d817 --- /dev/null +++ b/samples/BenchmarkDotNet.Samples.Android/Resources/layout/Tabbar.xml @@ -0,0 +1,11 @@ + + diff --git a/samples/BenchmarkDotNet.Samples.Android/Resources/layout/Toolbar.xml b/samples/BenchmarkDotNet.Samples.Android/Resources/layout/Toolbar.xml new file mode 100644 index 0000000000..aabd0a3b74 --- /dev/null +++ b/samples/BenchmarkDotNet.Samples.Android/Resources/layout/Toolbar.xml @@ -0,0 +1,9 @@ + + diff --git a/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-anydpi-v26/icon.xml b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-anydpi-v26/icon.xml new file mode 100644 index 0000000000..88d1d0a16c --- /dev/null +++ b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-anydpi-v26/icon.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-anydpi-v26/icon_round.xml b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-anydpi-v26/icon_round.xml new file mode 100644 index 0000000000..88d1d0a16c --- /dev/null +++ b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-anydpi-v26/icon_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-hdpi/icon.png b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-hdpi/icon.png new file mode 100644 index 0000000000..4623ca2c42 Binary files /dev/null and b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-hdpi/icon.png differ diff --git a/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-hdpi/launcher_foreground.png b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-hdpi/launcher_foreground.png new file mode 100644 index 0000000000..a89e5bbce6 Binary files /dev/null and b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-hdpi/launcher_foreground.png differ diff --git a/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-mdpi/icon.png b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-mdpi/icon.png new file mode 100644 index 0000000000..9b1d25e25d Binary files /dev/null and b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-mdpi/icon.png differ diff --git a/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-mdpi/launcher_foreground.png b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-mdpi/launcher_foreground.png new file mode 100644 index 0000000000..431a8a053d Binary files /dev/null and b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-mdpi/launcher_foreground.png differ diff --git a/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-xhdpi/icon.png b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-xhdpi/icon.png new file mode 100644 index 0000000000..844dfe544e Binary files /dev/null and b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-xhdpi/icon.png differ diff --git a/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-xhdpi/launcher_foreground.png b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-xhdpi/launcher_foreground.png new file mode 100644 index 0000000000..9e9e4f8e4c Binary files /dev/null and b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-xhdpi/launcher_foreground.png differ diff --git a/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-xxhdpi/icon.png b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-xxhdpi/icon.png new file mode 100644 index 0000000000..e20ec9ae22 Binary files /dev/null and b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-xxhdpi/icon.png differ diff --git a/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-xxhdpi/launcher_foreground.png b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-xxhdpi/launcher_foreground.png new file mode 100644 index 0000000000..5f1e1356eb Binary files /dev/null and b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-xxhdpi/launcher_foreground.png differ diff --git a/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-xxxhdpi/icon.png b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-xxxhdpi/icon.png new file mode 100644 index 0000000000..8a08bf75e7 Binary files /dev/null and b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-xxxhdpi/icon.png differ diff --git a/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png new file mode 100644 index 0000000000..aca9f8d1c0 Binary files /dev/null and b/samples/BenchmarkDotNet.Samples.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png differ diff --git a/samples/BenchmarkDotNet.Samples.Android/Resources/values/colors.xml b/samples/BenchmarkDotNet.Samples.Android/Resources/values/colors.xml new file mode 100644 index 0000000000..d9f6e0baf9 --- /dev/null +++ b/samples/BenchmarkDotNet.Samples.Android/Resources/values/colors.xml @@ -0,0 +1,7 @@ + + + #FFFFFF + #3F51B5 + #303F9F + #FF4081 + diff --git a/samples/BenchmarkDotNet.Samples.Android/Resources/values/styles.xml b/samples/BenchmarkDotNet.Samples.Android/Resources/values/styles.xml new file mode 100644 index 0000000000..17a2eb0e97 --- /dev/null +++ b/samples/BenchmarkDotNet.Samples.Android/Resources/values/styles.xml @@ -0,0 +1,30 @@ + + + + + + + + + diff --git a/samples/BenchmarkDotNet.Samples.Forms/App.xaml b/samples/BenchmarkDotNet.Samples.Forms/App.xaml new file mode 100644 index 0000000000..31593fa9ed --- /dev/null +++ b/samples/BenchmarkDotNet.Samples.Forms/App.xaml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/samples/BenchmarkDotNet.Samples.Forms/App.xaml.cs b/samples/BenchmarkDotNet.Samples.Forms/App.xaml.cs new file mode 100644 index 0000000000..ae28171078 --- /dev/null +++ b/samples/BenchmarkDotNet.Samples.Forms/App.xaml.cs @@ -0,0 +1,16 @@ +using System; +using Xamarin.Forms; +using Xamarin.Forms.Xaml; + +namespace BenchmarkDotNet.Samples.Forms +{ + public partial class App : Application + { + public App() + { + InitializeComponent(); + + MainPage = new MainPage(); + } + } +} diff --git a/samples/BenchmarkDotNet.Samples.Forms/AssemblyInfo.cs b/samples/BenchmarkDotNet.Samples.Forms/AssemblyInfo.cs new file mode 100644 index 0000000000..c859952e34 --- /dev/null +++ b/samples/BenchmarkDotNet.Samples.Forms/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using Xamarin.Forms.Xaml; + +[assembly: XamlCompilation(XamlCompilationOptions.Compile)] \ No newline at end of file diff --git a/samples/BenchmarkDotNet.Samples.Forms/BenchmarkDotNet.Samples.Forms.csproj b/samples/BenchmarkDotNet.Samples.Forms/BenchmarkDotNet.Samples.Forms.csproj new file mode 100644 index 0000000000..ddec326433 --- /dev/null +++ b/samples/BenchmarkDotNet.Samples.Forms/BenchmarkDotNet.Samples.Forms.csproj @@ -0,0 +1,22 @@ + + + + netstandard2.0 + true + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/BenchmarkDotNet.Samples.Forms/MainPage.xaml b/samples/BenchmarkDotNet.Samples.Forms/MainPage.xaml new file mode 100644 index 0000000000..80f1caa3ba --- /dev/null +++ b/samples/BenchmarkDotNet.Samples.Forms/MainPage.xaml @@ -0,0 +1,32 @@ + + + + + + + +