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
450
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Java Binding Tips and Tricks 2017
monkeyfest.io
Atsushi Eno
September 21, 2017
More Decks by Atsushi Eno
See All by Atsushi Eno
design and implementation of a next-gen. DAW sequencer engine for desktop, mobile and web
atsushieno
1
61
Android and Audio Plugins: State of Union
atsushieno
1
120
Can we build a DAW with Compose Multiplatform? Maybe!
atsushieno
0
36
2026年に相応しい 最先端プラグインホストの設計<del>と実装</del>
atsushieno
0
180
Android Audio: Beyond Winning On It
atsushieno
0
6.5k
Can we build better music software ecosystems for more generative era?
atsushieno
0
830
Some Music Libraries for Kotlin (with some .NET -> Kotlin migration stories)
atsushieno
0
780
Building App Extensions equivalents on Android (maybe?)
atsushieno
1
1k
Taking trends in music app development into the future mobile ecosystem
atsushieno
0
950
Other Decks in Programming
See All in Programming
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
2
900
バグを直したら useEffect が消えた
colorful12
3
780
Flow は今どうなっているか
mizdra
PRO
0
810
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
370
源内ハンズオン概要編
hideg
0
230
まずはプロンプトガイドを読もう、話はそれからだ
kiakiraki
1
250
ソフトウェアラスタライザ
fadis
1
760
コンパウンドプロダクト開発のためのローカルプロセスマネージャー再発明 #layerxgo
izumin5210
0
600
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.4k
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
330
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
280
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
280
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
290
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Code Review Best Practice
trishagee
74
20k
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
So, you think you're a good person
axbom
PRO
2
2.1k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
180
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
320
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
230
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
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 ▪ ▫ ▫ ▫ ▫ ▫