{"id":2582,"date":"2021-12-13T00:00:00","date_gmt":"2021-12-13T00:00:00","guid":{"rendered":"https:\/\/appvinio.runbyit.com\/https-appvinio-com-pl-aktualnosci-android-studio-czego-nie-robic-aby-nie-tracic-pamieci\/"},"modified":"2023-11-07T12:51:44","modified_gmt":"2023-11-07T12:51:44","slug":"android-studio-czego-nie-robic-aby-nie-tracic-pamieci","status":"publish","type":"post","link":"https:\/\/appvinio.com\/pl\/android-studio-czego-nie-robic-aby-nie-tracic-pamieci\/","title":{"rendered":"Android studio &#8211; czego nie robi\u0107, aby nie traci\u0107 pami\u0119ci"},"content":{"rendered":"<p data-renderer-start-pos=\"493\"><span id=\"8df5eae1-deda-4c88-aaee-5818d77c1c49\" class=\"inline-highlight\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"8df5eae1-deda-4c88-aaee-5818d77c1c49\">AS (Android Studio) nie jest kojarzony w opinii publicznej jako najszybsze narz\u0119dzie do pracy. Jest ci\u0119\u017ckie i dodatkowo zabiera wi\u0119cej pami\u0119ci ni\u017c znany z tego o wiele bardziej Chrome.<\/span><\/p>\n<p data-renderer-start-pos=\"679\"><span id=\"8df5eae1-deda-4c88-aaee-5818d77c1c49\" class=\"inline-highlight\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"8df5eae1-deda-4c88-aaee-5818d77c1c49\">Dlatego istotnym jest aby nie dobija\u0107 swojego AS jeszcze bardziej, dodaj\u0105c mu wi\u0119cej <span id=\"d9b4f073-7b10-4bd5-9784-53c723fac338\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"d9b4f073-7b10-4bd5-9784-53c723fac338\">zada\u0144<\/span>, kt\u00f3rymi musi si\u0119 zajmowa\u0107.<\/span><\/p>\n<p data-renderer-start-pos=\"799\">W dw\u00f3ch z naszych najwi\u0119kszych projekt\u00f3w mieli\u015bmy pomys\u0142, \u017ceby doda\u0107 plik zwany <u data-renderer-mark=\"true\">logic.dart<\/u>. Mia\u0142 si\u0119 on zajmowa\u0107 wszystkimi naszymi importami tak, <span id=\"0bf7d1b2-2a3a-4d57-af44-fab625e10574\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"0bf7d1b2-2a3a-4d57-af44-fab625e10574\">aby\u015bmy my nie musieli <\/span><span id=\"d4c13a90-4678-4639-bf18-d255da49fa47\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"d4c13a90-4678-4639-bf18-d255da49fa47\"><span id=\"0bf7d1b2-2a3a-4d57-af44-fab625e10574\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"0bf7d1b2-2a3a-4d57-af44-fab625e10574\">o <\/span><\/span><span id=\"0bf7d1b2-2a3a-4d57-af44-fab625e10574\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"0bf7d1b2-2a3a-4d57-af44-fab625e10574\">nich my\u015ble\u0107<\/span>. Wrzucali\u015bmy do niego wszystkie pliki `import` oraz `part` kt\u00f3re odnosi\u0142y si\u0119 do naszych zasob\u00f3w zar\u00f3wno zewn\u0119trznych jak i wewn\u0119trznych.<\/p>\n<p data-renderer-start-pos=\"1121\"><span id=\"5ecccd99-cfd7-476b-b084-318ed4a89bd8\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"5ecccd99-cfd7-476b-b084-318ed4a89bd8\">W teorii dzia\u0142a\u0142o to dobrze &#8211; nie musieli\u015bmy<\/span> si\u0119 martwi\u0107 importowaniem, wszystko mieli\u015bmy dost\u0119pne z miejsca na ekranie importowali\u015bmy po prostu jeden plik &#8211; logic.dart, pliki by\u0142y <span id=\"52407499-3df3-4e5c-9fd0-994bc2cca58f\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"52407499-3df3-4e5c-9fd0-994bc2cca58f\">mniejsze i bez<\/span> zb\u0119dnych linijek.<\/p>\n<p data-renderer-start-pos=\"1336\"><span id=\"9e11e955-fa12-4590-8d06-a8c63b3ab6af\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"9e11e955-fa12-4590-8d06-a8c63b3ab6af\">Okaza\u0142o si\u0119 jednak,<span id=\"c498a5bd-513f-48b5-8a64-9b681be2ef29\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"c498a5bd-513f-48b5-8a64-9b681be2ef29\"> \u017ce<\/span> otwarcie ka\u017cdego pliku zawieraj\u0105cego logik\u0119 aplikacji wymaga\u0142o kilku sekundowego oczekiwania<\/span>. Cz\u0119sto trzeba by\u0142o te\u017c resetowa\u0107 ca\u0142e Android Studio za pomoc\u0105 popularnego przycisku `invalidate caches \/ restart`, a samo AS zacz\u0119\u0142o pobiera\u0107 makabryczne ilo\u015bci pami\u0119ci systemowej <span id=\"4ac18d3e-de44-4dfb-a124-38a9a6a7199a\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"4ac18d3e-de44-4dfb-a124-38a9a6a7199a\">osi\u0105gaj\u0105c nawet 9 GB.<\/span><\/p>\n<p data-renderer-start-pos=\"1336\"><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-838\" src=\"https:\/\/appvinio.com\/wp-content\/uploads\/9acb0701-aa4a-4c8c-a4a7-33091d849889.png\" alt=\"\" width=\"1000\" height=\"281\" \/><\/p>\n<p data-renderer-start-pos=\"1660\"><span id=\"78cdb405-2058-45b7-90b1-24e623d6f56f\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"78cdb405-2058-45b7-90b1-24e623d6f56f\">Zdawa\u0142o<\/span> si\u0119 wr\u0119cz ci\u0105gle chcie\u0107 <span id=\"e3110b4b-c123-4211-940f-96302813f49d\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"e3110b4b-c123-4211-940f-96302813f49d\">wi\u0119cej<\/span> pami\u0119ci do momentu, a\u017c oczekiwanie na podpowied\u017a okazywa\u0142o si\u0119 trwa\u0107 d\u0142u\u017cej, ni\u017c napisanie ca\u0142ego kodu bez wsparcia programu.<\/p>\n<p data-renderer-start-pos=\"1826\"><span id=\"db1d8360-c0f3-45f6-8ec2-57bd90491eea\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"db1d8360-c0f3-45f6-8ec2-57bd90491eea\">O\u015bwiecenie dotar\u0142o do nas dopiero przy wytworzeniu nowej architektury, kt\u00f3rej u\u017cywamy do teraz. Wymaga\u0142a ona wi\u0119kszego podzia\u0142u logiki z naszej strony. Nie mogli\u015bmy wi\u0119c pozwoli\u0107 sobie na przechowywanie wszystkiego w jednym miejscu. <\/span>Nasze nowe projekty sta\u0142y si\u0119 niepor\u00f3wnywalnie l\u017cejsze, <span id=\"fe4df0d6-e5a0-4846-8f66-aa11c23e73b1\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"fe4df0d6-e5a0-4846-8f66-aa11c23e73b1\">a po ca\u0142ym dniu widoczna by\u0142a r\u00f3\u017cnica w wygodzie pracy.<\/span><\/p>\n<p data-renderer-start-pos=\"2172\"><span id=\"c4e5bc93-92f2-447d-99d4-1145679a30e3\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"c4e5bc93-92f2-447d-99d4-1145679a30e3\">Nie by\u0142 to dla nas oczywisty pow\u00f3d tak zasobo\u017cernego dzia\u0142ania aplikacji. Dopiero po uko\u0144czeniu kilku projekt\u00f3w w nowej architekturze doszli\u015bmy do wniosku, \u017ce musia\u0142 to by\u0107 nasz nieszcz\u0119sny plik `logic.dart`.<\/span> Wygl\u0105da na to, \u017ce je\u017celi AS<span id=\"6a5dd647-86da-45f4-9c87-da8ee4845c12\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"6a5dd647-86da-45f4-9c87-da8ee4845c12\"> <\/span>posiada zbyt du\u017c\u0105 ilo\u015b\u0107 oznacze\u0144 segmentacji kodu<span id=\"4ba3ade4-1cfc-45e5-8f61-a1ace016f06b\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"4ba3ade4-1cfc-45e5-8f61-a1ace016f06b\"> (czy raczej, ilo\u015b\u0107 linijek do jakiej dany plik ma dost\u0119p<span id=\"f1a7a511-e678-4e57-a582-dd6b3dbed1d4\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"f1a7a511-e678-4e57-a582-dd6b3dbed1d4\">), <\/span><\/span><span id=\"f1a7a511-e678-4e57-a582-dd6b3dbed1d4\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"f1a7a511-e678-4e57-a582-dd6b3dbed1d4\">t<\/span>o zaczyna dzia\u0142a\u0107 zdecydowanie wolniej. <span id=\"f5895fa8-4b4f-46d4-9031-09f10142f489\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"f5895fa8-4b4f-46d4-9031-09f10142f489\">Prawdopodobnie Android Studio pr\u00f3bowa\u0142<\/span>o wszystkie te pliki przechowywa\u0107 w pami\u0119ci. <span id=\"64a2274d-5677-4ff7-aadd-a5262ed21fc1\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"64a2274d-5677-4ff7-aadd-a5262ed21fc1\">Dodatkowo, sprawy nie <span id=\"9fcc3b92-a631-477e-8024-2fc0844f95df\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"9fcc3b92-a631-477e-8024-2fc0844f95df\">u\u0142atwi<\/span>a fakt, \u017ce `dart analyzer` zdaje si\u0119 tak\u017ce dzia\u0142a\u0107 tym wolniej, im wi\u0119cej b\u0142\u0119d\u00f3w wyst\u0119puje w plikach kt\u00f3re s\u0105 posegmentowane!<\/span><\/p>\n<p data-renderer-start-pos=\"2797\"><span id=\"08ff1fee-64d8-4495-9f95-7bee243f13c6\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"08ff1fee-64d8-4495-9f95-7bee243f13c6\">W celu naprawienia tego b\u0142\u0119du nale\u017cy pr\u00f3bowa\u0107 ogranicza\u0107 ilo\u015b\u0107 segmentacji plik\u00f3w. Nie powinno by\u0107 problemu z posiadaniem jednego pliku `bloc`, `state` oraz `event`, jako element\u00f3w segmentowanych. <\/span>A ju\u017c napewno <span id=\"fc323ace-54a3-49c8-a3e2-12879705ec26\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"fc323ace-54a3-49c8-a3e2-12879705ec26\">nie warto jest<\/span> wrzuca\u0107 w ten spos\u00f3b rzeczy kt\u00f3re wcale tego nie wymagaj\u0105!<\/p>\n<p data-renderer-start-pos=\"3083\">Jeste\u015bmy te\u017c \u015bwiadomi, \u017ce nie jest to co\u015b,<span id=\"bbfe275d-66bd-4d76-8455-23afa70471ca\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"bbfe275d-66bd-4d76-8455-23afa70471ca\"> co <\/span>warto <span id=\"dab5794e-b685-4433-9777-9aacef755a80\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"dab5794e-b685-4433-9777-9aacef755a80\">utrzymywa\u0107. Kod<\/span> powinno si\u0119 segmentowa\u0107 tylko je\u017celi jest ku temu dobry pow\u00f3d<span id=\"702758f2-a4ac-4b57-b318-7b2f1a802aef\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"702758f2-a4ac-4b57-b318-7b2f1a802aef\">.<\/span> Ale po tej zmianie, ilo\u015b\u0107 u\u017cywanych zasob\u00f3w <span id=\"eb9fe976-1072-4952-8e13-35c671a8b089\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"eb9fe976-1072-4952-8e13-35c671a8b089\">w naszym Task managerze<\/span> spad\u0142a o ponad 6 GB RAM\u2019u!<\/p>\n<div class=\"rich-media-item mediaSingleView-content-wrap image-center sc-iAyFgw kXEeDN sc-kkGfuU iONmFl\" data-layout=\"center\" data-node-type=\"mediaSingle\">\n<div class=\"sc-kEYyzF drNmUE\">\n<div class=\"new-file-experience-wrapper sc-bZVNgQ kkcsbC sc-lljKfs iAuxTD\" data-testid=\"media-card-view\"><img decoding=\"async\" class=\"aligncenter wp-image-840\" src=\"https:\/\/appvinio.com\/wp-content\/uploads\/16cb7649-8ce8-4973-9775-3f0d55a4c45f.png\" alt=\"\" width=\"1000\" height=\"237\" \/><\/div>\n<div data-testid=\"media-card-view\">\n<p data-renderer-start-pos=\"3313\"><span id=\"702758f2-a4ac-4b57-b318-7b2f1a802aef\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"702758f2-a4ac-4b57-b318-7b2f1a802aef\">Pozwoli\u0142o nam to trafi\u0107 na inny problem<\/span>. <span id=\"718dbfcf-f417-4c41-a874-33f670caf569\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"718dbfcf-f417-4c41-a874-33f670caf569\">Wielu developerom<\/span> znana jest pewnie paczka o nazwie `<span id=\"5a8ffaa8-5c2e-40b5-8eb3-6877fc5beb60\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"5a8ffaa8-5c2e-40b5-8eb3-6877fc5beb60\">moor`. Tym<\/span> kt\u00f3ry jej nie <span id=\"ad3fbf4e-4435-48ce-b6ce-47a3ab510390\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"ad3fbf4e-4435-48ce-b6ce-47a3ab510390\">znaj\u0105 &#8211; jest<\/span> to <span id=\"2fa098f7-7d9d-451e-8614-bdef63fb4875\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"2fa098f7-7d9d-451e-8614-bdef63fb4875\">biblioteka, <\/span>kt\u00f3ra s\u0142u\u017cy do zarz\u0105dzania baz\u0105 <span id=\"b086727a-9ef6-446b-abef-2fdcc3c6a924\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"b086727a-9ef6-446b-abef-2fdcc3c6a924\">danych oraz<\/span> jej ORM. <span id=\"7cccde6c-d5c8-4b2c-9851-9f9ec2d4f6c7\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"7cccde6c-d5c8-4b2c-9851-9f9ec2d4f6c7\">Problem, <\/span><span id=\"254e689f-6659-47f5-986a-a21044d7f631\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"254e689f-6659-47f5-986a-a21044d7f631\">na jaki natrafili\u015bmy w jednym z naszych projekt\u00f3w, <span id=\"b5f838a9-9233-44ff-babf-98730680abe5\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"b5f838a9-9233-44ff-babf-98730680abe5\">wymaga\u0142 <\/span><\/span><span id=\"b5f838a9-9233-44ff-babf-98730680abe5\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"b5f838a9-9233-44ff-babf-98730680abe5\">zapewnienia mo\u017cliwo\u015bci u\u017cywania aplikacji <\/span>w trybie offline<span id=\"254e689f-6659-47f5-986a-a21044d7f631\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"254e689f-6659-47f5-986a-a21044d7f631\"> oraz synchronizacji z serwerem.<\/span><\/p>\n<p data-renderer-start-pos=\"3674\">Pliki, kt\u00f3re s\u0142u\u017c\u0105 jako tabele dla naszej bazy danych (jest ich 20), <u data-renderer-mark=\"true\"><span id=\"afbe358a-a7f4-44ff-8896-354381a28189\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"afbe358a-a7f4-44ff-8896-354381a28189\">musz\u0105<\/span><\/u><span id=\"afbe358a-a7f4-44ff-8896-354381a28189\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"afbe358a-a7f4-44ff-8896-354381a28189\"> by\u0107 zdefiniowane w tym samym pliku, w kt\u00f3rym jest zdefiniowana nasza baza danych. Wymaga to od nas importowania <\/span><strong data-renderer-mark=\"true\"><span id=\"afbe358a-a7f4-44ff-8896-354381a28189\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"afbe358a-a7f4-44ff-8896-354381a28189\">ca\u0142ego <\/span><\/strong><span id=\"afbe358a-a7f4-44ff-8896-354381a28189\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"afbe358a-a7f4-44ff-8896-354381a28189\">wygenerowanego kodu i definicji tabel wraz z ka\u017cdym obiektem.<\/span><\/p>\n<p data-renderer-start-pos=\"3931\">Powoduje to <span id=\"4bb32383-9821-492c-9620-25bf2e9a4f29\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"4bb32383-9821-492c-9620-25bf2e9a4f29\">jednak wygenerowanie<\/span> olbrzymiego, licz\u0105cego 13,500 linijek kodu-<span id=\"aadddb5b-b4a2-4915-bb34-a7cf4dc79301\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"aadddb5b-b4a2-4915-bb34-a7cf4dc79301\">potwora<\/span> (nie licz\u0105c samych plik\u00f3w z baz\u0105 danych oraz jej tablicami!), kt\u00f3ry zjada nasz\u0105 pami\u0119\u0107.<\/p>\n<p>Nie pomaga dodanie wygenerowanego pliku, jako zignorowanego do <em>analysis_options.yaml<\/em>, poniewa\u017c kod i tak musi interpretowa\u0107 za\u0142\u0105czone pliki. Jedynym tego obej\u015bciem jest segmentacja plik\u00f3w tak, \u017ce logicznie s\u0105 one tym samym.<\/p>\n<p data-renderer-start-pos=\"4329\"><span id=\"086df741-b272-4db3-8ccb-ce4d2f7f61be\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"086df741-b272-4db3-8ccb-ce4d2f7f61be\">Aktualnie,<\/span> w momencie pisania tego artyku\u0142u<span id=\"fef64058-0ead-4c38-a301-974cfe55be98\" class=\"inline-highlight\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"fef64058-0ead-4c38-a301-974cfe55be98\"> trwaj\u0105 prace,<\/span> kt\u00f3re maj\u0105 zaradzi\u0107 temu <span id=\"ec2e2435-4a16-4d66-b0fb-be4b3527dd2f\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"ec2e2435-4a16-4d66-b0fb-be4b3527dd2f\">problemowi. Mog\u0105<\/span> one zaj\u0105\u0107 jednak sporo czasu. Warto mie\u0107 to na uwadze, kiedy zastanawiamy si\u0119 nad wyborem biblioteki do bazy <span id=\"a77fe740-7f10-4e89-888f-463833cd6fe6\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"a77fe740-7f10-4e89-888f-463833cd6fe6\">danych. Nie <\/span>jest to mo\u017ce wada, kt\u00f3ra ca\u0142kowicie skre\u015bla `moor`,<span id=\"71fe1cc7-030c-44b9-8c00-45808fb900ab\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"71fe1cc7-030c-44b9-8c00-45808fb900ab\"> j<\/span>ako wspania\u0142\u0105 paczk\u0119 (on sam poprawi\u0142 ju\u017c to co mnie osobi\u015bcie najbardziej razi\u0142o &#8211; generowanie serializacji json\u2019a), ale dobrze wiedzie\u0107 co przyczynia si\u0119 do takiego dzia\u0142ania naszego <span id=\"41aa095b-154d-4951-b5f6-63e8a818d63c\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"41aa095b-154d-4951-b5f6-63e8a818d63c\">AS. Bibliotek takich, jak ta mo\u017ce by\u0107 wi\u0119cej.<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>AS (Android Studio) nie jest kojarzony w opinii publicznej jako najszybsze narz\u0119dzie do pracy. Jest ci\u0119\u017ckie i dodatkowo zabiera wi\u0119cej pami\u0119ci ni\u017c znany z tego o wiele bardziej Chrome. Dlatego istotnym jest aby nie dobija\u0107 swojego AS jeszcze bardziej, dodaj\u0105c mu wi\u0119cej zada\u0144, kt\u00f3rymi musi si\u0119 zajmowa\u0107. W dw\u00f3ch z naszych najwi\u0119kszych projekt\u00f3w mieli\u015bmy pomys\u0142, [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[60],"tags":[],"class_list":["post-2582","post","type-post","status-publish","format-standard","hentry","category-aktualnosci"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/posts\/2582","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/comments?post=2582"}],"version-history":[{"count":1,"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/posts\/2582\/revisions"}],"predecessor-version":[{"id":2602,"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/posts\/2582\/revisions\/2602"}],"wp:attachment":[{"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/media?parent=2582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/categories?post=2582"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/tags?post=2582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}