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
420
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
Can we build better music software ecosystems for more generative era?
atsushieno
0
20
Some Music Libraries for Kotlin (with some .NET -> Kotlin migration stories)
atsushieno
0
340
Building App Extensions equivalents on Android (maybe?)
atsushieno
1
550
Taking trends in music app development into the future mobile ecosystem
atsushieno
0
500
DTM entry level hands-on
atsushieno
0
610
[COSCUP2024] Catching up Trends in Audio App Development
atsushieno
0
840
Building Kotlin Multiplatform Libraries in 2024
atsushieno
1
4.2k
Kotlin Multiplatformで MIDI 1.0/2.0 ライブラリを作っている話
atsushieno
1
800
building_audio_plugin_ecosystem_on_Android.pdf
atsushieno
0
1.2k
Other Decks in Programming
See All in Programming
DynamoDBは怖くない!〜テーブル設計の勘所とテスト戦略〜
hyamazaki
1
210
LLMは麻雀を知らなすぎるから俺が教育してやる
po3rin
3
2.2k
Kiroの仕様駆動開発から見えてきたAIコーディングとの正しい付き合い方
clshinji
1
130
[FEConf 2025] 모노레포 절망편, 14개 레포로 부활하기까지 걸린 1년
mmmaxkim
0
900
Amazon Q CLI開発で学んだAIコーディングツールの使い方
licux
3
190
コンテキストエンジニアリング Cursor編
kinopeee
1
680
GUI操作LLMの最新動向: UI-TARSと関連論文紹介
kfujikawa
0
1k
マイコンでもRustのtestがしたい その2/KernelVM Tokyo 18
tnishinaga
2
2.3k
Claude Codeで実装以外の開発フロー、どこまで自動化できるか?失敗と成功
ndadayo
2
740
Introduction to Git & GitHub
latte72
0
120
書き捨てではなく継続開発可能なコードをAIコーディングエージェントで書くために意識していること
shuyakinjo
1
290
AHC051解法紹介
eijirou
0
610
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.6k
Faster Mobile Websites
deanohume
309
31k
Into the Great Unknown - MozCon
thekraken
40
2k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
What's in a price? How to price your products and services
michaelherold
246
12k
Designing Experiences People Love
moore
142
24k
Embracing the Ebb and Flow
colly
87
4.8k
Documentation Writing (for coders)
carmenintech
73
5k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
560
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
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 ▪ ▫ ▫ ▫ ▫ ▫