рдореЛрдмрд┐рдпрд╕ 2018 рдореЙрд╕реНрдХреЛ рдореЗрдВ рд╣реЗрдбрд╣рдВрдЯрд░ рд╕реНрдЯреИрдВрдб рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдХреНрд╡рд┐рдЬ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рдЖрдЬ рд╣рдо рдореЛрдмрд╛рдЗрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЛрдмрд┐рдпрд╕ 2018 рдореЙрд╕реНрдХреЛ рдХреЗ рд╕рдореНрдореЗрд▓рди рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдХреНрд╡рд┐рдЬрд╝ рдХреЛ рдбрд┐рд╕рд╛рдЗрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдкреНрд░рд╛рд░реВрдк рдмрд╣реБрдд рдорд╛рдирдХ рдерд╛: 4 рд╕рдВрднрд╛рд╡рд┐рдд рдЙрддреНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде 15 рдкреНрд░рд╢реНрдиред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╢реНрди рдХреЗ рд▓рд┐рдП 30 рд╕реЗрдХрдВрдб рдХреА рд╕рдордп рд╕реАрдорд╛ред



рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ!


рдкреНрд░рд╢реНрди 1


рдЬрд╡рд╛рдм рд╣реИ
Astra boy/Bender 


рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг
рд╣рд░ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдорд┐рдард╛рдИ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЛрдб рдирд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреНрд░рдо (рдХрдкрдХреЗрдХ, рдбреЛрдирдЯ, рдПрдХреНрд▓реЗрдпрд░, рдЖрджрд┐) рдореЗрдВ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╢реБрд░реВ рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдХрд╛рд▓реНрдкрдирд┐рдХ рд░реЛрдмреЛрдЯ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдирд╛рдо рджреЗрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИред рдЗрд╕рд▓рд┐рдП, рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдПрд╕реНрдЯреНрд░рд╛ рдмреЙрдп рдФрд░ рдмреЗрдВрдбрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛ред рдЕрдирд╛рдо рд╕рдВрд╕реНрдХрд░рдг 1.0 рдХреА рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рдкрд╣рд▓реЗ рдпреЗ рдЖрдВрддрд░рд┐рдХ рд░рд┐рд▓реАрдЬрд╝ рдереЗред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреБрдЫ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рд╡реЗрдХреНрдЯрд░ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдФрд░ 1.1 рд╕рдВрд╕реНрдХрд░рдг, рдкреЗрдЯрд┐рдЯ рдлреЛрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдпрд╣ Android рдХрд╛ рдкрд╣рд▓рд╛ рд╕реНрд╡реАрдЯ рд╡рд░реНрдЬрди рдерд╛ред рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг (рдХрдкрдХреЗрдХ 1.5) рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, рдирд╛рдореЛрдВ рдХреЛ рдПрдХ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреНрд░рдо рдореЗрдВ рд╕реМрдВрдкрд╛ рдЬрд╛рдирд╛ рд╢реБрд░реВ рд╣реБрдЖред

рд╕реНрд░реЛрдд

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА





рдкреНрд░рд╢реНрди реи


рдЬрд╡рд╛рдм рд╣реИ
 Marshmallow 


рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг
рдПрдкреАрдЖрдИ 23 (рдорд╛рд░реНрд╢рдореИрд▓реЛ) рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде, рдПрдВрдбреНрд░реЙрдЗрдб рдиреЗ рд░рдирдЯрд╛рдЗрдо рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рдирдИ рдЕрд╡рдзрд╛рд░рдгрд╛ рдкреЗрд╢ рдХреАред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рджреА рдЧрдИ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реА рдереАред "рдорд╛рд░реНрд╢рдореЙрд▓реЛ" рдЬрд╛рд░реА рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рд╕рдордп рдЕрдиреБрдорддрд┐ рдЬрд╛рд░реА рдХреА рдЧрдИ рдереАред

рд╕реНрд░реЛрдд

рдзреНрдпрд╛рди рджреЗрдВ, рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ 100 рд╕реЗ рдЕрдзрд┐рдХ рдЕрджреНрд╡рд┐рддреАрдп рдЕрдиреБрдорддрд┐рдпрд╛рдВ рд╣реИрдВред


рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА





рдкреНрд░рд╢реНрди 3


рдЬрд╡рд╛рдм рд╣реИ
 measure() 


рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг


рдЙрдкрд╛рдп () - рджреГрд╢реНрдп рдФрд░ рдЙрд╕рдХреЗ рд╕рднреА рдмрдЪреНрдЪреЛрдВ рдХреА рдЖрдХрд╛рд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдСрдирдореИрд░реЗрдВрд╕ () - рд╡реНрдпреВ рдХреЛ рдЖрдХрд╛рд░ рджреЗрдиреЗ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдп рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдк () рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

onLayout () - рдПрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдПрдХ рддрддреНрд╡ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ

onDraw () - рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ ред


рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА





рдкреНрд░рд╢реНрди 4



рдЬрд╡рд╛рдм рд╣реИ
 isUserSmell() 


рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг
SDK рдореЗрдВ рдХреЛрдИ UUserSmell () рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИред рд╢рд╛рдпрдж рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЙрдкрдпреБрдХреНрдд рд╕реЗрдВрд╕рд░ рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде ...

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдмрд╛рдХреА рд╡рд┐рдзрд┐рдпрд╛рдБ рдХреНрдпрд╛ рдХрд░рддреА рд╣реИрдВ:

isUserMonkey () - рд╡рд┐рдзрд┐ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдмрдВрджрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╣реИ рдпрд╛ рдирд╣реАрдВред

isUserAGoat () - API 21 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдмрдХрд░реА рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ GoatZ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ("рдмрдХрд░реА рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░")ред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░, рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ рдЭреВрдареА рд╣реЛрддреА рд╣реИред android.os.UserManager рд╡рд░реНрдЧ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред

isFinalCountdown () - рд╡рд┐рдзрд┐ рдпреВрд░реЛрдкрд╛ рдмреИрдВрдб рдХреА рдХреНрд▓рд┐рдк "рдж рдлрд╛рдЗрдирд▓ рдХрд╛рдЙрдВрдЯрдбрд╛рдЙрди" рдЦреЛрд▓рддреА рд╣реИред рдЗрд╕реЗ рдПрдкреАрдЖрдИ 26 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред android.widget.Chronometer рд╡рд░реНрдЧ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред


рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА





рдкреНрд░рд╢реНрди 5



рдЬрд╡рд╛рдм рд╣реИ
 private static final int mobius = 2018 


рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг
рдпрд╣ const рдХреАрд╡рд░реНрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реБрдЖ рдЬреНрдЮрд╛рди рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ compile time constants рдШреЛрд╖рд┐рдд compile time constants рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд╛рд╡рд╛ рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдпрд╣ static final рд╕рдВрд╢реЛрдзрдХ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред


рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА





рдкреНрд░рд╢реНрди 6


рдЬрд╡рд╛рдм рд╣реИ
 sdpi 


рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг
рдЬрдмрдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ xhdpi рдФрд░ mdpi рдХреЛ рд╕реБрдирд╛ рд╣реИ, рдЪреАрдЬреЗрдВ tvdpi рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ рд╣реИрдВред рдЗрд╕рдиреЗ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рд╣рд╛рд╕рд┐рд▓ рдирд╣реАрдВ рдХреА, рдФрд░ рдЗрд╕рд▓рд┐рдП tvdpi рд╢реНрд░реЗрдгреА рдореЗрдВ рдмрд╣реБрдд рдХрдо рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдереЗред рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз рдиреЗрдХреНрд╕рд╕ 7 (2012) рд╣реИред

рд╕реНрд░реЛрдд ред

рдзреНрдпрд╛рди рджреЗрдВ, tvdpi рдореЗрдВ mdpi рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ 1.3 рдХрд╛ рдЧреБрдгрд╛рдВрдХ рд╣реИред


рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА





рдкреНрд░рд╢реНрди 7


рдЬрд╡рд╛рдм рд╣реИ
       apk 


рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг
AAPT (рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕реЗрдЯ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдЯреВрд▓) - .APK рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдЯреВрд▓ред

рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ, рдЗрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рджреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рд╕рдВрдХрд▓рдиред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╕рдВрд╕рд╛рдзрди рддреИрдпрд╛рд░ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ: рд╡рд░реНрдЧ рдЖрд░ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдПрдХреНрд╕рдПрдордПрд▓ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдкреНрд░рд╛рд░реВрдк, рдкреАрдПрдирдЬреА рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЖрджрд┐ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдкреИрдХреЗрдЬрд┐рдВрдЧ (рд▓рд┐рдВрдХрд┐рдВрдЧ)ред рд╕рдВрдХрд▓рди рдЪрд░рдг рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╕рднреА рдордзреНрдпрд╡рд░реНрддреА рдлрд╛рдЗрд▓реЗрдВ рдПрдкреАрдХреЗ рдореЗрдВ рдкреИрдХ рдХреА рдЧрдИ рд╣реИрдВред

рд╢реЗрд╖ рдЙрддреНрддрд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП:
- рдХреЛрдб рдХрд╛ рдСрдмрдлреНрдпреВрдЬрди рдЖрдорддреМрд░ рдкрд░ рдкреНрд░рд╛рдЙрдб рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдЬрд╛рд╡рд╛ рдмрд╛рдЗрдЯрдХреЛрдб рдЬрд╛рд╡рд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ, рдЬреЛ рдЬрд╛рд╡рд╛ рдмрд╛рдЗрдЯрдХреЛрдб рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИред
- Dalvik рдмрд╛рдпрдЯреЗрдХреЛрдб, Dalvik Compiler (DX, D8) рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ, рдЬреЛ .class (Java bytecode) рдХреЛ .dex (Dalvik bytecode) рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред Dalvik bytecode рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реАрдзреЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╣реИред


рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА





рдкреНрд░рд╢реНрди 8



рдЬрд╡рд╛рдм рд╣реИ
 RIGHT OUTER JOIN 


рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг
рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ RIGHT OUTER JOIN рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред

рд╕реНрд░реЛрдд ред


рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА





рдкреНрд░рд╢реНрди 9



рдЬрд╡рд╛рдм рд╣реИ
 2x 


рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг
рдирд╛рдордШрдирддреНрд╡
ldpi0.75
mdpi1
tvdpi1.3
hdpi1.5
xhdpi2
xxhdpi3 рдФрд░ 2.6
xxxhdpi4 рдФрд░ 3.5



рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА





рдкреНрд░рд╢реНрди 10


рдЬрд╡рд╛рдм рд╣реИ
 ART 


рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг
ART (Android RunTime) DEX рдХреА рдЬрдЧрд╣ рдирдпрд╛ DEX рдмрд╛рдпрдЯреЗрдХреЛрдб рд░рдирдЯрд╛рдЗрдо рд╣реИред Dalvik рдФрд░ ART рдХреЗ рдмреАрдЪ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ Dalvik JIT ( рдЬрд╕реНрдЯ-рдЗрди-рдЯрд╛рдЗрдо ) рд╕рдВрдХрд▓рди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬрдмрдХрд┐ ART AOT ( Ahead-of-Time ) рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╣рд░ рдмрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдкрд░ Dalvik рдорд╢реАрди рдХреЛрдб рдореЗрдВ dalvik рдмрд╛рдЗрдЯ рдХреЛрдб рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ, рдФрд░ ART рдПрдХ рдмрд╛рд░ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди, рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдореЗрдореЛрд░реА рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рджрд╛рд▓реНрд╡рд┐рдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдЖрд░рдЯреА рдкрд░ рддреЗрдЬреА рд╕реЗ рд▓реЙрдиреНрдЪ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕рдордп рдХреЛ рднреА рдмрдврд╝рд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдЖрд░рдЯреА рдиреЗ рдЬреАрд╕реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рдЕрдВрдЬрд╛рдо рджрд┐рдпрд╛, рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдФрд░ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдлрд╝рдВрдХреНрд╢рди рднреА рдЬреЛрдбрд╝реЗред

рдПрдЖрд░рдЯреА рдФрд░ рджрд▓рд╡рд┐рдХ


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


рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА





рдкреНрд░рд╢реНрди 11


рдЬрд╡рд╛рдм рд╣реИ
 YAGNI 


рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг
KISS (рдпрд╣ рд╕рд░рд▓ рд░рдЦреЗрдВ, рдмреЗрд╡рдХреВрдл) - рдЬрдЯрд┐рд▓ рдирд╣реАрдВ!

DRY (рдЕрдкрдиреЗ рдЖрдк рдХреЛ рджреЛрд╣рд░рд╛рдПрдВ рдирд╣реАрдВ), DIE (рджреЛрд╣рд░рд╛рд╡ рдмреБрд░рд╛рдИ рд╣реИ) - рджреЛрд╣рд░рд╛рдПрдВ рдирд╣реАрдВ!

рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдл (рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб "рдЪреЗрдЬрд╝рд╛рди" рдХреА рдорд╛рддреНрд░рд╛) рдПрдХ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛ рдорд╛рдкрдиреЗ рдХреА рдПрдХ рдЗрдХрд╛рдИ рд╣реИред

YAGNI (рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ) - рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ!


рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА





рдкреНрд░рд╢реНрди 12


рдЬрд╡рд╛рдм рд╣реИ
 Application Not Responding 


рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг
ANR (рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд░рд┐рд╕реНрдкреЙрдиреНрд╕рд┐рдВрдЧ рдирд╣реАрдВ) - рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЬреЛ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдореБрдЦреНрдп рдереНрд░реЗрдб рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпреВрдЖрдИ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ, рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЬрд╡рд╛рдмрджреЗрд╣реА рдХреА рдирд┐рдЧрд░рд╛рдиреА WindowManager рдФрд░ WindowManager рд╕рд┐рд╕реНрдЯрдо рд╕реЗрд╡рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдпрджрд┐ рдирд┐рдореНрди рдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рд╕реНрдерд┐рддрд┐ рд╕рддреНрдп рд╣реИ:

- рдЗрдирдкреБрдЯ рдИрд╡реЗрдВрдЯреНрд╕ (рд╕реНрдкрд░реНрд╢ рдФрд░ рдХреБрдВрдЬреА рджрдмрд╛рдП рдЧрдП рдИрд╡реЗрдВрдЯ) рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ,
- рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯрд░ 10 рд╕реЗрдХрдВрдб рдХреЗ рднреАрддрд░ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ,

рддрдм рд╕рд┐рд╕реНрдЯрдо рд╕рдВрдмрдВрдзрд┐рдд ANR рд╕рдВрд╡рд╛рдж рджрд┐рдЦрд╛рдХрд░ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдЧрд╛ред


рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА





рдкреНрд░рд╢реНрди 13


рдЬрд╡рд╛рдм рд╣реИ
 Size & mode 


рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг
рдорд╛рдкрдХ рдХреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗ рдмрд╛рд▓ рджреГрд╢реНрдп рдШрдЯрдХреЛрдВ рдореЗрдВ рдЖрдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рджреЛ рдЖрдпрд╛рдореЛрдВ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИред рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдк рдХреЗ рдорд╛рди рд╕рдВрдпреБрдХреНрдд рд╣реЛрддреЗ рд╣реИрдВ: рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕реНрдерд╛рди (рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ, рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕реНрдерд╛рди рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд╣реЛрддрд╛ рд╣реИред рдЗрди рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:

рдорд╛рдкрдХec.UNSPECIFIED - рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ, рджреГрд╢реНрдп рдХреЛрдИ рднреА рдЖрдХрд╛рд░ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдЙрд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдорд╛рдкрдХред рд╕рдЯреАрдХ - рд╕рдЯреАрдХ рдЖрдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рджреЗрдЦреЗрдВ рдХрд┐ рдпреЗ рд╕реАрдорд╛рдПрдБ рджреА рдЬрд╛рдПрдВрдЧреАред

рдорд╛рдкрдирд╕реНрдкреЗрдХреНрдЯ .AT_MOST - рдЕрдзрд┐рдХрддрдо рдЖрдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред рджреГрд╢реНрдп рдЬрд┐рддрдирд╛ рдЪрд╛рд╣реЗ рдЙрддрдирд╛ рдмрдбрд╝рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрдХрд╛рд░ рддрдХред


рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА





рдкреНрд░рд╢реНрди 14


рдЬрд╡рд╛рдм рд╣реИ
 Linux Kernel 


рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг

рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ (рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓) - рдпрд╣ рдкрд░рдд рд╕рд┐рд╕реНрдЯрдо рдХреА рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛, рдореЗрдореЛрд░реА рдкреНрд░рдмрдВрдзрди, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдФрд░ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдЯреИрдХ рдФрд░ рдбреНрд░рд╛рдЗрд╡рд░ рдореЙрдбрд▓ (рдбрд┐рд╕реНрдкреНрд▓реЗ рдбреНрд░рд╛рдЗрд╡рд░, рдХреИрдорд░рд╛ рдбреНрд░рд╛рдЗрд╡рд░ рдФрд░ рдЕрдиреНрдп рдбреНрд░рд╛рдЗрд╡рд░) рднреА рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред

рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ (рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝) рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреА рдПрдХ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рд▓реЗрдпрд░ рд╣реИ, рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдлрд╛рдЗрд▓ рдлреЙрд░реНрдореЗрдЯ, рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдФрд░ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдЗрдВрдлреЙрд░реНрдореЗрд╢рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдбреЗрдХреНрд╕), рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдФрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ (рд╕рд░реНрдлреЗрд╕ рдореИрдиреЗрдЬрд░, рдореАрдбрд┐рдпрд╛ рдлреНрд░реЗрдорд╡рд░реНрдХ, SQLite рдФрд░ рдЬреИрд╕реЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рд╣реИ) рдПрдЯ рдЕрд▓ред)ред

Android рд░рдирдЯрд╛рдЗрдо - рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреЗ рд╕рдорд╛рди рд╕реНрддрд░ рдкрд░ рд╕реНрдерд┐рдд рд╣реИред рдпрд╣рд╛рдБ рдХреЗ рдкреНрд░рдореБрдЦ рдШрдЯрдХ рдбрд╛рд▓реНрд╡рд┐рдХ рд╡реАрдПрдо рдФрд░ рдХрдИ рдХреЛрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ (рдХреЛрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝) рд╣реИрдВред

рдПрдкреНрд▓реАрдХреЗрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХ - рдПрдкреНрд▓реАрдХреЗрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓реЗрд╡рд▓ред рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИ рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЙрд╕ рдПрдкреАрдЖрдИ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрддрд░ рд╕реЗ рдиреАрдЪреЗ рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВред рдЗрдирдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдПрдХреНрдЯрд┐рд╡рд┐рдЯреА рдореИрдиреЗрдЬрд░, рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░, рд╡рд┐рдВрдбреЛ рдореИрдиреЗрдЬрд░ рдЖрджрд┐ред

рдЕрдиреБрдкреНрд░рдпреЛрдЧ - рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рд╕реНрддрд░, рджреЛрдиреЛрдВ рдмреБрдирд┐рдпрд╛рджреА (рдУрдПрд╕ рдкрд░ рдкреВрд░реНрд╡-рд╕реНрдерд╛рдкрд┐рдд: рдмреНрд░рд╛рдЙрдЬрд╝рд░, рдХреИрд▓реЗрдВрдбрд░, рд╕рдВрдкрд░реНрдХ, рдЖрджрд┐), рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рддред

рдзреНрдпрд╛рди рджреЗрдВ, рдХреНрд╡рд┐рдЬрд╝ рдХреЗ рд▓реЗрдЦрдХ рдкреБрд░рд╛рдиреЗ рд╕реНрдХреВрд▓ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ, рдкрд░рддреЛрдВ рдХреЛ рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: source.android.com/devices/altecture ред


рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА





рдкреНрд░рд╢реНрди 15


рдЬрд╡рд╛рдм рд╣реИ
 invokeabstract 


рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг
рдЧреЛрдЯреЛ - рдПрдХ рдФрд░ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдХреВрджреЛред

invokeinterface - рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

invokestatic - рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг ред


рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА



Source: https://habr.com/ru/post/hi434210/


All Articles