{"id":1915,"date":"2023-06-30T23:19:25","date_gmt":"2023-06-30T14:19:25","guid":{"rendered":"http:\/\/batmask.dothome.co.kr\/?p=1915"},"modified":"2023-06-30T23:19:25","modified_gmt":"2023-06-30T14:19:25","slug":"android%ec%9d%98-%ec%8b%9c%ea%b0%84%ec%97%90-%eb%8c%80%ed%95%b4","status":"publish","type":"post","link":"http:\/\/batmask.net\/index.php\/2023\/06\/30\/1915\/","title":{"rendered":"Android\uc758 \uc2dc\uac04\uc5d0 \ub300\ud574"},"content":{"rendered":"\n<p>\uc77c\ub2e8, \ub0a0\uc9dc \ub144, \uc6d4, \uc77c, \uc694\uc77c\uc5d0 \ub300\ud574\uc120 \uc790\uc138\ud788 \ub2e4\ub8e8\uc9c0 \uc54a\ub294\ub2e4. Date\ub77c\ub294\uac8c \ucc38 \ubcf5\uc7a1 \ubbf8\ubb18\ud55c \ub188\uc774\ub77c\uc11c. \uc774 \ub140\uc11d\uc744 \uc81c\uc678\ud558\uba74 \uc880 \ub2e8\uc21c\ud574\uc9c0\ub294\ub370, \ub098\ub294 \ud56d\uc0c1 <a href=\"https:\/\/developer.android.com\/reference\/java\/lang\/System#currentTimeMillis()\">System.currentTimeMillis()<\/a> \ub9cc \uc774\uc6a9\ud574\uc654\ub2e4. \uc774\uac74 \ubb50 \ub2e4\ub4e4 \uc54c\uaca0\uc9c0\ub9cc, 1970\ub144 1\uc6d4 1\uc77c \uc790\uc815\uc744 \uae30\uc900\uc73c\ub85c \ud604\uc7ac\uae4c\uc9c0 \ud750\ub978 \uc2dc\uac04\uc744 milliseconds\ub85c \ub3cc\ub824\uc900\ub2e4. \ub300\ubd80\ubd84\uc758 \uacbd\uc6b0 \uc774\uac78\ub85c \ud574\uacb0\uc774 \ub418\uae34 \ud558\ub294\ub370, \ud0c0\uc774\uba38\ub97c \ub9cc\ub4e4\uba74\uc11c \uc880 \ub354 \uc720\uc6a9\ud55c \uac83\ub4e4\uc774 \uc788\ub354\ub77c. \uc774\uc5d0 \ub300\ud574 <a href=\"https:\/\/ivanatanova.medium.com\/timers-and-background-work-6dec9bfd4e88\">\uc798 \uc815\ub9ac\ub41c \uc601\ubb38 \ud3ec\uc2a4\ud305\uc774 \uc788\uc73c\ub2c8 \ucc38\uc870<\/a>. \ub098\ub3c4 \uc774 \ud3ec\uc2a4\ud305\uc744 \ucc38\uace0\ub85c \uc815\ub9ac\ud574 \ub193\uc73c\ub824\uace0 \ud55c\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Wall Clock<\/h3>\n\n\n\n<p> \uc6b0\ub9ac\ub9d0\ub85c \ud558\uba74 \ubcbd\uc2dc\uacc4\ub2e4. \uc55e\uc5d0\uc11c \ub9d0\ud55c  <strong>System.currentTimeMillis()<\/strong> \uac00 \ubc14\ub85c \uadf8\uac83. \ud604\uc7ac\uc758 \ub0a0\uc9dc\uc640 \uc2dc\uac04\uc744 \uc54c \uc218 \uc788\ub294 \uac12\uc73c\ub85c, Date(milliseconds: Long)\ub97c \uc774\uc6a9\ud574\uc11c \ub0a0\uc9dc\ub85c \ubcc0\ud658\ud560 \uc218\ub3c4 \uc788\ub2e4. (\ub2e4\ub9cc, <a href=\"https:\/\/d2.naver.com\/helloworld\/645609\">Date\ub098 Calendar\ub4f1\uc758 \ubb38\uc81c\ub85c \uc778\ud574<\/a> Java8 \uc774\ud6c4\ub85c\ub294 LocalDate, LocalDateTime\uc774 \uc81c\uacf5\ub418\uc5b4 \uc0ac\uc6a9\ud558\ub3c4\ub85d \ub418\uc5b4\uc788\ub2e4\uace0 \ud55c\ub2e4.)  \ubb38\uc81c\ub294 \uc0ac\uc6a9\uc790\uac00 \ud0c0\uc784\uc874\uc744 \ubc14\uafb8\uac70\ub098, \uc2dc\uac04\uc744 \ubcc0\uacbd\ud558\uba74 \uac19\uc774 \ubcc0\uacbd\ub41c\ub2e4\ub294 \uc810\uc774\ub2e4.( \ud504\ub85c\uadf8\ub798\ubc0d \uc801\uc73c\ub85c\ub3c4 setCurrentTimeMillis(long)\uc774 \uc874\uc7ac\ud558\ub2c8\uae4c. ) \uc2e4\ud589\uc2dc\uac04 \uccb4\ud06c\ub4f1\uc744 \uc704\ud574 \uc790\uc8fc \uc0ac\uc6a9\ud574 \uc654\uc9c0\ub9cc, \uc5c4\ubc00\ud788 \ub9d0\ud574 \uac70\uae30\uc5d0 \uc4f0\uae30 \uc801\ud569\ud55c \uac83\uc774\ub77c\uace0 \ubcf4\uae30 \uc5b4\ub835\ub2e4. calendar\ub098 Alarm clock\ucc98\ub7fc \ud604\uc2e4\uc758 \uc2dc\uac04\uacfc \uc5f0\uad00\ub41c \uacbd\uc6b0\uc5d0 \uc0ac\uc6a9\ud558\ub294\uac8c \ub9de\ub2e4.<\/p>\n\n\n\n<p> \uc548\ub4dc\ub85c\uc774\ub4dc\uc5d0\uc120 \uc2dc\uac04\uc774 \ubcc0\uacbd\ub41c\uacbd\uc6b0, <a href=\"https:\/\/developer.android.com\/reference\/android\/content\/Intent#ACTION_TIME_TICK\">ACTION_TIME_TICK<\/a>, <a href=\"https:\/\/developer.android.com\/reference\/android\/content\/Intent#ACTION_TIME_CHANGED\">ACTION_TIME_CHANGED<\/a>, <a href=\"https:\/\/developer.android.com\/reference\/android\/content\/Intent#ACTION_TIMEZONE_CHANGED\">ACTION_TIMEZONE_CHANGED <\/a>\uc758 Intent\ub97c broadcast receiver\uc5d0\uc11c \ubc1b\uc544 \ubcc0\uacbd\uc2dc \uc54c \uc218 \uc788\ub2e4. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">CPU Clock<\/h3>\n\n\n\n<p> \ub9d0 \uadf8\ub300\ub85c CPU time\uc744 \uce21\uc815\ud55c\ub2e4. \uc5ec\uae30\uc11c CPU time\uc740 \ubd80\ud305 \uc774\ud6c4\ub85c \ud750\ub978 \uc2dc\uac04\uc744 \ub9d0\ud55c\ub2e4. \uc0ac\uc6a9\ud558\ub294 \ud568\uc218\ub294 <a href=\"https:\/\/developer.android.com\/reference\/android\/os\/SystemClock#uptimeMillis()\"><strong>uptimeMillis()<\/strong><\/a> \uc774\ub2e4. \uc774\uac83\uc740 \ubd80\ud305\ud6c4 \ud750\ub978 \uc2dc\uac04\uc744 milliseconds\ub85c \uc54c\ub824\uc900\ub2e4. \ubb38\uc81c\ub294 \uc2dc\uc2a4\ud15c\uc774 \ub525\uc2ac\ub9bd \uc0c1\ud0dc\ub85c \ub4e4\uc5b4\uac00\uba74, \uc774\uac83\ub3c4 \uac19\uc774 \uba48\ucd98\ub2e4\ub294 \uc810\uc774\ub2e4. Thread.sleep(millis)\ub098 Object.wait(millis)\ub3c4 \uc774\uac78 \uc0ac\uc6a9\ud55c\ub2e4\uace0 \ud55c\ub2e4. \uc2ac\ub9bd\uacfc \uc0c1\uad00\uc5c6\ub294 \uc778\ud130\ubc8c \uce21\uc815\uc6a9\uc73c\ub85c \uc801\ub2f9\ud558\ub2e4. \ub300\ubd80\ubd84\uc758 timestamp\uc6a9\ub3c4\ub85c \uc801\ub2f9\ud558\ub2e4\uace0 \ud55c\ub2e4. \uc2ac\ub9bd\uc5d0 \ub4e4\uc5b4\uac00\uba74 \uc548\ub418\ub2c8\uae4c, \ubc31\uadf8\ub77c\uc6b4\ub4dc \ud0c0\uc774\uba38\ub098, \uc54c\ub78c\ub4f1\uc5d0\ub294 \ubd80\uc801\uaca9.<\/p>\n\n\n\n<p> \uadf8\ub7fc \ub525\uc2ac\ub9bd\uae4c\uc9c0 \uce21\uc815\ud558\ub824\uba74 \uc5b4\ub5bb\uac8c \ud574\uc57c\ud558\ub098?<strong> <a href=\"https:\/\/developer.android.com\/reference\/android\/os\/SystemClock#elapsedRealtime()\">elapsedRealtime()<\/a> <\/strong>\uc744 \uc0ac\uc6a9\ud558\uba74 \ub41c\ub2e4. \uc774\uac74 \uc2ac\ub9bd\uc5d0 \ub4e4\uc5b4\uac00\uc11c CPU\uac00 \uba48\ucdb0\ub3c4 \uacc4\uc18d \uc791\ub3d9\ud55c\ub2e4. \uadf8\ub798\uc11c \uc77c\ubc18\uc801\uc778 \uc778\ud130\ubc8c \uce21\uc815\uc6a9\uc73c\ub85c\ub294 \ubb34\uc870\uac74 \uc774\uac70\uc0ac\uc6a9. AlarmManager\ub294 \uc2ac\ub9bd\uc0c1\ud0dc\uc5d0\uc11c\ub3c4 \uae68\uc6b8 \uc218\uac00 \uc788\ub294\ub370, \uc774 \ub54c \uc2dc\uac04 \uc124\uc815\uc5d0 \uc0ac\uc6a9\ud558\ub294\uac8c System.currentMillis()\uc544\ub2c8\uba74 elapsedRealtime()\uc774\ub2e4. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\"> sleep \uc0ac\uc6a9\uc2dc \ud56d\uc0c1 \uc8fc\uc758\ud574\uc57c\ud560 \uc810<\/h3>\n\n\n\n<p> sleep()\uc774\ub098 delay()\ub294 \ud3c9\uc18c\uc5d0\ub3c4 \uc790\uc8fc \uc0ac\uc6a9\ub418\ub294 \ud568\uc218\ub4e4\uc778\ub370, \uc55e\uc5d0\uc11c \ub9d0\ud588\ub4ef uptimeMillis()\ub97c \uc0ac\uc6a9\ud55c\ub2e4. \uadf8\ub9d0\uc740 CPU\uac00 \uc7a0\ub4e4\uba74 \uae68\uc5b4\ub098\uc9c0 \uc54a\ub294\ub2e4\ub294 \uc598\uae30\ub2e4. \uc77c\ubc18\uc801\uc73c\ub85c \uc0c1\uad00 \uc5c6\uc744 \uc218\ub3c4 \uc788\uc9c0\ub9cc, \ub514\ubc14\uc774\uc2a4\uc758 \ub525\uc2ac\ub9bd\uc5d0 \uc0c1\uad00\uc5c6\uc774 \uc791\ub3d9\uc2dc\ud0a4\uace0 \uc2f6\ub2e4\uba74, AlarmManager\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4. &#8230;\uc790\uafb8 \ub2e8 \ud558\ub098\uc758 \uc815\ub2f5\uc774 \uc5c6\uace0 \ub3cc\uace0 \ub3c4\ub294\uac70 \uac19\uc740\ub370, AlarmManager\ub3c4 \ubb38\uc81c\uac00 \uc788\ub2e4. \uc7ac\ubd80\ud305\uc2dc elapsedRealtime()\uc740 \ub0a0\ub77c\uac04\ub2e4\ub294 \uac70\ub2e4. \uc774\uacbd\uc6b0, BOOT_COMPLETED Intent\ub97c \ubc1b\uc544\uc11c \uc7ac\ubd80\ud305\uc744 \uac10\uc9c0\ud558\uace0 \ub2e4\uc2dc \ucc98\ub9ac\ud574\uc8fc\uba74 \ub41c\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\ub9c8\ubb34\ub9ac<\/h3>\n\n\n\n<p> \uc2dc\uac04\uc740 \ubb50 \uc774\uc815\ub3c4\ub85c \uc815\ub9ac\ub41c\ub2e4. \ud06c\uac8c \uc5b4\ub835\uc9c4 \uc54a\uc740\ub370, \ub098\ub294 \uadf8\ub0e5 \ubb49\ub6b1\uadf8\ub824\uc11c System.currentTimeMillis()\ub9cc \uc368\uc654\ub2e4. \uac04\ub2e8\ud55c \uc791\uc5c5\ub4e4\uc5d0\ub294 \ubb38\uc81c\uac00 \uc5c6\uc5c8\uae34\ud55c\ub370, \uc774\ub807\uac8c \ud55c\ub2e8\uacc4 \uc2a4\ud15d\uc5c5 \ud558\ub294\uac70\uc9c0. \uadf8\ub9ac\uace0 \ub0a0\uc9dc\uc5d0 \ub300\ud55c\uac74&#8230; \uc774\uac83\ub3c4 \uc9c4\uc9dc \uc815\ub9ac\uac00 \ud544\uc694\ud55c\ub370 \ubcc4\ub85c \ub2e4\ub8e8\uace0 \uc2f6\uc9c0 \uc54a\ub2e4. \ub354\ub7ec\uc6cc \u314b\u314b\u314b \ub05d.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc77c\ub2e8, \ub0a0\uc9dc \ub144, \uc6d4, \uc77c, \uc694\uc77c\uc5d0 \ub300\ud574\uc120 \uc790\uc138\ud788 \ub2e4\ub8e8\uc9c0 \uc54a\ub294\ub2e4. Date\ub77c\ub294\uac8c \ucc38 \ubcf5\uc7a1 \ubbf8\ubb18\ud55c \ub188\uc774\ub77c\uc11c. \uc774 \ub140\uc11d\uc744 \uc81c\uc678\ud558\uba74 \uc880 \ub2e8\uc21c\ud574\uc9c0\ub294\ub370, \ub098\ub294 \ud56d\uc0c1 System.currentTimeMillis() \ub9cc \uc774\uc6a9\ud574\uc654\ub2e4. \uc774\uac74 \ubb50 \ub2e4\ub4e4 \uc54c\uaca0\uc9c0\ub9cc, 1970\ub144 1\uc6d4 1\uc77c \uc790\uc815\uc744 \uae30\uc900\uc73c\ub85c \ud604\uc7ac\uae4c\uc9c0 \ud750\ub978 \uc2dc\uac04\uc744 milliseconds\ub85c \ub3cc\ub824\uc900\ub2e4. \ub300\ubd80\ubd84\uc758 \uacbd\uc6b0 \uc774\uac78\ub85c \ud574\uacb0\uc774 \ub418\uae34 \ud558\ub294\ub370, \ud0c0\uc774\uba38\ub97c \ub9cc\ub4e4\uba74\uc11c \uc880 \ub354 \uc720\uc6a9\ud55c <a href=\"http:\/\/batmask.net\/index.php\/2023\/06\/30\/1915\/\" class=\"btn btn-link continue-link\">\ub354 \uc77d\uae30<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24,5],"tags":[186,319,320,322,317,316,283,321,318],"class_list":["post-1915","post","type-post","status-publish","format-standard","hentry","category-note4reference","category-android","tag-android-2","tag-cpu-clock","tag-currenttimemillis","tag-elapsedrealtime","tag-sleep","tag-time","tag-timer","tag-uptimemillis","tag-wall-clock"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts\/1915","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/comments?post=1915"}],"version-history":[{"count":3,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts\/1915\/revisions"}],"predecessor-version":[{"id":1918,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts\/1915\/revisions\/1918"}],"wp:attachment":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/media?parent=1915"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/categories?post=1915"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/tags?post=1915"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}