рдПрдВрдбреНрд░реЙрдЗрдб рдУрдПрд╕ рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдФрд░ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде, рдЗрд╕рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╡рд┐рд╡рд┐рдзрддрд╛ рд▓рдЧрд╛рддрд╛рд░ рдмрдврд╝ рд░рд╣реА рд╣реИред рд╡рд╛рд╕реНрддреБрдХрд▓рд╛, рдЙрджреНрджреЗрд╢реНрдп рдФрд░ рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рдЕрдВрддрд░ рдХреЗ рдХрд╛рд░рдг, рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛрдб рдХреА рдЧрддрд┐ рдФрд░ рд╕реНрдерд┐рд░рддрд╛ рдХрд╛рдлреА рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рдУрдПрд╕ рдХреА рд╕реНрдерд┐рд░рддрд╛ рдФрд░ рдЕрдиреБрдХреВрд▓рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛, рдордВрдЪ, рдпрд╛ рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рд╕реЗ рдкреЛрд░реНрдЯ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдХреЛрдб рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдпрд╣ рд▓реЗрдЦ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдореВрд▓-рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдореБрдЦ рдмрд┐рдВрджреБрдУрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдЧрд╛ред рд╕рднреА рдЬреЛ рдЗрд╕ рдореИрдиреБрдЕрд▓ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдореИрдВ рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реВрдВред

2007 рдореЗрдВ, Google Corporation рдиреЗ рдПрдХ рдирдИ рдкреАрдврд╝реА рдХрд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо -
Android рдЬрд╛рд░реА рдХрд┐рдпрд╛ред

рдЗрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдиреЗ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмрд╛рдЬрд╛рд░ рдореЗрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреНрд░рд╛рдВрддрд┐ рд▓рд╛ рджреА, рдЬрд┐рд╕рд╕реЗ Microsoft рд╡рд┐рдзрд╡рд╛рдУрдВ рдореЛрдмрд╛рдЗрд▓, Apple iOS рдФрд░ рд╕рд┐рдореНрдмрд┐рдпрди OS рдХреЗ рдЖрдзрд┐рдкрддреНрдп рдХреЛ рджрдмрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛, рдФрд░ рдмрд╛рдж рдореЗрдВ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдореЛрдмрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдФрд░ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдмрди рдЧрдпрд╛ред рдЕрдм рддрдХ, рд╕рд┐рд╕реНрдЯрдо рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛
рдЬрд╛рд░реА рд╣реИ ред рдкрд┐рдЫрд▓реЗ рдЫрд╣ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рдПрдВрдбреНрд░реЙрдЗрдб рдмрд╣реБрдд рдмрдврд╝ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╕рдорд░реНрдерд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реАрдорд╛ рдмрдврд╝ рд░рд╣реА рд╣реИред рдЕрдм рдЗрд╕ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХреЗрд╡рд▓ рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЯреИрдмрд▓реЗрдЯ, рдЯреАрд╡реА, рдкреНрд▓реЗрдпрд░, рдХреИрдорд░рд╛, рд▓реИрдкрдЯреЙрдк, рдиреЗрдЯреЙрдкреНрд╕ рдФрд░ рд╕реИрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рд╕рд╣рд┐рдд рдЕрдиреНрдп рд╡рд┐рджреЗрд╢реА рдЪреАрдЬреЛрдВ рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рднрд░рдиреЗ рдореЗрдВ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдХрд╛рдлреА рднрд┐рдиреНрдирддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ: рдкрд┐рдЫрд▓реЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рдПрдЖрд░рдПрдо рд╕реЗ рдПрдордЖрдЗрдкреА рдФрд░ рдПрдХреНрд╕ 86 рддрдХ рд╕рдорд░реНрдерд┐рдд рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреА рд╕реВрдЪреА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реБрдЖ рд╣реИ, рд╡рд┐рднрд┐рдиреНрди рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ, рдмрд┐рдирд╛ рдЕрд╕рдлрд▓рддрд╛ рдХреЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреАрдЖрдИ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред
рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдЗрддрдиреА рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛, рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдФрд░ рд╡рд╛рд╕реНрддреБ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдПрдХ рд╣реА рдкреНрд░рдгрд╛рд▓реА, рдорд╛рдЗрдирд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рдирд┐рд░реНрднрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рдХрд╛рдлреА рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реИ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдХреНрд╕рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрддреА рд╣реИрдВ, рдЕрдХреНрд╕рд░ рд╡рд┐рдХреНрд░реЗрддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднреА, рдЪреВрдВрдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдХреЗрд╡рд▓ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдмрдврд╝рддреЗ рдмрд╛рдЬрд╛рд░ рдореЗрдВ рднрдпрдВрдХрд░ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХреЗ рдЪреЗрд╣рд░реЗ рдкрд░ рдмрдврд╝рддреА рд╣реИрдВред

рдлрд┐рд░ рднреА, рдПрдХреАрдХрд░рдг рдФрд░ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдСрдкрд░реЗрд╢рди рдХреА рдЧрддрд┐ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдХреЗ рд╡рд░реНрддрдорд╛рди рдмрд╛рдЬрд╛рд░ рдХреЗ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓реЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдпрд╣, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдмрдврд╝реА рд╣реБрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХрд╛ рдорддрд▓рдм рд╣реИ, рд╡рд┐рднрд┐рдиреНрди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░реЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдПрдВрдбреНрд░реЙрдЗрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реИрдВред

рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдФрд░ рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡реА рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ, рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдЗрд╕рдХреЗ рдШрдЯрдХреЛрдВ рдХрд╛ рдореВрд▓, рджреЗрд╢реА рд╕реНрддрд░ рдкрд░ рдЕрдиреБрдХреВрд▓рди рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЕрдиреБрдХреВрд▓рд┐рдд рдФрд░ рдЕрдХреНрд╕рд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдирд┐рд░реНрднрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдХреЛрдб рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ, рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рдЕрд░реНрдереЛрдВ рдореЗрдВ, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬреЛ рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдЖрдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдг, рдПрдкреАрдЖрдИ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо, рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕реНрдерд┐рд░ рдФрд░ рддреЗрдЬрд╝ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдлрд┐рд░ рднреА, рдПрдВрдбреНрд░реЙрдЗрдб рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рдореЗрдВ рд╕реЗ рдПрдХ рдЕрднреА рднреА рдПрдВрдбреНрд░реЙрдЗрдб рдПрдирдбреАрдХреЗ -
рдПрдВрдбреНрд░реЙрдЗрдб рдиреЗрдЯрд┐рд╡ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХрд┐рдЯ рд╣реИ , рдЬрд┐рд╕рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдФрд░ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд▓рдЧрднрдЧ рд╕рднреА рдЪреАрдЬреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб рджреЗрд╢реА рдХреЛрдб рдФрд░ рдЯреЗрд╕реНрдЯ рдСрдЯреЛрдореЗрд╢рди рдХреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
DejaGnu рдЬреИрд╕реЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛
рд╣реВрдВ ред
Android рдмрд╣реБрдд рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЕрдм DejaGnu рдкрд░реАрдХреНрд╖рдг рдХреА рдПрдХ рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ - рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдФрд░ рдмрд┐рдирд╛ Android NDKред рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдордирд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдиреБрдХрд╕рд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдХрд╣рд╛рдиреА рд╣реЛрдЧреАред
рдПрдХ рдЫреЛрдЯреА рд╕реА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рдПрдВрдбреНрд░реЙрдЗрдб, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдПрдХ рдпреВрдирд┐рдХреНрд╕ рдЬреИрд╕рд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╣реИ, рдЬреЛ рдирд┐рдпрдорд┐рдд рд▓рд┐рдирдХреНрд╕ рдпрд╛ рдмреАрдПрд╕рдбреА рдХреЗ рд╕рдорд╛рди рд╣реИ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрд░реЛрдд рдХреЛрдб рдПрдХ рд▓рд╛рдЗрд╕реЗрдВрд╕, рдПрдПрд╕рдПрд▓ 2.0 рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИред рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдореЙрдбреНрдпреВрд▓ рдмреАрдПрд╕рдбреА рд╕реЗ рд▓рд┐рдирдХреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рд╣рдж рддрдХ рд╕реНрд╡рд┐рдЪ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдлрд┐рд░ рднреА, рд╕рдм рдХреБрдЫ рдЬреЛ рдореВрд▓ рдХреЛрдб рдФрд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирд╛ рд╣реИ, рддреЛ рдмрд╣реБрдд рдХрд░реАрдм рд╣реИ рдФрд░ рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд▓рд┐рдирдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рдереЗред рдЗрд╕рд▓рд┐рдП, рдХреЛрдб рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдФрд░ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпреВрдирд┐рдХреНрд╕ рдЬреИрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рдпрд╛ рд╕рдорд╛рди рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рдВрднрд╡ рд╣реИред рд╕рдВрдХрд▓рдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреЗ gcc, clang (llvm), icc рдФрд░ рдЕрдиреНрдп рд╣реИрдВред рдкреВрд░реЗ рдЬреАрд╕реАрд╕реА рдЯреВрд▓рдЪреИрди рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдпрд╣реА рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдпрд╛ рддреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреЛрд░реНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ рдпрд╛ рдкреЛрд░реНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред
рдЖрд╡реЗрджрди рдореЗрдВ рдореВрд▓ рдХреЛрдб рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдпрд╛ рджреЗрд╢реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдореВрд▓ рдХрд╛рд░рдг, рдореВрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╛рдЗрд▓реЗрдВ рд▓рд┐рдирдХреНрд╕ / рдпреВрдирд┐рдХреНрд╕ рдЬреИрд╕реА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рд╕реЗ рдкреВрд░реНрд╡ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП C / C ++ / ASM рдХреЛрдб рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рдиреЗ рдпрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╣реИред
рджреЗрд╢реА рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдн :
тАв рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди
тАв рд╕реАрдкреАрдпреВ / рдПрдЪрдбрдмреНрд▓реНрдпреВ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рдЙрдкрдпреЛрдЧ
тАв рдореМрдЬреВрджрд╛ рд▓рд┐рдирдХреНрд╕ рдХреЛрдб рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
рджреЗрд╢реА рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдиреБрдХрд╕рд╛рди :
тАв рд╕реАрдкреАрдпреВ / рдПрдЪрдбрдмреНрд▓реНрдпреВ рдХреЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реЗрдЯрд┐рдВрдЧ
тАв рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд╛ рдЕрднрд╛рд╡
рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖реЛрдВ рдХреЛ рдХрдареЛрд░ рдкрд░реАрдХреНрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рджреЛрдиреЛрдВ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛, рд╕реНрдерд┐рд░рддрд╛ рдФрд░ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рджрд╕рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рд╣реИ, рд╡рд┐рднрд┐рдиреНрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореВрд▓ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЖрд╡реЗрджрди рддрдерд╛рдХрдерд┐рдд рд╡рд╕рд╛ рдмрд╛рдЗрдирд░реА (рдПрдкреАрдХреЗ) рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдореВрд▓ рдХреЛрдб / рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЬрд┐рд╕рдХреЗ рддрд╣рдд рдЖрд╡реЗрджрди рдХрд╛рдо рдХрд░реЗрдЧрд╛)ред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐, рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, NDK рд╕рдВрдХрд▓рдХ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдиреНрдпрд╛рд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕рдорддреБрд▓реНрдп рдХреЛрдб рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╡рд╕рд╛ рдмрд╛рдЗрдирд░реА (рдпрд╛ рдХрд┐рд╕реА рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА) рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдпрд╣, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдореЗрд╢рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рддреНрдпрд╛рдкрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрдм рдпрд╣ рдЕрдиреБрдХреВрд▓рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рдпреЙрди рдФрд░ рдПрд╕рдПрд╕рдИ) рдФрд░ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдВрдбреНрд░реЙрдЗрдб рдУрдПрд╕ рдФрд░ рдЙрд╕рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде, рдУрдПрд╕ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдг, рдЗрд╕ рдУрдПрд╕ рдХреА рдбрд┐рд▓реАрд╡рд░реА, рд╕рд╛рде рд╣реА рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ, рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рджреЗрд╢реА рдХреЛрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рдВрдХрд▓рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИред рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдиреНрдпрд╛рд╕реЛрдВ рдкрд░ рдЗрд╕ рдХреЛрдб рдХреЗ рдкреНрд░рджрд░реНрд╢рди, рд╢реБрджреНрдзрддрд╛ рдФрд░ рд╕реНрдерд┐рд░рддрд╛ рдХрд╛ рдЖрдХрд▓рди рдХрд░рдирд╛ рдкрд░реАрдХреНрд╖рдХ рдХрд╛ рдХрд╛рд░реНрдп рд╣реИ, рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдиреЗрдЯрд┐рд╡ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд▓рдЧрд╛ рд╣реБрдЖ рд╣реИред
рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рджреЗрд╢реА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ, рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдПрдХ рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓ (рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА) рдЗрдХрдЯреНрдард╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрдЬрдмрд╛рди (рд▓рд┐рдирдХреНрд╕, рдореИрдХрдУрдПрд╕, рд╡рд┐рдВрдбреЛрдЬ) рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдПрдХ Android рдбрд┐рд╡рд╛рдЗрд╕ (рднреМрддрд┐рдХ рдпрд╛ рдПрдореБрд▓реЗрдЯрд░) рдкрд░ред рдЗрд╕рд▓рд┐рдП, рд╣реЛрд╕реНрдЯ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХрд╛ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рд╛рдзрди рдПрдбреАрдмреА рд╣реИ - рдПрдВрдбреНрд░реЙрдЗрдб рдбреАрдмрдЧ рдмреНрд░рд┐рдЬ, рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯреВрд▓рдЪрд┐рди рдФрд░ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣ рднреА, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ (c ++ рдХреЗ рд▓рд┐рдП), рддреЛ stdc ++ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬреЛ рд╣рдореЗрдВ рд░реБрдЪрд┐рдХрд░ рдмрдирд╛рддрд╛ рд╣реИред
Android рджреЗрд╢реА рдЕрд╕реЗрдВрдмрд▓реА рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ:
- рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП API рд╕рдВрд╕реНрдХрд░рдг:
- рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП libstdc ++ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг:
- рдЙрдкрдХрд░рдг рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ (рд▓рдХреНрд╖реНрдп):
- рдереЛрдбрд╝реА рдЧрд╣рд░рд╛рдИ (32, 64 рдпрд╛ x32) рд▓рдХреНрд╖реНрдп:
- рдореЗрдЬрдмрд╛рди рдФрд░ рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ:
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдбреЗрд╡рд▓рдкрд░ рдФрд░ рдкрд░реАрдХреНрд╖рдХ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдмрд┐рд▓реНрдб рд╣реЛрд╕реНрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкрд░рд┐рдгрд╛рдореА рдХреЛрдб рдХреЗ рдмреАрдЪ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╕рддреНрдпрд╛рдкрди рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдмрд┐рд▓реНрдб рд╣реЛрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЦрддрд░рдирд╛рдХ рд░реВрдк рд╕реЗ рдмрдврд╝ рд░рд╣реА рд╣реИ, рдФрд░ рдпрд╣ рд╕реАрдкреАрдпреВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ: рдирд┐рдпреЙрди, рдХреЛрд░-рдПрд╡реАрдПрдХреНрд╕ 2, рдХреЛрд░-рдЖрдИ 7, рдкрд░рдорд╛рдгреБ, рдПрд╕рдПрд▓рдПрдо; рдЖрдХрд╛рд░ рд╕реЗ \ рдЧрддрд┐ рдФрд░ рдЕрдиреНрдпред рдкреНрд░рд╛рдкреНрдд рдХреЛрдб (рд╕реНрд░реЛрдд рдФрд░ рдмрд╛рдЗрдирд░реА) рдХреЗ рд╡реЗрд░рд┐рдПрдВрдЯ рдХрд╛ рдпрд╣ рд╕рднреА рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рдЙрддреНрдкрд╛рдж рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рд╣реИред рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдбрд┐рд╡рд╛рдЗрд╕ рдпрд╛ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рдХреБрдЫ рдХрд╕реНрдЯрдо рдЕрд╕реЗрдВрдмрд▓реА рд╣реИ, рддреЛ, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдореБрдЦреНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдмрд╛рдпреЛрдирд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реЛрдЧрд╛ - рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП libc рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧред
рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрднреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рдореИрдиреБрдЕрд▓ рдЕрд╕реЗрдВрдмрд▓реА рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг
рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдг рдПрдВрдбреНрд░реЙрдЗрдб NDK рдХреЗ рд╕рд╛рде рджрд┐рдП рдЧрдП рд╣реИрдВ, рдЬреЛ рдХрд┐ рд▓рд┐рдирдХреНрд╕, рдореИрдХрдУрдПрд╕, рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП 32 рдФрд░ 64 рдмрд┐рдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ рдФрд░ рдЪрд▓рд╛рдПрдВ
рдЬреАрд╕реАрд╕реА
bash-4.2$
рдЬреА ++
bash-4.2$
рдпрджрд┐ рд╣реЛрд╕реНрдЯ рдФрд░ рд▓рдХреНрд╖реНрдп рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ (рдЖрдорддреМрд░ рдкрд░ x86) рдФрд░ рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рддреЛ рд╣реЛрд╕реНрдЯ рдкрд░ рдПрдВрдбреНрд░реЙрдЗрдб x86 рдмрд╛рдпрдиреЗрд░реА рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╕рдордп рдПрдХ рдореБрд╢реНрдХрд┐рд▓ рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо (/ рд╕рд┐рд╕реНрдЯрдо / рдмрд┐рди / рд▓рд┐рдВрдХрд░) рдкрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдЧрддрд┐рд╢реАрд▓ рд▓рд┐рдВрдХрд░ рдХрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╕рд╛рде рд╣реА рд░рд╛рд╕реНрддреЛрдВ рдореЗрдВ рдмрд╛рдпреЛрдирд┐рдХ рдХреЗ рдЧреИрд░-рдкрдЯреНрдЯреА рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (LD_LIBRARY_PATH)ред Makefile рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ: ( https://android.googlesource.com/platform/bionic/+/master/tests/Android.mk : рдмрд╛рдпреЛрдирд┐рдХ-рдпреВрдирд┐рдЯ-рдЯреЗрд╕реНрдЯ-рд░рди-рдСрди-рд╣реЛрд╕реНрдЯ)ред
рдЗрд╕ рддрд░рд╣ рдХреА рдЪрд╛рд▓, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рдмрд┐рдирд╛ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ (64-рдмрд┐рдЯ рдЫрд╡рд┐ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рдпрд╛ -mx32 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред
GCOV рдФрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓
bash-4.2$
рдбреАрдмрдЧ \ рдбрд┐рдмрдЧрд┐рдВрдЧ: GDB / logcat
bash-4.2$
рдкрд░реАрдХреНрд╖рдг рд╕реНрд╡рдЪрд╛рд▓рди
рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк dejagnu рдЬреИрд╕реЗ рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд░рд╡рд░реА 2013 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ, DejaGnu рдореЗрдВ androideabi рдмреЛрд░реНрдб рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ рдХрд┐ adb рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдореВрд▓ рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдм рдХреБрдЫ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреЗ рд╕рдорд╛рди рд╣реИ, рдХреБрдЫ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рдеред
рдХрдИ dejagnu рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдореЗрдЬрдмрд╛рди / рд▓рдХреНрд╖реНрдп рдЯреНрд░рд┐рдкрд▓ рдЬрд╛рдБрдЪ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдо рд╕реЗ рдХрдо рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕реА рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдпрд╣ рдЕрдХреНрд╕рд░ рд╣реЛрд╕реНрдЯ = рд▓рдХреНрд╖реНрдп = рдмрд┐рд▓реНрдб (рдореВрд▓) рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдо рддреМрд░ рдкрд░ рдмреЛрд▓рдирд╛, build_triplet , target_triplet рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рд╣рдо Android рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдХреНрд╖рдо рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдЗрд╕ рддрдереНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ NDK тАУfpic рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдФрд░ рдЙрдирдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ (рдкреНрд░рднрд╛рд╡реА-рд▓рдХреНрд╖реНрдп pic / nonpic check) рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕реНрдереИрддрд┐рдХ рд▓рд┐рдВрдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐, рд╢рд╛рдпрдж, рд╕рдм рдХреБрдЫ рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЛ рднреА рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ (рд╕реНрдерд┐рд░, рдЧрддрд┐рд╢реАрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЖрдкрд╕ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЛрдб ( -fpic / -fpie ) рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдпрд╛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛; рдФрд░ рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдПрдХ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рджреМрд░рд╛рди, рд▓реЙрдиреНрдЪ рдЕрдзрд┐рдХрд╛рд░ рд░реАрд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдлрд╝реЛрд▓реНрдбрд░ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдпрд╛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рдХрд╛рд░рдг) ), рддреЛ рдпрд╣ рднреА рд╕рдордЭрд╛рдиреЗ рд▓рд╛рдпрдХ рд╣реИ sya рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрд┐рдЯ рд╕реЗрдЯ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдВрдЧрдарди рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдЧреИрд░ рдПрд╕рдбреА рдХрд╛рд░реНрдб рдФрд░ рд╕рд╣реА рдЕрдиреБрдорддрд┐ рдХреЗ рд╕рд╛рде рд░рд╛рдо-рдбрд┐рд╕реНрдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдкрд╣рд▓реЗ рдХрд╛ рддреЗрдЬреА рд╕реЗ рдкрд╣рдирдиреЗ рд╕реЗ рдмрдЪрдирд╛ рд╣реИред
рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдореЗрдЬрдмрд╛рди рдкрд░ рд╕реНрдерд╛рдкрд┐рдд dejagnu рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:
runtest тАУtarget_board = androideabi
рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рдХреЗ рдЕрдиреБрд░реВрдк ADB_SERIAL рдЪрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реНрдерд╛рдиреАрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ - site.exp рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд╕реБрдЦрдж рд╣реИ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, gcc testuite рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓:
set rootme тАЬ.тАЭ set tmpdir тАЬ.тАЭ set srcdir тАЬ/path/to/gcc_%version%_release/gcc/testsuiteтАЭ set CFLAGS тАЬтАЭ set CXXFLAGS тАЬтАЭ set GDB тАЬ/path/to/GDB_UNDER_TESTтАЭ set GCOV_UNDER_TEST тАЬ/path/to/GCOV_UNDER_TESTтАЭ set GCC_UNDER_TEST тАЬ/path/to/GCC_UNDER_TESTтАЭ set GXX_UNDER_TEST тАЬ/path/to/GXX_UNDER_TESTтАЭ set GFORTRAN_UNDER_TEST тАЬnoтАЭ set OBJC_UNDER_TEST тАЬnoтАЭ set libiconv тАЬтАЭ set HOSTCC тАЬgccтАЭ set HOSTCFLAGS тАЬтАЭ set TESTING_IN_BUILD_TREE 1 set GMPINC тАЬтАЭ set ENABLE_LTO 1 set HAVE_LIBSTDCXX_V3 1 set host_triplet i686-pc-linux-gnu set build_triplet i686-pc-linux-gnu set target_triplet i686-pc-linux-android-gnu set target_alias i686-pc-linux-android set android_tmp_dir тАЬ/temporary/folder/on/device/with/executable/permissionsтАЭ set bridge_tmp_dir тАЬ/temporary/folder/on/device/with/executable/permissionsтАЭ append boards_dir тАЬ/path/to/share/dejagnu/baseboardsтАЭ
рдФрд░ рд╕рдорд╛рди gcc рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП:
export ADB_SERIAL=$ANDROID_SERIAL make -j $parallel check DEJAGNU=/path/to/site.exp RUNTESTFLAGS=тАЭтАУtarget_board=androideabiтАЭ
рдиреЛрдЯ: рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ gcc_exec_Prefix рд╡реИрд░рд┐рдПрдмрд▓ рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ gcc рдЪреЗрдХ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рджреМрд░рд╛рди рдбрд┐рд▓реАрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдФрд░ рдпрд╣ рдХрд┐ рдпрд╣ unset рд╣реИред
рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рди рдХреЗрд╡рд▓ рд╕рдВрдХрд▓рдХ рдХреЗ рд▓рд┐рдП рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдмрд▓реНрдХрд┐ рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╣рдордиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдКрдкрд░ рдХрд┐рдП рдереЗ, рдЕрд░реНрдерд╛рддреН:
- sysroot
- рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкрде
- рдЭрдВрдбреЗ рдФрд░ рдкреНрд▓рдЧрдЗрдиреНрд╕ (рдХрдо рд╕реЗ рдХрдо libstdc ++ рд╢рд╛рд╕рдХ рдХреЗ рд▓рд┐рдП)
рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЯреВрд▓рдЪреИрди (рдЖрд╡рд░рдг-рдмрд╛рдЗрдирд░реАрдирд╛рдо) рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реИрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:
рдЖрд╡рд░рдг-рдЬреАрд╕реАрд╕реА
рдЖрд╡рд░рдг-рдЬреА ++
рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдЕрдЧрд░ рдЖрдкрдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реЗ рдХреБрдЫ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рд░рд┐рдореЛрдЯ_рдЕрдкрд▓реЛрдб рдлрд╝рдВрдХреНрд╢рди ( adb_upload% target_board %% source %% dest% ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ testuite рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ, рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг
рдкреНрд░реЛрдлрд╛рдЗрд▓ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдкрд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЖрдо рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ:
- рдкрд░реНрдлрд╝
- oprofile
- рд╕рд┐рддрдореНрдмрд░
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреИрдЯрд┐рдХ рдкрд░реНрдлреЗрдХреНрдЯ рдЕрд╕реЗрдВрдмрд▓реА рд╣реЛрдирд╛, рдпрд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:
adb push perf /data/local/ adb shell cd /data/local chmod 777 perf perf record ./coremark.exe 0├Ч0 0├Ч0 0├Ч66 0 7 1 2000
рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рди рдХреЗрд╡рд▓ Dalvik рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреА рдорджрдж рд╕реЗ рд╕рдВрднрд╡ рд╣реИ, рдмрд▓реНрдХрд┐ рджреЗрд╢реА рд╕реНрддрд░ рдкрд░ рднреА, рдЕрд░реНрдерд╛рддреНред рд╕рдорд╛рди Android NDK рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ: рдХрд▓реНрдкрдирд╛ , EEMBC , CoreMark ред



рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯрд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреВрдВрдЧрд╛ (рд╡реЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ), рд▓реЗрдХрд┐рди рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЙрдкрдХрд░рдгреЛрдВ рдпрд╛ рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдбреАрдмреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╕рдм рдХреБрдЫ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдзреНрдпрд╛рди рджреЗрдирд╛ред рдЙрдкрдХрд░рдгреЛрдВред
рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдЗрд╕рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛ:
- рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЛрдб
- рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ
- рд╕реНрд╡рдЪреНрдЫ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк, рдФрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдВ (рдЬрд┐рдиреНрд╣реЗрдВ рд▓реЙрдЧрдХреИрдЯ / рдбреАрдордПрд╕рдЬреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)
рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкрд░рд┐рдгрд╛рдо рдХреЗрд╡рд▓ рдирд┐рд░реНрдзрд╛рд░рдХ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдпрджрд┐ рдпрд╣ рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреА рдПрдХ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╕рд╡рд╛рд▓ рдирд╣реАрдВ рд╣реИ)ред рдЗрд╕рд▓рд┐рдП, рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐:
- рдЕрдХреНрд╖рдо рд╕рднреА рдорд╛рдзреНрдпрдорд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ
- рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
- рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд╣рд╛рд░реНрдб-рд╕реЗрдЯ рдСрдкрд░реЗрд╢рди рдореЛрдб рд╣реИ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реАрдкреАрдпреВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрднреНрдпрд╛рд╕ рд╕рднреА рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдФрд░ рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╣реА рдореВрд▓реНрдп рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдирд╛ рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рд╕рднреА рдХреЛрд░ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ, рдХреЗрд╡рд▓ рдЙрд╕ рдкрд░ рдЫреЛрдбрд╝рдХрд░, рдЬрд┐рд╕ рдкрд░ рдкрд░реАрдХреНрд╖рдг рд╣реЛ рд░рд╣рд╛ рд╣реИред
adb shell echo userspace > /sys/devices/system/cpu/cpuX/cpufreq/scaling_governor echo 2000000 > /sys/devices/system/cpu/cpuX/cpufreq/scaling_max_freq echo 2000000 > /sys/devices/system/cpu/cpuX/cpufreq/scaling_min_freq
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдореВрд▓реНрдп
рдмреЗрдВрдЪрдорд╛рд░реНрдХ \ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдФрд░ \ рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ / sys / devices / system / cpu / cpuX / cpufreq / рдСрдирд▓рд╛рдЗрди рднреА рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред
рдХреЗрд╡рд▓ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдмрд┐рд▓реНрд▓реА / proc / cpuinfo) рд╣рдо рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХрд╛рдо рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдФрд░ рдореВрд▓ рдХреЛрдб рдХреЛ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╕реНрдд рдмреЙрдХреНрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбрд┐рд▓реАрд╡рд░реА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЬреАрдкреАрдПрд▓ 2.0 рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред
[, [[, ar, arp, awk, base64, basename, bbconfig, beep, blkid, blockdev, bootchartd, bunzip2, bzcat, bzip2, cal, cat, catv, chat, chattr, chgrp, chmod, chown, chpst, chroot, chrt, chvt, cksum, clear, cmp, comm, cp, cpio, crond, crontab, cttyhack, cut, dc, dd, deallocvt, depmod, devmem, diff, dirname, dmesg, dnsd, dos2unix, dpkg, dpkg-deb, du, dumpkmap, echo, ed, egrep, env, envdir, envuidgid, expand, expr, fakeidentd, false, fbset, fbsplash, fdflush, fdformat, fdisk, fgconsole, fgrep, find, findfs, flash_lock, flash_unlock, flashcp, flock, fold, free, freeramdisk, fsync, ftpd, ftpget, ftpput, fuser, getopt, grep, gunzip, gzip, halt, hd, hdparm, head, hexdump, httpd, hwclock, ifconfig, ifdown, ifup, init, inotifyd, insmod, install, iostat, ip, ipaddr, ipcalc, iplink, iproute, iprule, iptunnel, klogd, less, linuxrc, ln, loadkmap, losetup, lpd, lpq, lpr, ls, lsattr, lsmod, lsof, lspci, lsusb, lzcat, lzma, lzop, lzopcat, makedevs, makemime, man, md5sum, mdev, mesg, mkdir, mkfifo, mknod, mkswap, mktemp, modinfo, modprobe, more, mpstat, mv, nbd-client, nc, netstat, nice, nmeter, nohup, od, openvt, patch, pidof, ping, pipe_progress, pmap, popmaildir, poweroff, powertop, printenv, printf, ps, pscan, pstree, pwd, pwdx, raidautorun, rdev, readlink, readprofile, realpath, reboot, reformime, renice, reset, resize, rev, rm, rmdir, rmmod, route, rpm, rpm2cpio, rtcwake, run-parts, runsv, runsvdir, rx, script, scriptreplay, sed, sendmail, seq, setconsole, setkeycodes, setlogcons, setserial, setsid, setuidgid, sha1sum, sha256sum, sha3sum, sha512sum, showkey, sleep, smemcap, softlimit, sort, split, start-stop-daemon, strings, stty, sum, sv, svlogd, switch_root, sync, sysctl, tac, tail, tar, tcpsvd, tee, telnet, telnetd, test, tftp, tftpd, time, timeout, top, touch, tr, traceroute, true, ttysize, tunctl, tune2fs, udpsvd, uname, uncompress, unexpand, uniq, unix2dos, unlzma, unlzop, unxz, unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, volname, watch, wc, wget, which, whoami, whois, xargs, xz, xzcat, yes, zcat
рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рд▓рд┐рдирдХреНрд╕ рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рддрдХ рдЬрд▓реНрджреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреЛрд░реНрдЯ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХрдо рд╕реЗ рдХрдо рд╕рдордп рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реИрдЪ рдФрд░ рдбреАрдмрдЧ рд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред