{"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 class=\"wp-block-paragraph\"><strong>buildspec.mk \uc124\uc815<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\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 class=\"wp-block-paragraph\">&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 class=\"wp-block-paragraph\"><strong>el file\ub4e4 \ubcf5\uc0ac \ubc0f \uc124\uc815<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&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 class=\"wp-block-paragraph\">\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 class=\"wp-block-paragraph\"><strong>\uc0ac\uc6a9<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\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":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[2],"tags":[11,41],"class_list":["post-1021","post","type-post","status-publish","format-standard","hentry","category-android","tag-android","tag-emacs"],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1034,"url":"https:\/\/litcoder.com\/?p=1034","url_meta":{"origin":1021,"position":0},"title":"Android emacs (android-host.el) \uae30\ub2a5 \ucd94\uac00","author":"litcoder","date":"2014\ub144 8\uc6d4 27\uc77c","format":false,"excerpt":"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... (defun android-adb-reboot () \"Execute 'adb reboot'.\" (interactive)\u2026","rel":"","context":"&quot;Android&quot;\uc5d0\uc11c","block_context":{"text":"Android","link":"https:\/\/litcoder.com\/?cat=2"},"img":{"alt_text":"icon_text_file","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2014\/08\/1408382052_12.File_.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1489,"url":"https:\/\/litcoder.com\/?p=1489","url_meta":{"origin":1021,"position":1},"title":"Android Studio\uc5d0\uc11c Googletest \uc0ac\uc6a9\uc744 \uc704\ud55c \uc124\uc815","author":"litcoder","date":"2016\ub144 7\uc6d4 1\uc77c","format":false,"excerpt":"Android Studio\ub294 \ub0b4 PC\uc5d0\uc11c \uc880 \ub290\ub9ac\uae34 \ud558\uc9c0\ub9cc, \ub2e4\ub978 IDE\ub4e4\uc5d0 \ube44\ud574\uc11c\ub294 Emacs key binding\uc774 \ube44\uad50\uc801 \uc798\ub418\uc5b4 \uc788\uc5b4\uc11c \ub9cc\uc871 \ud558\uba74\uc11c \uc870\uae08\uc529 \ubc30\uc6cc\uac00\uace0 \uc788\ub2e4. NDK\ub85c JNI\uc5d0\uc11c \ubd88\ub7ec\ub2e4 \uc4f8 native code\ub97c \uad6c\ud604\ud558\ub2e4 \ubcf4\ub2c8 Googletest\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574 \ub9e4\ubc88 device\ub85c push \ud558\uace0 \uc2e4\ud589\ud558\ub294 \uacfc\uc815\uc774 \uaf64\ub098 \ubc88\uac70\ub85c\uc640\uc11c script\ub85c \ub9cc\ub4e4\uc5b4 \ubcf4\uc558\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 Android Studio\uc5d0\uc11c Googletest\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud55c\u2026","rel":"","context":"&quot;Android&quot;\uc5d0\uc11c","block_context":{"text":"Android","link":"https:\/\/litcoder.com\/?cat=2"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1475,"url":"https:\/\/litcoder.com\/?p=1475","url_meta":{"origin":1021,"position":2},"title":"Android recovery image \ube4c\ub4dc \uc124\uc815","author":"litcoder","date":"2022\ub144 3\uc6d4 5\uc77c","format":false,"excerpt":"1. BoardConfig.mk \uc218\uc815 TARGET_NO_KERNEL\uacfc TARGET_NO_RECOVERY\uac00 true\ub85c \uc124\uc815\ub418\uc5b4 \uc788\ub2e4\uba74 \uc124\uc815\ud55c\ub2e4. 2. device.mk \uc218\uc815 TARGET_PREBUILT_KERNEL\uad00\ub828 \uc124\uc815\uc744 \uc0ad\uc81c\ud55c\ub2e4. 3. AndroidBoard.mk \ucd94\uac00 Kernel build \ub420 \ub54c \ucc38\uace0\ub418\ub294 \ud30c\uc77c\uc774\ubbc0\ub85c \ucd94\uac00\ud574 \uc8fc\uace0 KERNEL_DEFCONFIG\ub4f1\uc758 \uc124\uc815\uc744 \uc790\uc2e0\uc5d0 \ub9de\uac8c \ubcc0\uacbd\ud574 \uc900\ub2e4. 4. AndroidKernel.mk \ucd94\uac00 AndroidKernel.mk\ub294 kernel build\ub97c \uc704\ud55c makefile script\uc774\ub2e4. 5. defconfig file \uacbd\ub85c\ubcc0\uacbd defconfig file\uc774 \ucc38\uc870\ub420 \uc218 \uc788\ub3c4\ub85d\u2026","rel":"","context":"&quot;Android&quot;\uc5d0\uc11c","block_context":{"text":"Android","link":"https:\/\/litcoder.com\/?cat=2"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3322,"url":"https:\/\/litcoder.com\/?p=3322","url_meta":{"origin":1021,"position":3},"title":"GitHub release\uc5d0 \ubc14\uc774\ub108\ub9ac \ucca8\ubd80 \uc790\ub3d9\ud654","author":"litcoder","date":"2024\ub144 1\uc6d4 1\uc77c","format":false,"excerpt":"GitHub\uc5d0\uc11c release\ub97c \uc0dd\uc131\ud558\uba74 source code\uc758 snapshot\uc774 zip\uacfc tar.gz\ub85c \uc800\uc7a5\ub41c\ub2e4. \uc5ec\uae30\uc5d0 \ucd94\uac00\ud574\uc11c \ucef4\ud30c\uc77c\ub41c \uacb0\uacfc\uac00 \uc790\ub3d9\uc73c\ub85c \ucd94\uac00\ud558\ub3c4\ub85d \ud55c\ub2e4\uba74, \uac04\ub2e8\ud788 source code\uc640 \uc5f0\uacc4\ub41c \ubc14\uc774\ub108\ub9ac\ub3c4 \ud568\uaed8 \ubc30\ud3ec\ud560 \uc218 \uc788\uc744 \uac83\uc774\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 \uc548\ub4dc\ub85c\uc774\ub4dc \ud504\ub85c\uc81d\ud2b8\ub97c \uac00\uc815\ud574\uc11c release\ub97c \uc0dd\uc131\ud560 \ub54c \uc548\ub4dc\ub85c\uc774\ub4dc APK\ub97c \ube4c\ub4dc\ud558\uace0 source code\uc640 \ud568\uaed8 \ubc30\ud3ec\ud558\ub294 \uac04\ub2e8\ud55c workflow\ub97c \uc124\uba85\ud55c\ub2e4. \uc804\uccb4 \ucf54\ub4dc Event trigger on: release:\u2026","rel":"","context":"&quot;Android&quot;\uc5d0\uc11c","block_context":{"text":"Android","link":"https:\/\/litcoder.com\/?cat=2"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2024\/01\/github_workflow_release_attached-e1704114929383.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2024\/01\/github_workflow_release_attached-e1704114929383.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2024\/01\/github_workflow_release_attached-e1704114929383.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2024\/01\/github_workflow_release_attached-e1704114929383.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":466,"url":"https:\/\/litcoder.com\/?p=466","url_meta":{"origin":1021,"position":4},"title":"Android NDK build architecture \ubcc0\uacbd\ud558\uae30","author":"litcoder","date":"2013\ub144 1\uc6d4 17\uc77c","format":false,"excerpt":"\uc544\ubb34 \uc124\uc815 \uc5c6\uc774 ndk\ub97c build \ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 arm\uc6a9 library\uac00 \ub9cc\ub4e4\uc5b4\uc9c4\ub2e4. $ <NDK_PATH>\/ndk-build Gdbserver : [arm-linux-androideabi-4.6] libs\/armeabi\/gdbserver Gdbsetup : libs\/armeabi\/gdb.setup Compile thumb : hello-jni <= hello-jni.c SharedLibrary : libhello-jni.so Install : libhello-jni.so => libs\/armeabi\/libhello-jni.so $ file obj\/local\/armeabi\/libhello-jni.so obj\/local\/armeabi\/libhello-jni.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, not\u2026","rel":"","context":"&quot;Android&quot;\uc5d0\uc11c","block_context":{"text":"Android","link":"https:\/\/litcoder.com\/?cat=2"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1337,"url":"https:\/\/litcoder.com\/?p=1337","url_meta":{"origin":1021,"position":5},"title":"MinnowboardMAX\uc5d0 Android \uc62c\ub824 \ubcf8 \ub0b4\uc6a9 \uc815\ub9ac","author":"litcoder","date":"2015\ub144 9\uc6d4 19\uc77c","format":false,"excerpt":"Android \/ Chromium OS \/ Windows\ub97c \uc62c\ub824 \ubcfc \uc218 \uc788\ub294 Intel Baytrail \uae30\ubc18\uc758 \uac1c\ubc1c\ubcf4\ub4dc\uc778 MinnowboardMAX\uc5d0 Android 5.1\uc744 install\ud558\ub294 \uacfc\uc815\uc744 \uc124\uba85\ud55c\ub2e4. \ud544\uc694\ud55c \uac83 \ub4e4 Minnowboard MAX - \ud310\ub9e4\ud558\ub294 \uacf3, 2015\ub144 9\uc6d4 \ud604\uc7ac \uad6d\ub0b4\uc5d0\uc11c \ud310\ub9e4\ud558\ub294 \uacf3\uc740 \uc5c6\ub294\uac83 \uac19\ub2e4. FTDI cable - Serial \ucd9c\ub825\uc744 PC\uc5d0\uc11c \ubc1b\uae30 \uc704\ud574 guide \ubb38\uc11c\uc5d0\ub294 TTL-232R\uc744 \uc0ac\uc6a9\ud558\ub77c\uace0 \u00a0\ub098\uc640 \uc788\ub294\ub370\u2026","rel":"","context":"&quot;Android&quot;\uc5d0\uc11c","block_context":{"text":"Android","link":"https:\/\/litcoder.com\/?cat=2"},"img":{"alt_text":"minnowboardMAX_connection","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2015\/09\/minnowboardMAX_connection.png?resize=350%2C200","width":350,"height":200},"classes":[]}],"jetpack_featured_media_url":"","_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}]}}