{"id":1021,"date":"2014-08-10T09:02:09","date_gmt":"2014-08-10T00:02:09","guid":{"rendered":"http:\/\/43.203.250.216\/?p=1021"},"modified":"2025-10-17T23:46:12","modified_gmt":"2025-10-17T14:46:12","slug":"emacs%ec%97%90%ec%84%9c-android-%ea%b0%9c%eb%b0%9c-%ed%99%98%ea%b2%bd-%ec%82%ac%ec%9a%a9","status":"publish","type":"post","link":"https:\/\/litcoder.com\/?p=1021","title":{"rendered":"Emacs\uc5d0\uc11c Android \uac1c\ubc1c \ud658\uacbd \uc0ac\uc6a9"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><a href=\"https:\/\/source.android.com\/\">AOSP<\/a>\uc5d0\ub294 Emacs\uc5d0\uc11c Android \uac1c\ubc1c\ud658\uacbd\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \uba87\uba87 el file\ub4e4\uc744 \uc81c\uacf5\ud558\ub294\ub370, platform &nbsp;module build\ub97c \uc8fc\ub85c \ud558\uac8c \ub418\ub294 \ub098\ub85c\uc368\ub294 \uc0ac\uc6a9\uc5d0 \ubd80\uc871\ud568\uc774 \uc5c6\ub294 \uac83 \uac19\ub2e4. Module build\uc640 \uae30\ubcf8\uc801\uc778 ADB \uc870\uc791\uc744 \uc9c0\uc6d0\ud558\ub294 \uc774 script\ub4e4\uc758 \uae30\ub2a5\uc774 \ubd80\uc871\ud558\ub2e4\uace0 \ub290\ub080\ub2e4\uba74 Android \uac1c\ubc1c\ud658\uacbd\uc744 \ubcf4\ub2e4 \uc801\uadf9\uc801\uc73c\ub85c \uc9c0\uc6d0\ud558\ub294&nbsp;<a href=\"https:\/\/github.com\/remvee\/android-mode\">android-mode<\/a>\uc640 \uac19\uc740 project\ub97c \uace0\ub824\ud574 \ubcf4\ub294\uac83\ub3c4 \uc88b\uc744 \uac83\uc774\ub2e4.<\/p><\/blockquote>\n\n\n\n<p><strong>buildspec.mk \uc124\uc815<\/strong><\/p>\n\n\n\n<p>\uc0ac\uc2e4 \uc774 \uae30\ub2a5\uc740 \uadf8\ub3d9\uc548 \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc558\uc5c8\ub294\ub370, AOSP\uc5d0\uc11c \uc9c0\uc6d0\ud558\ub294 el script\ub4e4\uc744 \uc0ac\uc6a9\ud558\ub824\uba74 \uc124\uc815\ud574 \uc8fc\uc5b4\uc57c \ud55c\ub2e4. \uac04\ub2e8\ud55c \uacfc\uc815\uc744 \uac70\uccd0 \uc124\uc815\ud574 \ub193\uace0 \ubcf4\ub2c8 shell\uc5d0\uc11c\ub3c4 \uc0ac\uc804\uc124\uc815 \uc5c6\uc774 &#8216;make target&#8217; command\ub9cc\uc73c\ub85c build\ub97c \ud560 \uc218 \uc788\uc5b4\uc11c \ud3b8\ud558\ub2e4. \ub300\uc2e0 &#8216;cd $OUT&#8217;\uc774\ub098 &#8216;croot&#8217; \uac19\uc740 \uc774\ub3d9 command\ub4e4\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\ub2e4\ub294 \uac83\uc740 \ubd88\ud3b8\ud55c \uc810\uc774\ub2e4.<\/p>\n\n\n\n<p>&lt;ANDROID_ROOT&gt;\/build\/buildspec.mk.default file\uc744 \ubcf5\uc0ac\ud574\uc11c \ud658\uacbd\uc5d0 \ub9de\uac8c \uc218\uc815\ud55c \ub2e4\uc74c &lt;ANDROID_ROOT&gt; \uc704\uce58\uc5d0 \ub193\uc544\ub450\uba74 build \uba85\ub839\uc744 \ub0b4\ub9b4\ub54c \uc790\ub3d9\uc73c\ub85c \ucc38\uc870\ub41c\ub2e4. \uae30\ubcf8\uc801\uc73c\ub85c TARGET_PRODUCT, TARGET_BUILD_VARIANT \uc815\ub3c4\ub9cc \uc218\uc815\ud558\uba74\ub418\ub294\ub370 \ud2b9\uc774\ud55c build\ud658\uacbd\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\ub2e4\uba74 \ub098\uba38\uc9c0 \ud56d\ubaa9\ub4e4\uc740 \uc77d\uc5b4\ubcf4\uace0 \uc790\uc2e0\uc5d0 \ub9de\uac8c \uc218\uc815\ud558\uc790.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Choose a product to build for. Look in the products directory for ones\n# that work.\nifndef TARGET_PRODUCT\n  TARGET_PRODUCT:=product_name\nendif\n\n# Choose a variant to build. If you don't pick one, the default is eng.\n# User is what we ship. Userdebug is that, with a few flags turned on\n# for debugging. Eng has lots of extra tools for development.\nifndef TARGET_BUILD_VARIANT\n  TARGET_BUILD_VARIANT:=eng\nendif<\/pre>\n\n\n\n<p><strong>el file\ub4e4 \ubcf5\uc0ac \ubc0f \uc124\uc815<\/strong><\/p>\n\n\n\n<p>&lt;ANDROID_ROOT>\/development\/ide\/emacs\/ \uc548\uc5d0 \uc788\ub294 file\ub4e4\uc744 Emacs \ud658\uacbd directory\ub85c \ubcf5\uc0ac\ud55c \ub2e4\uc74c \ud574\ub2f9 file\uc774 load\ub418\ub3c4\ub85d init file\uc744 \uc218\uc815\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mkdir ~\/.emacs.d\/android.el\ncp &lt;ANDROID_ROOT>\/development\/ide\/emacs\/*.el ~\/.emacs.d\/android.el\/ android-common.el android-compile.el android-host.el<\/pre>\n\n\n\n<p>\ub2e4\uc74c\uc744 init file\uc5d0 \ubd99\uc5ec \ub123\uc73c\uba74 \ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; Load Android tools\n(add-to-list 'load-path \"~\/.emacs.d\/android.el\/\")\n(require 'android-host)\n(require 'android-compile)\n\ufeff<\/pre>\n\n\n\n<p><strong>\uc0ac\uc6a9<\/strong><\/p>\n\n\n\n<p>\ud3b8\uc9d1 \uc911\uc778 file\uc758 module\uc744 build\ud558\ub824\uba74 &#8216;M-x android-compile&#8217;\uc744 \uc785\ub825 \ud558\uba74 \ub41c\ub2e4. \uadf8 \uc678\uc758 ADB\uc5d0 \uad00\ub828\ud55c \uba85\ub839\uc5b4 \ub4e4\uc740 android-host.el script\uc5d0 \uc124\uba85\ub418\uc5b4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">;; C-x a a android-adb-root\n;; C-x a r android-adb-remount\n;; C-x a s android-adb-sync\n;; C-x a b android-adb-shell-reboot-bootloader\n;; C-x a f android-fastboot-flashall<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>AOSP\uc5d0\ub294 Emacs\uc5d0\uc11c Android \uac1c\ubc1c\ud658\uacbd\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \uba87\uba87 el file\ub4e4\uc744 \uc81c\uacf5\ud558\ub294\ub370, platform &nbsp;module build\ub97c \uc8fc\ub85c \ud558\uac8c \ub418\ub294 \ub098\ub85c\uc368\ub294 \uc0ac\uc6a9\uc5d0 \ubd80\uc871\ud568\uc774 \uc5c6\ub294 \uac83 \uac19\ub2e4. Module build\uc640 \uae30\ubcf8\uc801\uc778 ADB \uc870\uc791\uc744 \uc9c0\uc6d0\ud558\ub294 \uc774 script\ub4e4\uc758 \uae30\ub2a5\uc774 \ubd80\uc871\ud558\ub2e4\uace0 \ub290\ub080\ub2e4\uba74 Android \uac1c\ubc1c\ud658\uacbd\uc744 \ubcf4\ub2e4 \uc801\uadf9\uc801\uc73c\ub85c \uc9c0\uc6d0\ud558\ub294&nbsp;android-mode\uc640 \uac19\uc740 project\ub97c \uace0\ub824\ud574 \ubcf4\ub294\uac83\ub3c4 \uc88b\uc744 \uac83\uc774\ub2e4. buildspec.mk \uc124\uc815 \uc0ac\uc2e4 \uc774 \uae30\ub2a5\uc740 \uadf8\ub3d9\uc548 \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc558\uc5c8\ub294\ub370, AOSP\uc5d0\uc11c \uc9c0\uc6d0\ud558\ub294 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2],"tags":[11,41],"class_list":["post-1021","post","type-post","status-publish","format-standard","hentry","category-android","tag-android","tag-emacs"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/1021","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1021"}],"version-history":[{"count":3,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/1021\/revisions"}],"predecessor-version":[{"id":3746,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/1021\/revisions\/3746"}],"wp:attachment":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1021"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1021"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1021"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}