рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдореЛрдиреЛ рдХрд╛ рдореБрдЦреНрдп рджреЛрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ Dalvik рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдЕрд▓рдЧ рд░рдирдЯрд╛рдЗрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ CLR рдХреА рдкреВрд░реНрдг рдкрд╣реБрдБрдЪ рдмрд╣реБрдд рд╣реА рдЖрдХрд░реНрд╖рдХ рд▓рдЧрддреА рд╣реИ, рдПрдХ рд░рдирдЯрд╛рдЗрдо рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдХреЙрд▓рд┐рдВрдЧ рдФрд░ рдорд╛рд░реНрд╢рд▓рд┐рдВрдЧ рдХреЙрд▓ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ рдХреНрдпреЛрдВ рдирд╣реАрдВ IL-code рдореЗрдВ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рд╕рдВрдХрд▓рди рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рддреБрд░рдВрдд Dex-code рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реЛ? рдпрд╣
рдбреЙрдЯ 42 рдкрд░рд┐рдпреЛрдЬрдирд╛
рд╣реИ ред

рдЬрдирд╡рд░реА рдореЗрдВ, 1 рд╕рд╛рд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рдж, рдбреЙрдЯ 42 рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ
рд▓реЗрдЦрдХ рдЖрдЦрд┐рд░рдХрд╛рд░ рд╡рд╛рджреЛрдВ рд╕реЗ рд▓реЗрдХрд░ рдЬрд┐рдВрдЬрд░рдмреНрд░реЗрдб рдХреБрдХреАрдЬрд╝ рддрдХ рдЪрд▓реЗ рдЧрдП ред рдФрд░, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрднреА рднреА рдореБрдХрд╛рдмрд▓рд╛ рдЙрддреНрдкрд╛рдж рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдореЛрдиреЛ рдХреА рд╕реНрдерд┐рддрд┐ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддреА рд╣реИ, рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдиреНрдпреВрдирддрдо рд╣реИред
рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ, рдореИрдВ рдереЛрдбрд╝рд╛ рдЪрд╛рд▓рд╛рдХ рдерд╛, рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдХрд┐ рдбреЙрдЯ 42 рдХрдВрдкрд╛рдЗрд▓рд░ "рдЖрдИрдПрд▓-рдХреЛрдб" рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ IL рдХреЛрдб рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдирдИ рд░рдЬрд┐рд╕реНрдЯрд░ рднрд╛рд╖рд╛ рдореЗрдВ рдпрд╛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, RL рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЖрдИрдПрд▓ рдФрд░ рдЖрд░рдПрд▓ рдХреЗ рдмреАрдЪ рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдИрдПрд▓ рдХреЛрдб
рд╕реНрдЯреИрдХ рдПрдХреНрдЬреАрдХреНрдпреВрд╢рди рдореЙрдбрд▓ (рдЬреИрд╕реЗ
рдЬрд╛рд╡рд╛ рдмрд╛рдЗрдЯрдХреЛрдб ) рдкрд░ рдЪрд▓рддрд╛ рд╣реИ, рдФрд░ рдЖрд░рдПрд▓ рдХреЛрдб рдбрд╛рд▓реНрд╡рд┐рдХ рдХреА рддрд░рд╣
рдкрдВрдЬреАрдХреГрдд рд╣реИ ред RL рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, dot42 рдХрдИ рдЕрдиреБрдХреВрд▓рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрд┐рдо рд╕рдВрдХрд▓рди рдЪрд░рдг рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдЕрдВрддрд┐рдо рдЪрд░рдг рдХреЗ рдмрд╛рдж рд╣реИ рдХрд┐ рдбреЗрдХреНрд╕ рдХреЛрдб, Dalvik рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рднрд╛рд╖рд╛, рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИред RL рдФрд░ Dex рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ рдпрд╣ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдмреНрд▓реЙрдЧ рдкрд░
рдкрд╣рд▓реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдХрд╛рдо рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ, рдореВрд▓ рдбрд┐рдмрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЗрд╕реЗ рдкреАрдбреАрдмреА рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдбреЗрдХреНрд╕ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдбреАрдмрдЧ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред dot42 рдбреАрдмрдЧрд░ рдХреЛ Visual Studio рдореЗрдВ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП adb (Android рдбреАрдмрдЧ рдмреНрд░рд┐рдЬ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рд╕рдВрдХрд▓рди рдХреЗ рдмрд╛рдж, рдПрдВрдбреНрд░реЙрдЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реАрдзреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдВрдХрд▓рдХ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕рдордЭрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, java.lang.Boolean рдирдХреНрд╢реЗ рдХреЛ System.Nullable <bool>ред рд╕рдЪ рд╣реИ, рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЗрд╢рд╛рд░реЛрдВ рдХреЛ рдЕрднреА рднреА
рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ ред рдЪреВрдВрдХрд┐ dot42 рд╕реАрдзреЗ рдбреЗрдХреНрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП C # рдФрд░ .NET рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдХрдИ рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВред рд╢рд╛рдпрдж рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╕реНрдЯрдо рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░ (рд╕рдВрд░рдЪрдирд╛рдУрдВ) рдХреА рдХрдореА рд╣реИред Dalvik рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдореЗрдВ, рдЗрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╕ рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдпрд╣ рд╕рдВрд░рдЪрдирд╛рдУрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
Dot42 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╢реНрди: рдХреМрди рд╕реА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, .NET рдпрд╛ Android? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, System.Collections.Generic.List <T> рдпрд╛ java.util.ArrayList <E>? рдбреЙрдЯ 42 рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ, рдИрд╡рдЖрдЙрдЯ рдкреНрд░рд╛рдВрдЧреНрд╕рдорд╛, рдЬрд╛рд╡рд╛ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рд╡рд░реАрдпрддрд╛ рджреЗрдиреЗ рдХреА
рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИ ред рднрд▓реЗ рд╣реА рд╕реВрдЪреА <T> ArrayList <E> рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдХреНрд╖реНрдо рдРрдб-рдСрди рд╣реИ, рдпрд╣ рдЕрднреА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рд╣реИ рдЬрд┐рд╕реЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
dot42 рдПрдХ
рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реИ (рдкреЗрд╢реЗрд╡рд░ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдХреАрдордд $ 399 рд╣реИ), рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд▓рд╛рдЗрд╕реЗрдВрд╕ рд╣реИ рдЬреЛ рди рдХреЗрд╡рд▓ рдЙрддреНрдкрд╛рдж рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ Google.Play рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╕реНрдЯреЛрд░реЛрдВ рдкрд░ рддреИрдпрд╛рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рднреА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рдЪ рд╣реИ, рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЖрд╡реЗрджрди рдореБрдХреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпрд╛ рд╣рдо рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ?
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
рдкрдВрдЬреАрдХрд░рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ
рдкреНрд░рд▓реЗрдЦрди рд╣реИ , рдЬреЛ рдкрд░рд┐рдЪрд┐рдд рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╣реИред
рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдЖрдк dot42 рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ Samples.zip рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ
рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рднреА рд╣реИ ред
рдореИрдВ рдЕрдкрдиреЗ рдПрдЪрдЯреАрд╕реА рд╡рди рдПрдХреНрд╕ (рдЬреЗрд▓реА рдмреАрди рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рд╕рд╛рде) рдХреЛ
рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗрдВрдЯрд░ рд╕реЗ рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЙрд╕реА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдПрдореБрд▓реЗрдЯрд░ рдмрдирд╛рдпрд╛:
рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреА рддрд░рд╣ рд╣реА рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдореЗрдВ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдЖрдпрд╛:


рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдШреЛрд╖рд┐рдд рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕рдорд░реНрдерди рдЕрднреА рднреА рд▓рдВрдЧрдбрд╝рд╛ рд╣реИред рдбреАрдмрдЧ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдзреЛрдЦрд╛рдзрдбрд╝реА рдХреЗ рдмрд╛рдж рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2012 рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЦреБрдж рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ 2010 рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рд╣реИред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдШрдЯрдирд╛ рд╣реИред
рд╡реИрд╕реЗ, рдПрдХ рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕рдм рдХреБрдЫ рдЙрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджрд┐рдЦрддрд╛ рд╣реИ:

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдмреНрдпрд╛рдЬ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░реВрдВрдЧрд╛ред :)
рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЙрдиреНрд╣реЗрдВ рджреЛрдкрд╣рд░ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВредрдпреБрдкреАрдбреАред
рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рд╕рдВрджреЗрд╢ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, habraeffect рдерд╛ред :-)
рд╣рдорд╛рд░реЗ рд░реВрд╕реА рдЕрдиреБрдпрд╛рдпрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП @ dot42news: http://habrahabr.ru/post/168689/