{"id":271355,"date":"2015-12-29T14:44:03","date_gmt":"2015-12-29T11:44:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=271355"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=271355","title":{"rendered":"\u041a\u0430\u043a \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043f\u0435\u0440\u0432\u044b\u0439 \u043e\u043f\u044b\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u0433\u0440\u044b \u043d\u0430 Android"},"content":{"rendered":"<p>       <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/4f2\/53a\/797\/4f253a797c2e4a08a74ce59ecedc4733.png\" alt=\"image\"\/><\/p>\n<p>  \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0433\u0440\u044b \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0435\u0441\u044c \u043f\u0443\u0442\u044c \u043e\u0442 \u0437\u0430\u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0438\u0434\u0435\u0438 \u0434\u043e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438.<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h4>\u041f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044f<\/h4>\n<p>  \u0421 2012 \u0433\u043e\u0434\u0430 \u044f \u0432\u043f\u043b\u043e\u0442\u043d\u0443\u044e \u0441\u0442\u0430\u043b \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u043f\u043e\u0434 Windows \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 C#. \u0417\u0430 \u0432\u0441\u0451 \u0432\u0440\u0435\u043c\u044f \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u043f\u044b\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 .NET \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u044b\u0445. \u0422\u0430\u043a \u0432\u044b\u0448\u043b\u043e, \u0447\u0442\u043e \u043c\u043d\u0435 \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u043f\u043e\u0434 Android. \u041f\u0435\u0440\u0435\u0434\u043e \u043c\u043d\u043e\u0439 \u0441\u0442\u043e\u044f\u043b \u0432\u044b\u0431\u043e\u0440 C# (Xamarin) \u0438\u043b\u0438 Java. \u0422\u0430\u043a \u043a\u0430\u043a \u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u0433\u043e\u0434\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043b \u043d\u0430 C# \u0438 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0439 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435, \u0430 \u043d\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u043d\u043e\u0432\u043e\u0439 IDE \u0438 \u043d\u044e\u0430\u043d\u0441\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 Java \u0432\u044b\u0431\u043e\u0440 \u0431\u044b\u043b \u043e\u0447\u0435\u0432\u0438\u0434\u0435\u043d.<\/p>\n<p>  \u0418\u0434\u0435\u044f \u00ab\u0447\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c?\u00bb \u0440\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u043b\u043e\u0441\u044c \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043b\u0443\u0448\u0438\u0432\u0430\u043d\u0438\u044f \u0438 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u043c\u0443\u0437\u044b\u043a\u0438 \u0432 \u0412\u041a. \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u043f\u043e\u0447\u0442\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043e, \u043d\u043e \u0432 \u0441\u0432\u044f\u0437\u0438 \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u0442\u0430\u043a \u0438 \u043d\u0435 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e. \u0421\u043f\u0443\u0441\u0442\u044f \u043f\u043e\u043b\u0433\u043e\u0434\u0430, \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u0443\u0439\u043c\u0430 \u00ab\u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e\u00bb \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u044f \u0440\u0435\u0448\u0438\u043b \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e\u0434 Android. \u041f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0432\u0448\u0438\u0441\u044c \u0441 \u043e\u0434\u043d\u0438\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u043c \u0438 \u043f\u043e\u043e\u0431\u0449\u0430\u0432\u0448\u0438\u0441\u044c \u0441 \u043d\u0438\u043c \u043e \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430\u0445 \u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0430\u0445 Java (Android) \u0438 C# (Xamarin), \u044f \u043d\u0430\u0447\u0430\u043b \u043f\u043e\u0434 \u0435\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\u043c \u0448\u0442\u0443\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043d\u0438\u0433\u0438 \u043f\u043e Java \u0438 \u043e\u0441\u0432\u0430\u0438\u0432\u0430\u0442\u044c IDE IntelliJ IDEA.<\/p>\n<h4>\u0418\u0434\u0435\u044f, \u0438\u043b\u0438 \u0441 \u0447\u0435\u0433\u043e \u0432\u0441\u0451 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c<\/h4>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043d\u0435\u0434\u0435\u043b\u044c \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0441 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 (\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0430\u0432\u0430\u043b\u0438\u0441\u044c \u043c\u043d\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043b\u0435\u0433\u043a\u043e) \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0439 \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0432\u043c\u0435\u0441\u0442\u043e \u0447\u0442\u0435\u043d\u0438\u044f \u043a\u043d\u0438\u0433 \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438\u0433\u0440\u044b, \u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c, \u0440\u0435\u0448\u0430\u0442\u044c \u043f\u043e \u043c\u0435\u0440\u0435 \u0438\u0445 \u043f\u043e\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f. \u0418\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a \u044f \u0438 \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u043b, \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u043b\u0438\u0448\u044c \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u0438\u0434\u0435\u044e \u0434\u043b\u044f \u0438\u0433\u0440\u044b, \u043d\u043e \u0443\u0436\u0435 \u0447\u0435\u0440\u0435\u0437 5 \u043c\u0438\u043d\u0443\u0442 \u0435\u0451 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b \u0441\u0430\u043c \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440.<\/p>\n<p>  \u0418\u0433\u0440\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0435\u0451 \u0441\u0443\u0442\u044c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c: \u0438\u0433\u0440\u043e\u043a\u0443 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0435\u043a\u0443\u043d\u0434 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0444\u0438\u0433\u0443\u0440\u0430\u043c\u0438 \u0440\u0430\u0437\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u044b, \u0446\u0432\u0435\u0442\u0430, \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u0441\u043f\u0435\u0442\u044c \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c. \u0417\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0438\u0433\u0440\u043e\u043a \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u00ab\u0437\u0432\u0435\u0437\u0434\u043e\u0447\u043a\u0438\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0443\u0440\u043e\u0432\u043d\u0438.<\/p>\n<p>  \u0414\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u0446\u0435\u043d\u043a\u0438 (\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0437\u0432\u0435\u0437\u0434\u043e\u0447\u0435\u043a) \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0431\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c 3 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430: \u0446\u0432\u0435\u0442 \u0444\u0438\u0433\u0443\u0440\u044b, \u0435\u0451 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0440\u0430\u0434\u0438\u0443\u0441. \u0414\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0432 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0431\u044b\u043b\u043e \u0432\u0432\u0435\u0434\u0435\u043d\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u0435, \u0447\u0442\u043e \u0438\u0433\u0440\u043e\u043a\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u0444\u043e\u0440\u043c\u044b \u0432\u0441\u0435\u0445 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0444\u0438\u0433\u0443\u0440, \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0438\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435, \u0438\u043d\u0430\u0447\u0435 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0443\u0434\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043d\u044b\u043c.<\/p>\n<h4>\u0414\u0438\u0437\u0430\u0439\u043d<\/h4>\n<p>  \u0421 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043c\u043d\u0435 \u043f\u043e\u043c\u043e\u0433 \u0432\u0441\u0451 \u0442\u043e\u0442 \u0436\u0435 \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0436\u0435 \u043d\u0435 \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 UI\/UX \u0434\u0438\u0437\u0430\u0439\u043d \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041e\u043d \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043b\u043e\u0433\u043e\u0442\u0438\u043f, \u0438\u043a\u043e\u043d\u043a\u0443, \u0432\u044b\u0431\u0440\u0430\u043b \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0446\u0432\u0435\u0442\u0430, \u0448\u0440\u0438\u0444\u0442\u044b, \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043a\u043d\u043e\u043f\u043e\u043a \u0438 \u0434\u0440. \u0417\u0430\u0442\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0433\u043e\u0442\u043e\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0432 \u0432\u0435\u043a\u0442\u043e\u0440\u0435. \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0434\u043b\u044f \u0440\u0435\u043b\u0438\u0437\u0430 (\u00ab\u043f\u0440\u0435\u0432\u044c\u044e\u0448\u043a\u0438\u00bb, \u0440\u0435\u043a\u043b\u0430\u043c\u043d\u044b\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438 \u0442.\u0434.).<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430\u0445:<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/41f\/fc8\/7b3\/41ffc87b35834f9293b6e45ede211ff2.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/b41\/28a\/b3f\/b4128ab3f19d49d3b5b019ea18ad346c.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/121\/75b\/c43\/12175bc4384f41018402559bb4f39af7.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/e36\/8f8\/9d9\/e368f89d96e64dfaa2187dee9fea9cc8.png\"\/>  <\/div>\n<\/div>\n<p>  <\/p>\n<h4>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430<\/h4>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u0434\u0438\u0437\u0430\u0439\u043d\u0430 \u0438\u0433\u0440\u044b \u044f \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438\u043d\u044f\u043b\u0441\u044f \u0437\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443. \u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f, \u0431\u044b\u043b\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u043b\u0438\u0448\u044c \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440. \u0412\u0441\u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c 6 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0434\u043b\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440 (\u043a\u0440\u0443\u0433, \u043a\u0432\u0430\u0434\u0440\u0430\u0442, \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a, \u043f\u044f\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a, \u0437\u0432\u0435\u0437\u0434\u0430, \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a), \u0434\u0432\u0430 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432 Java. \u0422\u0430\u043a \u0436\u0435 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0431\u044b\u043b\u043e \u0442\u043e, \u0447\u0442\u043e \u0444\u0438\u0433\u0443\u0440\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0446\u0435\u043d\u0442\u0440\u0430 \u0432\u043e \u0432\u0441\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0438 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0432\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439 \u0432 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c \u0441 \u0440\u0430\u0434\u0438\u0443\u0441\u043e\u043c, \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u043b \u0443\u0436\u0435 \u0441\u0430\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u043e \u0431\u044b\u043b \u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u044f \u0440\u0435\u0448\u0438\u043b \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u0444\u0438\u0433\u0443\u0440, \u0430 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u0414\u043b\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f <i>canvas.drawPath()<\/i> (\u043c\u0435\u0442\u043e\u0434 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u043d\u0438\u0439), \u043c\u043d\u0435 \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0438, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u0443\u0442\u044c \u043b\u0438\u043d\u0438\u0438. \u0412 \u0441\u0432\u044f\u0437\u0438 \u0441 \u044d\u0442\u0438\u043c \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0448\u043a\u043e\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0443\u0447\u0435\u0431\u043d\u0438\u043a \u043f\u043e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438. <\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043d\u044e\u0430\u043d\u0441\u043e\u043c \u0431\u044b\u043b\u043e \u0442\u043e, \u0447\u0442\u043e \u0444\u0438\u0433\u0443\u0440\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438: \u0441 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u043c \u0446\u0435\u043d\u0442\u0440\u043e\u043c, \u0441 \u0440\u0430\u043c\u043a\u043e\u0439, \u0431\u0435\u0437 \u0440\u0430\u043c\u043a\u0438 \u0438 \u0446\u0435\u043d\u0442\u0440\u0430, \u0441 \u0440\u0430\u043c\u043a\u043e\u0439 \u0438 \u0446\u0435\u043d\u0442\u0440\u043e\u043c, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0440\u0430\u043c\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043f\u043b\u043e\u0448\u043d\u043e\u0439 \u043b\u0438\u0431\u043e \u043f\u0443\u043d\u043a\u0442\u0438\u0440\u043d\u043e\u0439. \u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441 \u0442\u0440\u0435\u043c\u044f \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 (\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0438\u0433\u0443\u0440\u044b, \u0440\u0430\u043c\u043a\u0438, \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0438\u0433\u0443\u0440\u044b \u0441 \u0440\u0430\u043c\u043a\u043e\u0439). \u0414\u0430\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0431\u044b\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u043f\u0440\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0444\u0438\u0433\u0443\u0440.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440\u044b<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">public interface DrawFigure {     public void draw(Canvas canvas, PointF startPoint, PointF finishPoint, Paint mPaint);      public void drawWithBorder(Canvas canvas, PointF startPoint, PointF finishPoint, Paint mPaint, Paint borderPaint);      public void drawBorder(Canvas canvas, PointF startPoint, PointF finishPoint, Paint mPaint, Paint borderPaint); } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043b\u0430\u0441\u0441 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">public class DrawThreeAngle implements DrawFigure {      private float mRadius;     private int[] angles = new int[]{30, 150, 270, 30};     private float[] xValues = new float[4];     private float[] yValues = new float[4];      @Override     public void draw(Canvas canvas, PointF startPoint, PointF finishPoint, Paint mPaint) {         mRadius = Tools.getRadius(startPoint, finishPoint);         Path threeanglePath = new Path();         for (int i = 0; i &lt; angles.length; i++) {             xValues[i] = startPoint.x + (float) (mRadius * Math.cos(Math.toRadians(angles[i])));             yValues[i] = startPoint.y + (float) (mRadius * Math.sin(Math.toRadians(angles[i])));             if (i==0){                 threeanglePath.moveTo(xValues[i], yValues[i]);             }             else {                 threeanglePath.lineTo(xValues[i], yValues[i]);             }         }         threeanglePath.close();         canvas.drawPath(threeanglePath, mPaint);     }      @Override     public void drawWithBorder(Canvas canvas, PointF startPoint, PointF finishPoint, Paint mPaint, Paint borderPaint) {         draw(canvas, startPoint, finishPoint, mPaint);         drawBorder(canvas, startPoint, finishPoint, mPaint, borderPaint);     }      @Override     public void drawBorder(Canvas canvas, PointF startPoint, PointF finishPoint, Paint mPaint, Paint borderPaint) {         for (int i = 0; i &lt; angles.length - 1; i++) {             canvas.drawLine(xValues[i], yValues[i], xValues[i + 1], yValues[i + 1], borderPaint);         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043b\u0430\u0441\u0441 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0432\u0435\u0437\u0434\u044b<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">public class DrawStar implements DrawFigure {      private float mRadius;     private int[] angles = new int[]{-18, -54, 270, 234, 198, 162, 126, 90, 54, 18, -18};     private float[] xValues = new float[11];     private float[] yValues = new float[11];      @Override     public void draw(Canvas canvas, PointF startPoint, PointF finishPoint, Paint mPaint) {         mRadius = Tools.getRadius(startPoint, finishPoint);         Path starPath = new Path();         for (int i = 0; i &lt; angles.length; i++) {             if (i % 2 == 0) {                 xValues[i] = startPoint.x + (float) (mRadius * Math.cos(Math.toRadians(angles[i])));                 yValues[i] = startPoint.y + (float) (mRadius * Math.sin(Math.toRadians(angles[i])));             } else {                 xValues[i] = startPoint.x + (float) (mRadius \/ 2 * Math.cos(Math.toRadians(angles[i])));                 yValues[i] = startPoint.y + (float) (mRadius \/ 2 * Math.sin(Math.toRadians(angles[i])));             }             if (i==0){                 starPath.moveTo(xValues[i], yValues[i]);             }             else {                 starPath.lineTo(xValues[i], yValues[i]);             }         }         starPath.close();         canvas.drawPath(starPath, mPaint);     }      @Override     public void drawWithBorder(Canvas canvas, PointF startPoint, PointF finishPoint, Paint mPaint, Paint borderPaint) {         draw(canvas, startPoint, finishPoint, mPaint);         drawBorder(canvas, startPoint, finishPoint, mPaint, borderPaint);     }      @Override     public void drawBorder(Canvas canvas, PointF startPoint, PointF finishPoint, Paint mPaint, Paint borderPaint) {         for (int i = 0; i &lt; angles.length - 1; i++) {             canvas.drawLine(xValues[i], yValues[i], xValues[i + 1], yValues[i + 1], borderPaint);         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<h4>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0443\u0440\u043e\u0432\u043d\u0435\u0439<\/h4>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0441\u0435\u0433\u043e \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u044f \u043f\u0440\u0438\u043d\u044f\u043b\u0441\u044f \u0437\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0443\u0440\u043e\u0432\u043d\u0435\u0439. \u0412\u0441\u0435\u0433\u043e \u0431\u044b\u043b\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043e 60 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438. \u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0444\u0438\u0433\u0443\u0440, \u0438\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0422\u0430\u043a \u0436\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u043f\u043e\u0432\u044b\u0448\u0430\u043b\u0430\u0441\u044c \u0437\u0430 \u0441\u0447\u0451\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0444\u0438\u0433\u0443\u0440.<\/p>\n<p>  \u0414\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0431\u044b\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u0438\u0437 \u0434\u0432\u0443\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c. \u0422\u0430\u043a \u043a\u0430\u043a \u0444\u0438\u0433\u0443\u0440\u044b \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u043d\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 (\u0446\u0435\u043d\u0442\u0440 \u0444\u0438\u0433\u0443\u0440\u044b \u0438 \u0442\u043e\u0447\u043a\u0430 \u043d\u0430 \u0435\u0451 \u0440\u0430\u0434\u0438\u0443\u0441\u0435), \u0442\u043e \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u044d\u043a\u0440\u0430\u043d\u0430\u0445 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u0437\u043d\u043e\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435 \u0438\u043b\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0443\u0440\u043e\u0432\u043d\u044f \u0432 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u044d\u043a\u0440\u0430\u043d\u043e\u0432. \u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0431\u044b\u043b\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0444\u0438\u0433\u0443\u0440 \u043f\u0440\u0438 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u043c \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u043c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0438. \u0410 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0437\u0430 \u0441\u0447\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044e \u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432\u0441\u0435\u0445 \u0444\u0438\u0433\u0443\u0440 \u043d\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">public class LevelsDatabaseHelper extends SQLiteOpenHelper {      private static final String DB_NAME = &quot;levels.sqlite&quot;;     private static final int VERSION = 1;      private static final String TABLE_LEVELS = &quot;levels&quot;;     private static final String COLUMN_LEVELS_STARS = &quot;stars&quot;;     private static final String COLUMN_LEVELS_TIME = &quot;time&quot;;     private static final String COLUMN_LEVELS_NUMBER = &quot;number&quot;;      private static final String TABLE_FIGURE = &quot;figure&quot;;     private static final String COLUMN_FIGURE_TYPE = &quot;type&quot;;     private static final String COLUMN_FIGURE_NUMBER = &quot;number&quot;;     private static final String COLUMN_FIGURE_CENTER_X = &quot;center_x&quot;;     private static final String COLUMN_FIGURE_CENTER_Y = &quot;center_y&quot;;     private static final String COLUMN_FIGURE_FINISH_X = &quot;finish_x&quot;;     private static final String COLUMN_FIGURE_FINISH_Y = &quot;finish_y&quot;;     private static final String COLUMN_FIGURE_COLOR = &quot;color&quot;;     private static final String COLUMN_FIGURE_LAYER_INDEX = &quot;layer_index&quot;;      private Context mContext;      private SQLiteDatabase mDataBase;      public LevelsDatabaseHelper(Context context) {         super(context, DB_NAME, null, 2);     }       @Override     public void onCreate(SQLiteDatabase db) {         mDataBase = db;         db.execSQL(&quot;create table &quot; + TABLE_LEVELS + &quot; (_id integer primary key autoincrement, &quot; +                 COLUMN_LEVELS_NUMBER + &quot; integer, &quot; + COLUMN_LEVELS_STARS + &quot; integer, &quot; + &quot; string, &quot; + COLUMN_LEVELS_TIME + &quot; integer)&quot;);         db.execSQL(&quot;create table &quot; + TABLE_FIGURE + &quot; (_id integer primary key autoincrement, &quot; + COLUMN_FIGURE_NUMBER +                 &quot; integer, &quot; + COLUMN_FIGURE_TYPE + &quot; string, &quot; + COLUMN_FIGURE_CENTER_X + &quot; real, &quot;                 + COLUMN_FIGURE_CENTER_Y + &quot; real, &quot; + COLUMN_FIGURE_FINISH_X + &quot; real, &quot; + COLUMN_FIGURE_FINISH_Y                 + &quot; real, &quot; + COLUMN_FIGURE_COLOR + &quot; integer, &quot; + COLUMN_FIGURE_LAYER_INDEX + &quot; string)&quot;);     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<h4>\u0416\u0443\u043b\u044c\u043d\u0438\u0447\u0435\u0441\u0442\u0432\u043e<\/h4>\n<p>  \u041f\u0440\u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0431\u044b\u043b \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \u043b\u0430\u0437\u0435\u0439\u043a\u0430 \u043f\u0440\u0438 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0438 \u0443\u0440\u043e\u0432\u043d\u0435\u0439, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u0444\u0438\u0433\u0443\u0440\u044b. \u041b\u0430\u0437\u0435\u0439\u043a\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u043b\u0430\u0441\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0439, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0444\u0438\u0433\u0443\u0440\u0430. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u0444\u0438\u0433\u0443\u0440\u0443, \u0430 \u0437\u0430\u0442\u0435\u043c \u043d\u0438\u0436\u043d\u044e\u044e \u0438 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u043b\u0441\u044f \u0431\u044b \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043d\u044b\u043c. \u0414\u043b\u044f \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043b\u0430\u0437\u0435\u0439\u043a\u0438 \u0432 \u043a\u043b\u0430\u0441\u0441 \u0444\u0438\u0433\u0443\u0440\u044b \u0431\u044b\u043b \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0430\u044f \u043d\u043e\u043c\u0435\u0440 \u0441\u043b\u043e\u044f, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d\u0430 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0430. \u0422\u0430\u043a \u0436\u0435 \u0431\u044b\u043b\u0438 \u0443\u0447\u0442\u0435\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f:<\/p>\n<ul>\n<li>\u0424\u0438\u0433\u0443\u0440\u0430 \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u0435\u0442\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438, \u0442.\u0435. \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u043b\u043e\u044f \u0435\u0439 \u043d\u0435 \u0432\u0430\u0436\u0435\u043d, \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u00ab-1\u00bb; <\/li>\n<li>\u041d\u0430 \u043e\u0434\u043d\u043e\u043c \u0441\u043b\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0434\u043d\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b, \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u043b\u043e\u0435\u0432 \u0447\u0435\u0440\u0435\u0437 \u00ab\/\u00bb, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0430 (\u00ab2\/3\/4\u00bb). <\/li>\n<\/ul>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0411\u043e\u043b\u0435\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438:<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/d52\/62a\/52a\/d5262a52acf64b8f9c64b1c754e90991.png\"\/>  <\/div>\n<\/div>\n<p>  \u041f\u0440\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0430\u0441\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0444\u0438\u0433\u0443\u0440, \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0438\u0445 \u043e\u0442 \u0441\u043b\u043e\u044f, \u0430 \u043f\u043e\u0441\u043b\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u043b\u043e\u0451\u0432 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u0444\u0438\u0433\u0443\u0440 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u0445 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u0430\u043b\u0438.<\/p>\n<h4>Custom View<\/h4>\n<p>  \u0423\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0437\u0430\u0439\u043d, \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e View \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u0431\u0430\u0440 \u0432 \u043e\u043a\u043d\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. \u041f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u0431\u0430\u0440 \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0432\u0438\u0434, \u0434\u0432\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0441\u043b\u0435\u0432\u0430 (\u0438\u043c\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0446\u0435\u043d\u043a\u0430) \u0438 \u0441\u043f\u0440\u0430\u0432\u0430 (\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0443). \u0422\u0430\u043a \u0436\u0435 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0443\u0441\u043b\u043e\u0432\u0438\u0439, \u0431\u044b\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u043d\u0435\u0448\u043d\u0438\u0439 \u0432\u0438\u0434 Progress Bar<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/355\/fc9\/aa1\/355fc9aa10e349b2ae494ead99346d4c.png\"\/>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 ProgressBarSuccessView<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">public class ProgressBarSuccessView extends View {      float mPercentValue = 0;     String mLeftTitleText = &quot;title&quot;;     int mWidth, mHeight;     final float mLeftTitleSize = 0.3f, mProgressBarSize = 0.5f, mRightTitleSize = 0.2f;     float mBorderMargin, mProgressMargin;     RectF mProgressBarBorder = new RectF(), mProgressBarRectangle = new RectF();     int mLeftTitleX, mLeftTitleY, mRightTitleX, mRightTitleY;     Paint mTitlePaint, mProgressPaint, mBorderProgressBarPaint;      private Rect mTitleTextBounds = new Rect();      public ProgressBarSuccessView(Context context) {         super(context);         init(null);     }      public ProgressBarSuccessView(Context context, AttributeSet attrs) {         super(context, attrs);         init(attrs);     }      public ProgressBarSuccessView(Context context, AttributeSet attrs, int defStyle) {         super(context, attrs, defStyle);         init(attrs);     }      @Override     protected void onSizeChanged(int w, int h, int oldw, int oldh) {         super.onSizeChanged(w, h, oldw, oldh);         mWidth = w;         mHeight = h;          mTitlePaint.getTextBounds(mLeftTitleText, 0, mLeftTitleText.length(), mTitleTextBounds);         mLeftTitleX = (int) ((w * mLeftTitleSize - mTitleTextBounds.width()) \/ 2 - mTitleTextBounds.left);         mLeftTitleY = (h - mTitleTextBounds.height()) \/ 2 - mTitleTextBounds.top;         mProgressBarBorder.set(w * mLeftTitleSize, 0 + mBorderMargin, w * (mLeftTitleSize + mProgressBarSize), h - mBorderMargin);     }      private void init(AttributeSet attrs) {         TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.ProgressBarTitle);         mLeftTitleText = a.getString(R.styleable.ProgressBarTitle_progress_bar_title);          mBorderMargin = getResources().getDimension(R.dimen.border_progress_bar_margin);         mProgressMargin = getResources().getDimension(R.dimen.progress_bar_margin);          mTitlePaint = new Paint(Paint.ANTI_ALIAS_FLAG);         mTitlePaint.setColor(getResources().getColor(R.color.title_level_success_view));         mTitlePaint.setStyle(Paint.Style.STROKE);         mTitlePaint.setTextSize(getResources().getDimension(R.dimen.progress_bar_title_text_size));         mTitlePaint.setTypeface(FontManager.BEBAS_REGULAR);          mBorderProgressBarPaint = new Paint(Paint.ANTI_ALIAS_FLAG);         mBorderProgressBarPaint.setColor(getResources().getColor(R.color.title_level_success_view));         mBorderProgressBarPaint.setStyle(Paint.Style.STROKE);         mBorderProgressBarPaint.setStrokeWidth(2);          mProgressPaint = new Paint(Paint.ANTI_ALIAS_FLAG);         mProgressPaint.setColor(getResources().getColor(R.color.progress_bar_level_success_view));         mProgressPaint.setStyle(Paint.Style.FILL);          setWillNotDraw(false);     }      public void setPercent(float percent) {         mPercentValue = Math.round(percent * 100f) \/ 100f;         invalidate();     }      @Override     protected void onDraw(Canvas canvas) {         super.onDraw(canvas);         float left, top, right, bottom;         left = mWidth * mLeftTitleSize + mProgressMargin - mBorderMargin;         top = 0 + mProgressMargin;         right = mPercentValue &gt; 0 ? left + mWidth * mProgressBarSize * mPercentValue - mProgressMargin - mBorderMargin : left;         bottom = mHeight - mProgressMargin;         mProgressBarRectangle.set(left, top, right, bottom);         canvas.drawText(mLeftTitleText, mLeftTitleX, mLeftTitleY, mTitlePaint);         canvas.drawRect(mProgressBarBorder, mBorderProgressBarPaint);         canvas.drawRect(mProgressBarRectangle, mProgressPaint);         mTitlePaint.getTextBounds(String.valueOf((int) (mPercentValue * 100)), 0, String.valueOf((int) (mPercentValue * 100)).length(), mTitleTextBounds);         mRightTitleX = (int) (mWidth - mTitleTextBounds.width() \/ 2 - mWidth * mRightTitleSize \/ 2);         mRightTitleY = (mHeight - mTitleTextBounds.height()) \/ 2 - mTitleTextBounds.top;         canvas.drawText(String.valueOf((int) (mPercentValue * 100)), mRightTitleX, mRightTitleY, mTitlePaint);     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0410\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u0431\u0430\u0440\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">public static AnimatorSet createProgressAnimationSet(ArrayList&lt;View&gt; views, float[] percentValues) {     AnimatorSet animatorSet = new AnimatorSet();     List&lt;Animator&gt; animatorList = new ArrayList&lt;&gt;(views.size());     for (int i = 0; i &lt; views.size(); i++){         float value = percentValues[i];         View view = views.get(i);         animatorList.add(createProgressAnimation(view, value));     }     animatorSet.playTogether(animatorList);     return animatorSet; }  private static ObjectAnimator createProgressAnimation(View view, float progressValue){     ObjectAnimator shapeProgressAnimator = ObjectAnimator.ofFloat(view, &quot;percent&quot;, 0, progressValue);     shapeProgressAnimator.setDuration((long) (1000 * progressValue));     shapeProgressAnimator.setInterpolator(new DecelerateInterpolator());     return shapeProgressAnimator; } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <b>\u041f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438<\/b><\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0436\u0438\u0437\u043d\u044c \u0438\u0433\u0440\u043e\u043a\u0443, \u0431\u044b\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u0430 \u043e\u0447\u043a\u0438. \u041e\u0447\u043a\u0438, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043d\u0430\u0447\u0438\u0441\u043b\u044f\u044e\u0442\u0441\u044f \u0437\u0430 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0443\u0440\u043e\u0432\u043d\u0435\u0439, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0447\u043a\u043e\u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u0437\u0432\u0435\u0437\u0434 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0437\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u043e\u0447\u043a\u0438 \u0438\u0433\u0440\u043e\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u0443\u044e \u0438\u0437 3 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043e\u043a: \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u0443, \u0435\u0451 \u0446\u0435\u043d\u0442\u0440 \u0438\u043b\u0438 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0434\u0438\u0443\u0441\u0430 \u0444\u0438\u0433\u0443\u0440\u044b.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u044b<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/9ac\/8d5\/24b\/9ac8d524b76a4c6d96e27ae7ae9daf4e.jpg\"\/><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/578\/895\/f95\/578895f95a6b40918101dcd89290e0fb.jpg\"\/><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/300\/186\/bd9\/300186bd937c45cba49feadd14195e0d.jpg\"\/><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/3a8\/f99\/e7c\/3a8f99e7cb60422282bd789dc9cba7f2.jpg\"\/>  <\/div>\n<\/div>\n<p>  <\/p>\n<h4>\u0418\u0442\u043e\u0433<\/h4>\n<p>  \u0412\u044b\u0432\u043e\u0434\u044b \u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0449\u0451 \u0440\u0430\u043d\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u044b\u043b\u043e\u0436\u0435\u043d\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e. \u041f\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u043c\u043d\u0435 \u043d\u0435\u043a\u043e\u0433\u0434\u0430 \u0431\u044b\u043b\u043e \u0432\u043f\u043b\u043e\u0442\u043d\u0443\u044e \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435\u043c \u0438\u0433\u0440\u044b. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u2013 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u044b \u0441\u0441\u044b\u043b\u043e\u043a \u043d\u0430 \u0438\u0433\u0440\u0443 \u0432 \u0441\u043e\u0446. \u0441\u0435\u0442\u044f\u0445. <br \/>  \u041d\u0430 \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u0435 Java \u044f \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043b \u0441\u043e\u0432\u0441\u0435\u043c \u043c\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0410 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u043b\u0443\u0447\u0448\u0435 \u043d\u0435 \u0440\u0430\u0441\u0442\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f, \u0442.\u043a. \u043d\u043e\u0432\u044b\u0445 \u043a\u043d\u0438\u0433 \u043d\u0435\u0442, \u0430 \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043a\u043d\u0438\u0433\u0430\u0445 \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<p>  \u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0441\u0442\u0430\u043d\u0435\u0442 \u043b\u0438 \u044d\u0442\u0430 \u0438\u0433\u0440\u0430 \u0445\u0438\u0442\u043e\u043c \u0438\u043b\u0438 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0430\u043b\u043e\u043c. \u0421\u0434\u0435\u043b\u0430\u0432 \u044d\u0442\u0443 \u0438\u0433\u0440\u0443, \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043e\u043f\u044b\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f Android-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u043c\u043d\u0435 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0437\u0430\u043d\u044f\u043b\u0441\u044f \u0442\u0435\u043c, \u0447\u0435\u043c \u0434\u0430\u0432\u043d\u043e \u0445\u043e\u0442\u0435\u043b. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e \u0441\u0432\u043e\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043f\u043e\u0434\u0445\u043e\u0434\u044f \u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443 \u0431\u043e\u043b\u0435\u0435 \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e \u0443 \u043c\u0435\u043d\u044f \u0435\u0449\u0435 \u043c\u043d\u043e\u0433\u043e \u0438\u0434\u0435\u0439 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u0441\u043a\u043e\u0440\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0443\u0432\u0438\u0434\u0438\u0442 \u043c\u0438\u0440.       <\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/274277\/\"> http:\/\/habrahabr.ru\/post\/274277\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>       <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/4f2\/53a\/797\/4f253a797c2e4a08a74ce59ecedc4733.png\" alt=\"image\"\/><\/p>\n<p>  \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0433\u0440\u044b \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0435\u0441\u044c \u043f\u0443\u0442\u044c \u043e\u0442 \u0437\u0430\u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0438\u0434\u0435\u0438 \u0434\u043e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-271355","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/271355","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=271355"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/271355\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=271355"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=271355"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=271355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}