{"id":8056,"date":"2024-03-15T11:03:05","date_gmt":"2024-03-15T02:03:05","guid":{"rendered":"\/blog\/?p=8056"},"modified":"2024-03-15T15:11:22","modified_gmt":"2024-03-15T06:11:22","slug":"flutter-%ea%b8%b0%eb%b3%b8-%ea%b0%9c%eb%b0%9c%ed%99%98%ea%b2%bd-%ea%b5%ac%ec%b6%95","status":"publish","type":"post","link":"https:\/\/hasu0707.duckdns.org\/blog\/?p=8056","title":{"rendered":"[Flutter] \uae30\ubcf8 \uac1c\ubc1c\ud658\uacbd \uad6c\ucd95 + VSCode"},"content":{"rendered":"\n<span style=\"font-family: \ub098\ub214\uace0\ub515\ucf54\ub529, \ub3cb\uc6c0\uccb4, \uad74\ub9bc\uccb4, \uad81\uc11c\uccb4; font-size: 12pt;\">\ucd9c\ucc98: <a href=\"https:\/\/ksrk.medium.com\/install-flutter-without-android-studio-on-window-9d3781172912\" target=\"_blank\" rel=\"noopener\">https:\/\/ksrk.medium.com\/install-flutter-without-android-studio-on-window-9d3781172912<\/a><br \/><br \/>\u203b\uad00\ub828 \ub9c1\ud06c<br \/>&nbsp; avdmanager: <a href=\"https:\/\/gist.github.com\/mrk-han\/66ac1a724456cadf1c93f4218c6060ae\" target=\"_blank\" rel=\"noopener\">https:\/\/gist.github.com\/mrk-han\/66ac1a724456cadf1c93f4218c6060ae<\/a><br \/>&nbsp; sdkmanager: <a href=\"https:\/\/developer.android.com\/tools\/sdkmanager\" target=\"_blank\" rel=\"noopener\">https:\/\/developer.android.com\/tools\/sdkmanager<\/a><br \/><br \/>1. JDK 17 \uc124\uce58 (<a href=\"https:\/\/javaalmanac.io\/bytecode\/versions\/\" target=\"_blank\" rel=\"noopener\">https:\/\/javaalmanac.io\/bytecode\/versions\/<\/a>)<br \/>&nbsp; Class File Version\uc5d0 \ub530\ub77c \uc790\ubc14 \ubc84\uc804\uc744 \uc120\ud0dd\ud558\uc5ec \uc124\uce58 \ud55c\ub2e4.<br \/><br \/>2. \ud544\uc694\ud55c \ub3c4\uad6c \ub2e4\uc6b4\ub85c\ub4dc<br \/>&nbsp; Command Line Tools \ub2e4\uc6b4\ub85c\ub4dc<br \/>&nbsp; &nbsp; <a href=\"https:\/\/developer.android.com\/studio\" target=\"_blank\" rel=\"noopener\">https:\/\/developer.android.com\/studio<\/a><br \/>&nbsp; &nbsp; \uc544\ub798\ub85c \uc2a4\ud06c\ub864 \ud574\uc11c \"\uba85\ub839\uc904 \ub3c4\uad6c\ub9cc\" \ud56d\ubaa9\uc5d0\uc11c \ub2e4\uc6b4\ub85c\ub4dc \uc9c4\ud589<br \/><br \/>&nbsp; Android Emulator \ub2e4\uc6b4\ub85c\ub4dc<br \/>&nbsp; &nbsp; <a href=\"https:\/\/developer.android.com\/studio\/emulator_archive\" target=\"_blank\" rel=\"noopener\">https:\/\/developer.android.com\/studio\/emulator_archive<\/a><br \/><br \/>&nbsp; flutter \ub2e4\uc6b4\ub85c\ub4dc<br \/>&nbsp; &nbsp; <a href=\"https:\/\/flutter-ko.dev\/get-started\/install\" target=\"_blank\" rel=\"noopener\">https:\/\/flutter-ko.dev\/get-started\/install<\/a><br \/><br \/>3. Command Line Tools\uc744 \uc0ac\uc6a9\ud558\uc5ec SDK \ub2e4\uc6b4\ub85c\ub4dc \ubc0f \uc124\uce58<br \/>&nbsp; \u2460\ub2e4\uc6b4\ub85c\ub4dc \ubc1b\uc740 Command Line Tools(commandlinetools-win-11076708_latest.zip)\ub97c C:\\PortableApps\\android_sdk\\cmdline-tools\\latest \ud3f4\ub354\ub97c \uc0dd\uc131\ud558\uace0 \uc774 \uc544\ub798 \uc555\ucd95 \ud574\uc81c.<br \/>&nbsp; \u2461ANDROID_HOME\uacfc ANDROID_SDK_ROOT \ud658\uacbd\ubcc0\uc218\ub97c C:\\PortableApps\\android_sdk\ub85c \ucd94\uac00.<br \/>&nbsp; \u2462\uc544\ub798 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc2e4\ud589\ud558\uc5ec SDK \ub2e4\uc6b4\ub85c\ub4dc<br \/><br \/>&nbsp; &nbsp; \u203bandroid \ubc84\uc804\ubcc4 API \ub808\ubca8 \ucc38\uace0: <a href=\"https:\/\/apilevels.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/apilevels.com\/<\/a><br \/>&nbsp; &nbsp; \u203bandroid-29\ub294 Android 10 \uae30\uc900\uc758 SDK (flutter \ucd5c\uc18c\uc694\uad6c \ubc84\uc804)<br \/><br \/>-----------------------------------------------------------<br \/><em>@ECHO OFF<\/em><br \/><em>CLS<\/em><br \/><em>SET \"ANDROID_HOME=%CD%\"<\/em><br \/><em>SET \"ANDROID_SDK_ROOT=%CD%\"<\/em><br \/><em>SET \"OLD_PATH=%PATH%\"<\/em><br \/><em>SET \"PATH=%CD%\\cmdline-tools\\latest\\bin;%PATH%\"<\/em><br \/><br \/><em>CALL sdkmanager --licenses<\/em><br \/><em>CALL sdkmanager \"platform-tools\"<\/em><br \/><em>CALL sdkmanager \"build-tools;28.0.3\"<\/em><br \/><em>CALL sdkmanager \"platforms;android-29\"<\/em><br \/><em>CALL sdkmanager emulator<\/em><br \/><br \/><em>SET \"PATH=%OLD_PATH%\"<\/em><br \/><em>RMDIR \/S \/Q .\\.temp<\/em><br \/><em>MKDIR .temp<\/em><br \/><em>PAUSE<\/em><br \/>-----------------------------------------------------------<br \/><br \/>4. flutter \uc124\uc815<br \/>&nbsp; flutter config --android-sdk \"C:\\PortableApps\\android_sdk\"<br \/>&nbsp; flutter doctor --android-licenses<br \/>&nbsp; flutter doctor -v<br \/><br \/>5. Android Emulator \uc0dd\uc131<br \/>&nbsp; \u2460\uc5d0\ubbac\ub808\uc774\ud130 \ubaa9\ub85d \ud655\uc778<br \/>&nbsp; &nbsp; sdkmanager --list | grep \"android-29\"<br \/>&nbsp; \u2461\uc0dd\uc131<br \/>&nbsp; &nbsp; sdkmanager \"system-images;android-29;google_apis_playstore;x86_64\"<br \/>&nbsp; &nbsp; avdmanager -s create avd -n test1 -k \"system-images;android-29;google_apis_playstore;x86_64\"<br \/>&nbsp; \u2462\uc0dd\uc131\ub41c \ubaa9\ub85d \ud655\uc778<br \/>&nbsp; &nbsp; avdmanager list avd<br \/>&nbsp; \u2463\uc2e4\ud589<br \/>&nbsp; &nbsp; flutter emulators --launch test1<br \/>&nbsp; \u2464\uc0ad\uc81c<br \/>&nbsp; &nbsp; avdmanager delete avd -n test1<br \/><br \/>6. \ud14c\uc2a4\ud2b8 \uc571 \uc2e4\ud589<br \/>&nbsp; CD \/D c:\\PortableApps\\flutter\\examples\\hello_world<br \/>&nbsp; flutter run<br \/><br \/>7. Visual Studio Code: Flutter \ud655\uc7a5 \uc124\uce58<br \/>CD \/D C:\\PortableApps\\Visual_Studio_Code_64bit\\bin<br \/>code.cmd --install-extension dart-code.dart-code<br \/>code.cmd --install-extension dart-code.flutter<br \/>code.cmd --list-extensions<br \/><br \/>8. Visual Studio Code: \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131 \ubc0f \uc2e4\ud589<br \/>&nbsp; Ctrl+Shift+P &rarr; Flutter: New Project<br \/>&nbsp; Ctrl+Shift+P &rarr; Flutter: Select Device<br \/>&nbsp; &nbsp; Android SDK built for x86 64<br \/>&nbsp; F5: \ub514\ubc84\uae45 \uc2dc\uc791<\/span>\n","protected":false},"excerpt":{"rendered":"<p>\ucd9c\ucc98: https:\/\/ksrk.medium.com\/install-flutter-without-android-studio-on-window-9d3781172912 \u203b\uad00\ub828 \ub9c1\ud06c&nbsp; avdmanager: https:\/\/gist.github.com\/mrk-han\/66ac1a724456cadf1c93f4218c6060ae&nbsp; sdkmanager: https:\/\/developer.android.com\/tools\/sdkmanager 1. JDK 17 \uc124\uce58 (https:\/\/javaalmanac.io\/bytecode\/versions\/)&nbsp; Class File Version\uc5d0 \ub530\ub77c \uc790\ubc14 \ubc84\uc804\uc744 \uc120\ud0dd\ud558\uc5ec \uc124\uce58 \ud55c\ub2e4. 2. \ud544\uc694\ud55c \ub3c4\uad6c \ub2e4\uc6b4\ub85c\ub4dc&nbsp; Command Line Tools \ub2e4\uc6b4\ub85c\ub4dc&nbsp; &nbsp; https:\/\/developer.android.com\/studio&nbsp; &nbsp; \uc544\ub798\ub85c \uc2a4\ud06c\ub864 \ud574\uc11c &#8220;\uba85\ub839\uc904 \ub3c4\uad6c\ub9cc&#8221; \ud56d\ubaa9\uc5d0\uc11c \ub2e4\uc6b4\ub85c\ub4dc \uc9c4\ud589 &nbsp; Android Emulator \ub2e4\uc6b4\ub85c\ub4dc&nbsp; &nbsp; https:\/\/developer.android.com\/studio\/emulator_archive &nbsp; flutter \ub2e4\uc6b4\ub85c\ub4dc&nbsp; &nbsp; https:\/\/flutter-ko.dev\/get-started\/install 3. Command Line [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[23,18,26],"tags":[],"class_list":["post-8056","post","type-post","status-publish","format-standard","hentry","category-development_web","category-development_language","category-development_android"],"_links":{"self":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/8056","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8056"}],"version-history":[{"count":0,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/8056\/revisions"}],"wp:attachment":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8056"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8056"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8056"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}