Skip to content

Instantly share code, notes, and snippets.

View jonathanpeppers's full-sized avatar
🌶️
spicy!

Jonathan Peppers jonathanpeppers

🌶️
spicy!
View GitHub Profile
[2019-04-10T12:29:41.127Z] _GenerateJniMarshalMethods:
[2019-04-10T12:29:41.127Z] MONO_PATH="/Users/builder/jenkins/workspace/xamarin-android-pr-pipeline-release/xamarin-android/bin/Release/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/:obj/Release/linksrc/" "/Users/builder/jenkins/workspace/xamarin-android-pr-pipeline-release/xamarin-android/bin/Release/lib/xamarin.android/xbuild/Xamarin/Android/Darwin//mono" --debug "/Users/builder/jenkins/workspace/xamarin-android-pr-pipeline-release/xamarin-android/bin/Release/lib/xamarin.android/xbuild/Xamarin/Android/jnimarshalmethod-gen.exe" --jvm="/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre/lib/jli/libjli.dylib" "obj/Release/linksrc/Mono.Android-Tests.dll" "obj/Release/linksrc/Mono.Android_Test.Library.dll" "obj/Release/linksrc/TestRunner.Core.dll" "obj/Release/linksrc/TestRunner.NUnit.dll" "obj/Release/linksrc/Mono.Android.dll" "obj/Release/linksrc/Xamarin.Android.NUnitLite.dll"
[2019-04-10T12:29:41.424Z]
[2019-04-10T12:29:41.4
@jonathanpeppers
jonathanpeppers / build.gradle
Created April 9, 2019 16:58
Example of building Xamarin.Android java sources with gradle
// I put this in obj\Debug\android\build.gradle
// Ran `gradlew assemble` -> 'build\libs\classes.jar`
// Unfortunately this took 2s with gradle, compared to 569ms with just javac
plugins {
id 'java'
}
sourceSets {
main {
java {
@jonathanpeppers
jonathanpeppers / profile.ps1
Last active April 7, 2020 19:07
My powershell profile I've been using
Import-Module 'C:\tools\poshgit\dahlbyk-posh-git-9bda399\src\posh-git.psd1'
# Chocolatey profile
$ChocolateyProfile = "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1"
if (Test-Path($ChocolateyProfile))
{
Import-Module "$ChocolateyProfile"
}
@jonathanpeppers
jonathanpeppers / XACecil.md
Last active September 10, 2018 20:00
Notes for where we use `DirectoryAssemblyResolver`

Readonly:

  • src/Xamarin.Android.Build.Tasks/Tasks/BuildApk.cs: extract EmbeddedResource
  • src/Xamarin.Android.Build.Tasks/Tasks/CheckTargetFrameworks.cs: look at assembly attributes
  • src/Xamarin.Android.Build.Tasks/Tasks/GenerateJavaStubs.cs: look at all the types
  • src/Xamarin.Android.Build.Tasks/Tasks/GenerateResourceDesigner.cs: look at all the types
  • src/Xamarin.Android.Build.Tasks/Tasks/GetAdditionalResourcesFromAssemblies.cs: look at assembly attributes
  • src/Xamarin.Android.Build.Tasks/Tasks/ResolveAssemblies.cs: look at assembly references
  • src/Xamarin.Android.Build.Tasks/Tasks/ResolveLibraryProjectImports.cs: look at EmbeddedResource
@jonathanpeppers
jonathanpeppers / DebugXamarinAndroid.md
Last active April 4, 2018 04:08
My failed attempt to Debug Xamarin.Android

Step 1

I started with a fresh clone of xamarin-android and checked out the d15-7 branch.

Need to specify MSBUILD=msbuild if we plan on using VS for Mac:

make prepare all MSBUILD=msbuild

Otherwise, it will build with xbuild and all our IDEs use msbuild now.

@jonathanpeppers
jonathanpeppers / MainActivity.cs
Created March 16, 2018 15:40
gildex.forms setup code
Xamarin.Forms.Forms.Init (this, bundle);
//This forces the custom renderers to be used
Android.Glide.Forms.Init ();
LoadApplication (new App ());
@jonathanpeppers
jonathanpeppers / glide.java
Created March 16, 2018 14:50
Example using Glide in Java
GlideApp
.with(myFragment)
.load(url)
.centerCrop()
.placeholder(R.drawable.loading_spinner)
.into(myImageView);
if (bitmap == null && source is FileImageSource)
imageView.SetImageResource(ResourceManager.GetDrawableByName(((FileImageSource)source).File));
@jonathanpeppers
jonathanpeppers / FileImageSourceHandler.cs
Created February 15, 2018 17:15
Magical Xamarin.Forms IImageSourceHandler implementation for Android
using System.Threading;
using System.Threading.Tasks;
using Android.Content;
using Android.Graphics;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
[assembly: ExportImageSourceHandler(typeof(FileImageSource), typeof(xfperf.FileImageSourceHandler))]
namespace xfperf
@jonathanpeppers
jonathanpeppers / Profiler.cs
Created February 15, 2018 16:20
Static profiler class for timing different intervals across a Xamarin.Forms app
using System;
using System.Collections.Concurrent;
using System.Diagnostics;
namespace xfperf
{
public static class Profiler
{
static readonly ConcurrentDictionary<string, Stopwatch> watches = new ConcurrentDictionary<string, Stopwatch>();