рдореИрдВ рдПрдХ рд╣реА рд╕рд╛рдЬрд┐рд╢ рдХреЗ рд╕рд╛рде рджреЛ рдХрд╣рд╛рдирд┐рдпрд╛рдВ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдоред
рд╢рд╛рдпрдж рдХреЛрдИ рд╣реИ рдЬреЛ JVM рдХреЛ рдХреНрд░реИрд╢ рдХрд░рддрд╛ рд╣реИ, рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛
1. рдЬрд╛рд╡рд╛ рд╕реЗ JNI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореВрд▓ рдХреЛрдб рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ - рдПрдХ рдзрдорд╛рдХреЗ рдХреЗ рд╕рд╛рде рдЧреБрдЬрд░рддрд╛ рд╣реИ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди (GUI, рд╕реНрд╡рд┐рдВрдЧ) рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдо ddd рдбреАрдмрдЧрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ (рдпрд╣ gdb рдкрд░ рдРрд╕рд╛ рд╢реЗрд▓ рд╣реИ, рдпрджрд┐ рдЬрд╛рд╡рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ :)) - рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рд▓рдВрдмреЗ рд╕реНрдЯреИрдХ рдХреЗ рд╕рд╛рде рдХреНрд░реИрд╢ рд╣реЛрддрд╛ рд╣реИред рд╣рдо рдореВрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓реЗрдЦрдХ рдХреЗ рд╕рд╛рде рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рд╡рд╣рд╛рдВ рдмрдврд╝рд╛рд╡рд╛ рджреЗрддреЗ рд╣реИрдВ (рд╕реА ++ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп) рдПрдХ рдмрдбрд╝реЗ рдЧреНрд▓рд╛рдЗрдмрд┐рди рд╡реГрдХреНрд╖ рдХреЗ рд░реВрдк рдореЗрдВред рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реЛрддреА рд╣реИред
рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЙрдарддрд╛ рд╣реИ (рддреБрд░рдВрдд рдирд╣реАрдВ, рд╡рд┐рд╡рд╛рджреЛрдВ рдФрд░ рдЧреБрдЧрд▓реА рдХреЗ 3 рджрд┐рди) рдХрд┐ рдЬрдм рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрдЯреИрдХ рдмрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛрддрд╛ рд╣реИред JVM: -XX рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдЦреЛрдЬреЗрдВ: ThreadStackSize =
рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!
2. JNA рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореВрд▓ рдХреЛрдб рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ
рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ , рдЬрд╛рд╡рд╛ рдореЗрдВ рдХреЙрд▓рдмреИрдХ рд╣реИрдВред рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рддрд╛ рд╣реИ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ!
рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдБ ddd (рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдбрд┐рдмрдЧ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдбреАрдмрдЧ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ, рдЬрд╛рд╡рд╛ рдореЗрдВ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╕реЗрдЯ рдХрд░реЗрдВ, рдЬрдм рдпрд╣ рдЬрд╛рд╡рд╛ рдкреНрд░реЛрд╕реЗрд╕ рдирдВрдмрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдбреАрдбреАрд╕реА рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рдЗрд╕рдореЗрдВ рдмреНрд░реЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ рд╕реЗрдЯ рдХрд░реЗрдВ, рдирд┐рд╖реНрдкрд╛рджрди рдЬрд╛рд░реА рд░рдЦреЗрдВред ddd, Java рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдЬрд╛рд░реА рд░рдЦреЗрдВ - phew!)
рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЬрд╛рд╡рд╛ рдХреЙрд▓рдмреИрдХ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рдХреИрд╕реЗ! рдореБрдЭреЗ рдкрддрд╛ рдерд╛ рдХрд┐ рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП gc рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдФрд░ рдЙрд╕рдХреА рд╕реЗрд╡рд╛ рдХреЗ рд╡рд░реНрдЧ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рд╣реЗрдЬрдирд╛ рдЕрд╕рдВрднрд╡ рдерд╛!
рдЬрд╛рдВрдЪ рдХрд╛ рдПрдХ рдФрд░ рджрд┐рди рдФрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛:
рд╣рдорд╛рд░реЗ рдХрд╛рд░реАрдЧрд░реЛрдВ рдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдФрд░ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреЙрдиреНрд╕реЗрдкреНрдЯ рдмрдирд╛рдпрд╛ред
рдпрд╛рдиреА
1. "рд╕рд╣реА" рд╕рдВрджрд░реНрдн рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореЗрд░реА рд╕реЗрд╡рд╛ рдХрд╛ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреАрди рдЗрд╕рдореЗрдВ рдкреИрджрд╛ рд╣реБрдЖ рдерд╛, рдЗрд╕рдиреЗ рдХреЙрд▓рдмреИрдХ рджрд░реНрдЬ рдХрд┐рдпрд╛
2. рдПрдХ "рдЕрддрд┐рд░рд┐рдХреНрдд" рд╕рдВрджрд░реНрдн рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореЗрд░реА рд╕реЗрд╡рд╛ рдХрд╛ рдПрдХ рдФрд░ рдмреАрди рдЗрд╕рдореЗрдВ рдкреИрджрд╛ рд╣реБрдЖ рдерд╛ (рдпрд╣ рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрджрд░реНрдн рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░! рджреВрд╕рд░реЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рдФрд░ рд╕рдЪреНрдЪрд╛рдИ рд╣реИ!) рдФрд░ рдЗрд╕рдХреА рдХреЙрд▓рдмреИрдХ рдкрдВрдЬреАрдХреГрдд рдХреА рдЧрдИред
3. рдЬреАрд╕реА рдиреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджрд░реНрдн рдПрдХрддреНрд░ рдХрд┐рдпрд╛, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдореЗрд░реА рд╕реЗрд╡рд╛, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреЙрд▓рдмреИрдХ
4. рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕реЗрд╡рд╛ ("рд╕рд╣реА" рд╡рд╕рдВрдд рд╕рдВрджрд░реНрдн рд╕реЗ) рдХрд╣рд╛, рдЙрд╕рдиреЗ рд╕реА рдХреЛ рдлреЛрди рдХрд┐рдпрд╛, рдЙрд╕рдиреЗ рдХреЙрд▓рдмреИрдХ рдХрд╣рд╛ред рдФрд░ рдпрд╣ рдЙрд╕рд╕реЗ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ "рдЧрд▓рдд" рд╡рд╕рдВрдд рд╕рдВрджрд░реНрдн рд╕реЗ рдореЗрд╣рддрд░ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХрддреНрд░рд┐рдд рдПрдХ рдХреЙрд▓рдмреИрдХ рдерд╛!
5. рдХреНрд░реИрд╢!
рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕рдВрджрд░реНрдн рдирд┐рдХрд╛рд▓реЗрдВ - рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!