Enviar pesquisa
Carregar
Amf3の真実
•
Transferir como PPTX, PDF
•
5 gostaram
•
2,847 visualizações
T
Takeya Waki
Seguir
FxUG北陸での発表資料。 AMFのEncode/Decodeライブラリを作成することで得た、Tipsの共有。
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 19
Baixar agora
Recomendados
超簡単! Bitnami RedmineをWindowsにインストール
超簡単! Bitnami RedmineをWindowsにインストール
Shin Tanigawa
【夜プロ】初心者向けプログラミング講座 第3回
【夜プロ】初心者向けプログラミング講座 第3回
Takayuki Masaki
Working capital
Working capital
Nits Kedia
Microsoft Technical Webinar: Doing more with MS Office, SharePoint and Visual...
Microsoft Technical Webinar: Doing more with MS Office, SharePoint and Visual...
SAP PartnerEdge program for Application Development
2
2
tasanee24
Migrain tamil
Migrain tamil
Vinoth Kannan
Difference between 'wide and broad'
Difference between 'wide and broad'
Sri Prakash Vidya Niketan
Tap lenh co_ban
Tap lenh co_ban
Đinh Công Thiện Taydo University
Recomendados
超簡単! Bitnami RedmineをWindowsにインストール
超簡単! Bitnami RedmineをWindowsにインストール
Shin Tanigawa
【夜プロ】初心者向けプログラミング講座 第3回
【夜プロ】初心者向けプログラミング講座 第3回
Takayuki Masaki
Working capital
Working capital
Nits Kedia
Microsoft Technical Webinar: Doing more with MS Office, SharePoint and Visual...
Microsoft Technical Webinar: Doing more with MS Office, SharePoint and Visual...
SAP PartnerEdge program for Application Development
2
2
tasanee24
Migrain tamil
Migrain tamil
Vinoth Kannan
Difference between 'wide and broad'
Difference between 'wide and broad'
Sri Prakash Vidya Niketan
Tap lenh co_ban
Tap lenh co_ban
Đinh Công Thiện Taydo University
JCLIC
JCLIC
laurittarp
Best Practice Guideline to Managing On-site Vermiculture Technologies
Best Practice Guideline to Managing On-site Vermiculture Technologies
x3G9
Stokvis Tapes
Stokvis Tapes
stokvis
Lean Translation -
Lean Translation -
PhraseApp
Aula 1 a obra de kant como síntese do nascente pensamento burguês
Aula 1 a obra de kant como síntese do nascente pensamento burguês
Leandro Alano
Kedaulatan Rakyat 2 Maret 2014
Kedaulatan Rakyat 2 Maret 2014
hastapurnama
Recovery as a Service Technical Deep Dive
Recovery as a Service Technical Deep Dive
Bluelock
Yellow Slice Design Profile - 2016
Yellow Slice Design Profile - 2016
Yellow Slice
Extending Ajax Events for all mankind
Extending Ajax Events for all mankind
Kyle Simpson
Climb - Property-based dispatch in functional languages [Report]
Climb - Property-based dispatch in functional languages [Report]
Christopher Chedeau
How to create the life you want
How to create the life you want
Self-employed
三百多个桥梁工程专有名词术语解释
三百多个桥梁工程专有名词术语解释
undral13
Visvi
Visvi
dasvis
JavaScript.Next Returns
JavaScript.Next Returns
dynamis
2013 1019osc-fallnetmf
2013 1019osc-fallnetmf
Atomu Hidaka
SORACOM を使いこなすために 「1年のアップデートを一言解説」「サポートのより良い活用方法」 | SORACOM UG Explorer 2019
SORACOM を使いこなすために 「1年のアップデートを一言解説」「サポートのより良い活用方法」 | SORACOM UG Explorer 2019
SORACOM,INC
Secret of Firefox
Secret of Firefox
dynamis
2013 06-22osc nagoya-netmf
2013 06-22osc nagoya-netmf
Atomu Hidaka
JavaScript.Next
JavaScript.Next
dynamis
Snapdragon-SCORER
Snapdragon-SCORER
Satoshi Toriumi
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
Takeshi Fukuhara
MacintoshでSilverlight開発
MacintoshでSilverlight開発
Kentaro Inomata
Mais conteúdo relacionado
Destaque
JCLIC
JCLIC
laurittarp
Best Practice Guideline to Managing On-site Vermiculture Technologies
Best Practice Guideline to Managing On-site Vermiculture Technologies
x3G9
Stokvis Tapes
Stokvis Tapes
stokvis
Lean Translation -
Lean Translation -
PhraseApp
Aula 1 a obra de kant como síntese do nascente pensamento burguês
Aula 1 a obra de kant como síntese do nascente pensamento burguês
Leandro Alano
Kedaulatan Rakyat 2 Maret 2014
Kedaulatan Rakyat 2 Maret 2014
hastapurnama
Recovery as a Service Technical Deep Dive
Recovery as a Service Technical Deep Dive
Bluelock
Yellow Slice Design Profile - 2016
Yellow Slice Design Profile - 2016
Yellow Slice
Extending Ajax Events for all mankind
Extending Ajax Events for all mankind
Kyle Simpson
Climb - Property-based dispatch in functional languages [Report]
Climb - Property-based dispatch in functional languages [Report]
Christopher Chedeau
How to create the life you want
How to create the life you want
Self-employed
三百多个桥梁工程专有名词术语解释
三百多个桥梁工程专有名词术语解释
undral13
Visvi
Visvi
dasvis
Destaque
(13)
JCLIC
JCLIC
Best Practice Guideline to Managing On-site Vermiculture Technologies
Best Practice Guideline to Managing On-site Vermiculture Technologies
Stokvis Tapes
Stokvis Tapes
Lean Translation -
Lean Translation -
Aula 1 a obra de kant como síntese do nascente pensamento burguês
Aula 1 a obra de kant como síntese do nascente pensamento burguês
Kedaulatan Rakyat 2 Maret 2014
Kedaulatan Rakyat 2 Maret 2014
Recovery as a Service Technical Deep Dive
Recovery as a Service Technical Deep Dive
Yellow Slice Design Profile - 2016
Yellow Slice Design Profile - 2016
Extending Ajax Events for all mankind
Extending Ajax Events for all mankind
Climb - Property-based dispatch in functional languages [Report]
Climb - Property-based dispatch in functional languages [Report]
How to create the life you want
How to create the life you want
三百多个桥梁工程专有名词术语解释
三百多个桥梁工程专有名词术语解释
Visvi
Visvi
Semelhante a Amf3の真実
JavaScript.Next Returns
JavaScript.Next Returns
dynamis
2013 1019osc-fallnetmf
2013 1019osc-fallnetmf
Atomu Hidaka
SORACOM を使いこなすために 「1年のアップデートを一言解説」「サポートのより良い活用方法」 | SORACOM UG Explorer 2019
SORACOM を使いこなすために 「1年のアップデートを一言解説」「サポートのより良い活用方法」 | SORACOM UG Explorer 2019
SORACOM,INC
Secret of Firefox
Secret of Firefox
dynamis
2013 06-22osc nagoya-netmf
2013 06-22osc nagoya-netmf
Atomu Hidaka
JavaScript.Next
JavaScript.Next
dynamis
Snapdragon-SCORER
Snapdragon-SCORER
Satoshi Toriumi
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
Takeshi Fukuhara
MacintoshでSilverlight開発
MacintoshでSilverlight開発
Kentaro Inomata
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
Atomu Hidaka
Stagefright入門
Stagefright入門
l_b__
KEONとPEAKが無くてもFirefox OS開発出来る
KEONとPEAKが無くてもFirefox OS開発出来る
android sola
201104016 osc2011 kobe
201104016 osc2011 kobe
Yamauchi isamu
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF
Atomu Hidaka
Cosmomc Install
Cosmomc Install
phillippro
cosmomc install
cosmomc install
phillippro
Cosmomc Install
Cosmomc Install
phillippro
Cosmomc
Cosmomc
phillippro
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
You&I
CaitSith 新しいルールベースのカーネル内アクセス制御
CaitSith 新しいルールベースのカーネル内アクセス制御
Toshiharu Harada, Ph.D
Semelhante a Amf3の真実
(20)
JavaScript.Next Returns
JavaScript.Next Returns
2013 1019osc-fallnetmf
2013 1019osc-fallnetmf
SORACOM を使いこなすために 「1年のアップデートを一言解説」「サポートのより良い活用方法」 | SORACOM UG Explorer 2019
SORACOM を使いこなすために 「1年のアップデートを一言解説」「サポートのより良い活用方法」 | SORACOM UG Explorer 2019
Secret of Firefox
Secret of Firefox
2013 06-22osc nagoya-netmf
2013 06-22osc nagoya-netmf
JavaScript.Next
JavaScript.Next
Snapdragon-SCORER
Snapdragon-SCORER
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
MacintoshでSilverlight開発
MacintoshでSilverlight開発
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
Stagefright入門
Stagefright入門
KEONとPEAKが無くてもFirefox OS開発出来る
KEONとPEAKが無くてもFirefox OS開発出来る
201104016 osc2011 kobe
201104016 osc2011 kobe
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF
Cosmomc Install
Cosmomc Install
cosmomc install
cosmomc install
Cosmomc Install
Cosmomc Install
Cosmomc
Cosmomc
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
CaitSith 新しいルールベースのカーネル内アクセス制御
CaitSith 新しいルールベースのカーネル内アクセス制御
Amf3の真実
1.
AMF3の真実 The knowledge
of AMF implementation. Presented by wacky FxUG in Toyama#3 2011.4.16 http://amf48.develop.jp/
2.
最近AMF3のEncode/Decodeを実装してみました。 http://amf48.develop.jp/で公開しています そこで得た知識を共有したいと思います!
30分後には… AMFの基本構造が分かっている AMFの得手不得手が分かっている BlazeDSの弱点も分かっている はじめに
3.
Action Message Formatの略、データ形式の一種。
仕様はAdobeから公開されている。 ActionScript3(Flex2以降)の型に対応している。 Flash Player 9から使用可能。 AMF3仕様: http://opensource.adobe.com/wiki/display/blazeds/Developer+Documentation http://opensource.adobe.com/wiki/download/attachments/1114283/JP_amf3_spec_121207.pdf http://opensource.adobe.com/wiki/download/attachments/1114283/amf3_spec_05_05_08.pdf What is AMF3?
4.
AMF3の立ち位置
5.
AMF3バイト配列を読む! (文字列) 06
07 41 42 43 Marker (string) 00000111 ABC(UTF-8) 0000011x 3バイト xxxxxxx1 参照ではない
6.
09 05 01
06 07 41 42 43 06 00 AMF3バイト配列を読む! (配列) 00000000 Marker (string) 00000101 00000001 Marker (array) 0000010x 2要素 xxxxxxx1 参照ではない xxxxxxx0 参照 0000000x 0番目 空文字列(疎データ無)
7.
AMF3の内部データ形式
8.
AMF3では、3種類の参照情報を管理している。 文字列 オブジェクト(Object,
Array, Date, XML, ByteArray) Traits情報(オブジェクトの型情報) プロパティー名リストのようなもの 既出の文字列は、2~5バイトで送信可能。 既出のオブジェクトも、 2~5バイトで送信可能。 ただし、同一インスタンスの場合のみ 既出のTraits情報も、2~5バイトで送信可能。 参照テーブル
9.
AMF3データ構成編 ~終了~
10.
整数(int)は可変バイトでEncodeされる。 整数 (int)のEncodeサイズ
※SizeはMarkerに必要な1 byteを含む。 ※int領域全体での平均サイズは、実は約8.5 byte… ※Vector内のintは固定バイト(4 byte)となる。
11.
整数(long)は固定でMarker + 8バイトにEncode
ただし、形式はdouble形式。 つまり、桁落ちします… longの範囲(64bit) -9223372036854775808~9223372036854775807 正しくEncode->Decodeできる範囲(53bit) -9007199254740992~9007199254740992 整数 (long)のEncodeサイズ ※元々、Flex上では表現できない数字だけど…
12.
サンプルデータ(異なる値) オブジェクトのEncodeサイズ(1) //
Sample: Dynamic値 var target:Array = []; for (var k:int = 0; k < 1000; k++) { target.push({ index: k, message: "Message" + k }); } // Sample: Sealed値 var target:Array = []; for (var k:int = 0; k < 1000; k++) { target.push(new Bean(k, "Message" + k)); }
13.
サンプルデータ(同じ値、別インスタンス) オブジェクトのEncodeサイズ(2) //
Sample: Dynamic値 var target:Array = []; for (var k:int = 0; k < 1000; k++) { target.push({ index: 999, message: "Message999" }); } // Sample: Sealed値 var target:Array = []; for (var k:int = 0; k < 1000; k++) { target.push(new Bean(999, "Message999")); }
14.
サンプルデータ(同一インスタンス) オブジェクトのEncodeサイズ(3) //
Sample: Dynamic値 var target:Array = []; var item:Object = { index: 999, message: "Message999" }; for (var k:int = 0; k < 1000; k++) { target.push(item); } // Sample: Sealed値 var target:Array = []; var item:Bean = new Bean(999, "Message999"); for (var k:int = 0; k < 1000; k++) { target.push(item); }
15.
オブジェクトのEncodeサイズ(4)
16.
AMF3は圧縮形式なの? 同一データを重複送信しないだけ。圧縮すると減る。
17.
実は、AMF3の仕様書に載っていない 新しいデータタイプが存在… Flash Player
10を使用すると発生… 新データタイプ
18.
Java5対応されていない Enum: 文字列にエンコード。デコードは未対応。
Generics: 無視される。※List<Integer>とか厳しい… Unicodeのサロゲートペア未対応 Encode: サロゲートペア1文字が、6バイト(UTF-8)にEncodeされてしまう。※正しくは4バイト Decode: Flash Player10でEncodeしたサロゲートペアをDecodeすると例外が発生。 Flash Player10未対応 Vectorを扱えない。 Dictionaryを扱えない。 BlazeDSが微妙な件… ※BlazeDS-4.0.0.14931で確認
19.
お疲れさまぁ~ m(__)m
Baixar agora