{"id":1034,"date":"2014-08-27T15:08:19","date_gmt":"2014-08-27T06:08:19","guid":{"rendered":"http:\/\/43.203.250.216\/?p=1034"},"modified":"2025-10-01T16:25:41","modified_gmt":"2025-10-01T07:25:41","slug":"android-emacs-android-host-el-%ea%b8%b0%eb%8a%a5-%ec%b6%94%ea%b0%80","status":"publish","type":"post","link":"https:\/\/litcoder.com\/?p=1034","title":{"rendered":"Android emacs (android-host.el) \uae30\ub2a5 \ucd94\uac00"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>AOSP\uc5d0\uc11c \uc81c\uacf5\ub418\ub294 Emacs\uc6a9 Andorid \uac1c\ubc1c\ud658\uacbd\uc744 \uc124\uc815\ud55c \uc774\ud6c4(<a title=\"Emacs\uc5d0\uc11c Android \uac1c\ubc1c \ud658\uacbd \uc0ac\uc6a9\" href=\"https:\/\/litcoder.com\/?p=1021\">\uc774 post \ucc38\uc870<\/a>) \uc798 \ubaa8\ub974\ub294 LISP\uc744 \ub354\ub4ec\uc5b4 \uac00\uba70 \ucd94\uac00\ud55c \uba87 \uac00\uc9c0 \uae30\ub2a5\uc744 \uc18c\uac1c\ud569\ub2c8\ub2e4.<\/p><\/blockquote>\n\n\n\n<p><strong>adb reboot <\/strong>(M-x android-adb-reboot)<\/p>\n\n\n\n<p>Module\ub4f1\uc744 \ubcc0\uacbd\ud55c \ud6c4\uc5d0 device\ub97c reset\ud558\ub294 \uba85\ub839\uc5b4\uac00 \uc5c6\uc5b4\uc11c \ucd94\uac00\ud588\ub2e4. \uc774 \uae30\ub2a5\uc758 \uc7a5\uc810\uc744 \uad73\uc774 \uaf3d\uc790\uba74 shell\uc744 \ub530\ub85c \ub6f0\uc6b0\uc9c0 \uc54a\uace0 \ub9ac\ubd93\uc744 \ud560\uc218 \uc788\ub2e4\ub294\uac70&#8230;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"eclipse\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(defun android-adb-reboot ()\n  \"Execute 'adb reboot'.\"\n  (interactive)\n  (android-adb-command \"reboo<\/pre>\n\n\n\n<p><strong>Module push <\/strong>(M-x android-adb-push-module)<\/p>\n\n\n\n<p>Compile\ud55c module\uc744 target\uc5d0 push \ud560 \ub54c \uc0ac\uc6a9\ud55c\ub2e4. Command\ub97c \uc785\ub825\ud558\uba74 push \ud560 source\uc640 target\uc744 \ubb3c\uc5b4\ubcf4\uace0 adb push command\ub97c \uc2e4\ud589\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"eclipse\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(defun android-adb-push-module (source target)\n  \"Push specified module into target path.\"\n  (interactive \"fSource: \\nsTarget: \")\n\n  (android-adb-root)\n  (android-adb-remount)\n  (android-adb-command\n    (concat \"push \" source \" \" target) 'p))<\/pre>\n\n\n\n<p><strong>Module push Hotkey <\/strong>&nbsp;(C-x a p)<\/p>\n\n\n\n<p>\uc704\uc758 android-adb-push-module \ud568\uc218\ub97c \uc4f0\ub2e4\ubcf4\ub2c8 path\ub97c \uc785\ub825\ud558\ub294\uac8c \ubb34\ucc99 \uadc0\ucc2e\ub2e4. android-compile \uba85\ub839\uc5b4\ub97c \uc218\ud589\ud574\uc11c \ub9cc\ub4e4\uc5b4\uc9c0\ub294 \ucd9c\ub825 \ubc84\ud37c\uc5d0\uc11c \uc704\uc758 \ub2e8\ucd95\ud0a4\ub85c target\uc758 \ud574\ub2f9 directory\ub85c module\uc744 push\ud55c\ub2e4.<\/p>\n\n\n\n<p>Install: out\/target\/product\/TARGET_DEVICE\/system\/xxx\/yyy.zz<\/p>\n\n\n\n<p>\ucd9c\ub825 \ubc84\ud37c\ub85c \uc774\ub3d9\ud574\uc11c \ucd9c\ub825\ub41c \uacb0\uacfc\ubb3c \uc704\uc5d0 cursor\ub97c \ub193\uace0 &#8216;C-x a p&#8217;\ub97c \uc785\ub825\ud558\uba74 \uadf8 \uacbd\ub85c\ub97c \uc77d\uc5b4\uc11c target\uc73c\ub85c push \ud55c\ub2e4. Source\uc758 path\uc5d0\uc11c target \uc704\uce58\ub97c \uc77d\uc5b4 \uc624\uac8c \ub418\uc5b4 \uc788\uc5b4\uc11c \ud2b9\ubcc4\ud55c \uc785\ub825\uc774 \ud544\uc694 \ud558\uc9c0 \uc54a\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"eclipse\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(define-key map (kbd \"p\") 'android-adb-push-module-at-point)\n...\n\n(defun android-adb-push-module-at-point ()\n  \"Push module path at cursor point an push to the target path.\"\n  (interactive)\n\n  (let*\n    (\n      (sourcepath (concat (android-find-build-tree-root) (thing-at-point 'filename)))\n      (targetpath (substring sourcepath (string-match \"\\\/system\" sourcepath) nil)))\n    (android-adb-push-module sourcepath targetpath)))<\/pre>\n\n\n\n<p>\uc804\uccb4 \uc218\uc815\ub0b4\uc5ed\uc744 \ud3ec\ud568\ud558\ub294 \ud30c\uc77c: <a href=\"http:\/\/litcoder.com\/wp-content\/uploads\/2014\/08\/android-host.el_.txt\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1051\" src=\"http:\/\/litcoder.com\/wp-content\/uploads\/2014\/08\/1408382052_12.File_.png\" alt=\"icon_text_file\" width=\"18\" height=\"18\">&nbsp;android-host.el<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>AOSP\uc5d0\uc11c \uc81c\uacf5\ub418\ub294 Emacs\uc6a9 Andorid \uac1c\ubc1c\ud658\uacbd\uc744 \uc124\uc815\ud55c \uc774\ud6c4(\uc774 post \ucc38\uc870) \uc798 \ubaa8\ub974\ub294 LISP\uc744 \ub354\ub4ec\uc5b4 \uac00\uba70 \ucd94\uac00\ud55c \uba87 \uac00\uc9c0 \uae30\ub2a5\uc744 \uc18c\uac1c\ud569\ub2c8\ub2e4. adb reboot (M-x android-adb-reboot) Module\ub4f1\uc744 \ubcc0\uacbd\ud55c \ud6c4\uc5d0 device\ub97c reset\ud558\ub294 \uba85\ub839\uc5b4\uac00 \uc5c6\uc5b4\uc11c \ucd94\uac00\ud588\ub2e4. \uc774 \uae30\ub2a5\uc758 \uc7a5\uc810\uc744 \uad73\uc774 \uaf3d\uc790\uba74 shell\uc744 \ub530\ub85c \ub6f0\uc6b0\uc9c0 \uc54a\uace0 \ub9ac\ubd93\uc744 \ud560\uc218 \uc788\ub2e4\ub294\uac70&#8230; Module push (M-x android-adb-push-module) Compile\ud55c module\uc744 target\uc5d0 push \ud560 \ub54c \uc0ac\uc6a9\ud55c\ub2e4. Command\ub97c [&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,5],"tags":[11,41,73],"class_list":["post-1034","post","type-post","status-publish","format-standard","hentry","category-android","category-programming","tag-android","tag-emacs","tag-lisp"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/1034","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=1034"}],"version-history":[{"count":9,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/1034\/revisions"}],"predecessor-version":[{"id":3645,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/1034\/revisions\/3645"}],"wp:attachment":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1034"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1034"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1034"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}