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.5k
Kotlin Multiplatformで MIDI 1.0/2.0 ライブラリを作っている話
atsushieno
1
550
building_audio_plugin_ecosystem_on_Android.pdf
atsushieno
0
1k
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.2k
MML to MIDI 2.0 to DAW
atsushieno
1
1.9k
Other Decks in Programming
See All in Programming
コード生成を伴うLLMエージェント - 2024.07.18 Tokyo AI
smiyawaki0820
11
4.1k
スクラムマスターって孤独じゃないですか?
yoshitaroyoyo
1
140
APIのない大学ログインWebサービスをWKWebViewとJavaScriptでアプリ化した話
akidon0000
1
330
大規模マルチテナントを解決するYugabyteDBという選択肢
nnaka2992
1
250
iOSアプリでクリップボードにコピーしたことをユーザーに伝えるちょうど良いフィードバックを探す
ski
0
100
CSC307 Lecture 08
javiergs
PRO
0
330
企業向け生成AIアプリの 開発から得られた知見
takaakikakei
0
310
CSC307 Lecture 14
javiergs
PRO
0
220
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
2
81k
유연한 Composable 설계
l2hyunwoo
0
380
MIERUNE BBQにおけるユーザー中心設計()
mierune
PRO
1
110
Introduction of Happy Eyeballs Version 2 (RFC8305) to the Socket library
coe401_
1
220
Featured
See All Featured
Optimizing for Happiness
mojombo
373
69k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
78
15k
10 Git Anti Patterns You Should be Aware of
lemiorhan
652
58k
Bash Introduction
62gerente
607
210k
The Art of Programming - Codeland 2020
erikaheidi
48
13k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
34
1.9k
The Cult of Friendly URLs
andyhume
75
5.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
Bootstrapping a Software Product
garrettdimon
PRO
304
110k
Building Applications with DynamoDB
mza
89
5.8k
Imperfection Machines: The Place of Print at Facebook
scottboms
262
13k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.9k
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 ▪ ▫ ▫ ▫ ▫ ▫