Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Java Binding Tips and Tricks 2017
Search
Atsushi Eno
September 21, 2017
Programming
0
360
Java Binding Tips and Tricks 2017
monkeyfest.io
Atsushi Eno
September 21, 2017
Tweet
Share
More Decks by Atsushi Eno
See All by Atsushi Eno
Building Kotlin Multiplatform Libraries in 2024
atsushieno
0
1.2k
Kotlin Multiplatformで MIDI 1.0/2.0 ライブラリを作っている話
atsushieno
1
530
building_audio_plugin_ecosystem_on_Android.pdf
atsushieno
0
990
get updated to the latest realtime audio processings knowledge base (2023) (再履修: 2023年までの リアルタイムオーディオ処理)
atsushieno
1
1k
learning how DAWs work, with Zrythm
atsushieno
0
1k
What for, Where and How to Adopt MIDI 2.0
atsushieno
0
1.1k
audio plugin format study meetup 2022.7.6 (JP)
atsushieno
0
1.5k
CLAPオーディオプラグイン is 何?
atsushieno
1
1.1k
MML to MIDI 2.0 to DAW
atsushieno
1
1.9k
Other Decks in Programming
See All in Programming
[Kotlin Fest 2024] もっとKotlinを好きになる!K2時代のKotlin Compiler Plugin開発
kitakkun
2
2.5k
What's new in Xcode 16 ダイジェスト
enomotok
0
220
KotlinのLinter まなびなおし2024
nyafunta9858
0
2.2k
【超難問】絶対に解けないJavaScriptクイズ8選
tomo1227
0
2.1k
CSC307 Lecture 02
javiergs
PRO
0
330
2024/7/11発刊!開発生産性の教科書がざっとわかるスライド 2024/06/20 / A Brief Overview of the Textbook on Development Productivity
ma3tk
0
120
並行処理を学びGuzzleと仲良くなる
shimabox
2
410
IaCにおけるテスト考察 / Tests in IaC
linyows
2
250
iOS 開発で便利なツールたち
mitsuharu
0
150
良いテストコードのために悪いテストコードを理解する - 不安定なテスト編: iOSアプリ開発ユニットテストの場合
yimajo
20
4.6k
visionOSアプリを作るなら今がチャンス!
risksrb
0
100
ドラ🔵もんでDIを学ぶ
tomo1227
0
4.8k
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.8k
The MySQL Ecosystem @ GitHub 2015
samlambert
246
12k
How to train your dragon (web standard)
notwaldorf
78
5.4k
Robots, Beer and Maslow
schacon
PRO
155
8k
Building Better People: How to give real-time feedback that sticks.
wjessup
356
18k
Docker and Python
trallard
36
2.8k
Learning to Love Humans: Emotional Interface Design
aarron
269
39k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
143
43k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
23
2k
Building Your Own Lightsaber
phodgson
101
5.8k
Fireside Chat
paigeccino
24
2.8k
A better future with KSS
kneath
231
17k
Transcript
Java Binding Tips and Tricks 2017
Agenda ▪ ▪ ▪
Java Bindings Libraries in Xamarin.Android Ecosystem Xamarin.Android (Mono.Android.dll) other Java
Libs Framework Libraries (System*) OpenTK other .NET Libs (PCL, netstandard, XA libs) Android Framework & Java Framework Subset
What are Java Bindings? ▪ ▪ ▪
Why use Java Bindings? ▪ ▫ ▪ ▫ ▫
Which are Java Bindings, for example? ▪ ▪ ▪ ▪
github:xamarin/XamarinComponents
Discover Java Android Experience ▪ github:wasabeef/awesome-android-ui ▪ ▪
How Java Bindings work ▪ ▪ JNI ▪ ▪
How Java Bindings work ▪ ▪ ▫ ▫ ▪ ▫
▪ new
Project Structure Tips and Tricks
Java Binding Project: general steps
How Java Bindings are Built .jar api.xml *.cs *.dll *.cs
*.cs GenerateBindings CSCompile Metadata.xml additional *.cs reference *.dll reference *.dll ExportJarToXml javadoc .jar
Migrate to new Class parser (if old) ▪ ▪ ▪
▫ ▪ ▫ ▫ new
Jar/Aar and Build Actions ▪ ▫ ▫
Xamarin.Build.Download package ▪ ▫ ▫ ▪ ▪ ▫ new
▪ Library Dependency Tips b.jar class C2 extends a.C1 {
... } ABinding.dll public class C1 { ... } a.jar api.xml BBinding.dll public class C2 : A.C1 { ...} a.jar class C1 { ... } b.jar
Library Dependency Tips ▪ ▫ ▫ ▪ ▫ ▫
Give meaningful Parameter Names ▪ ▫ ▫ ▪ ▫ new
Importing API Documentation ▪ ▫
Metadata Fixup Tips and Tricks
▪ ▪ ▪ ▪ Build Bindings without Metadata fixup
Metadata fixup: why is it required? ▪ ▫ ▫ ▪
▫ ▫
▪ ▪ ▫ ▫ ▫ ▪ ▪ [Java Bindings Metadata]
Metadata.xml
Find the causes of unexpected results ▪ ▪ ▫
Easiest build fix ▪ ▫ ▪
Individual Metadata fixup Tips ▪ ▪ ▪ ▪ ▪ ▪
▪ ▪ ▪ Troubleshooting Bindings
Namespace / Type Name conflicts
Fix Inconsistent Member Access Java C#
Dealing with Variants and Generics Java C#
Dealing with Variants and Generics Java C#
Dealing with Variants and Generics
Name Collision on EventArgs Java C#
Name Collision on EventArgs
Beautifying Managed API ▪ ▫ ▫ ▫ ▪ ▫ →
▪ ▫ →
Knowing Limitations...
Future Topics
Java8 Default Interface Methods ▪ ▫ ▪ ▫ ▫ ▪
▫
Java8 Default Interface Methods ▪ ▪ ▪
Android Architecture Components ▪ ▫ ▪ ▫ ▫
Android Architecture Components ▪ ▫ ▫ ▪ ▫ ▫
Thanks ▪ ▫ ▫ ▫ ▫ ▫