{"id":1724,"date":"2022-09-02T16:32:00","date_gmt":"2022-09-02T08:32:00","guid":{"rendered":"https:\/\/pjq.me\/?p=1724"},"modified":"2022-09-02T16:42:39","modified_gmt":"2022-09-02T08:42:39","slug":"android-build-profiler-with-gradle-profiler","status":"publish","type":"post","link":"https:\/\/pjq.me\/?p=1724","title":{"rendered":"Android Build Performance Tuning with gradle-profiler"},"content":{"rendered":"\n<p>If your project have more and more modules and source code, the build will be the nightmare, it will take more than 10 mins to build, for release build, it will take even more time, so we can use the gradle-profiler to figure out the bottleneck, and take actions to do the build performance tuning accordingly.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/pjq.me\/?p=1724\/#gradle-profiler_in_local_environment\" >gradle-profiler in local environment<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/pjq.me\/?p=1724\/#Install_gradle-profiler\" >Install gradle-profiler<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/pjq.me\/?p=1724\/#Run_gradle-profiler\" >Run gradle-profiler<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/pjq.me\/?p=1724\/#Loading_the_json_to_Chrome\" >Loading the json to Chrome<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/pjq.me\/?p=1724\/#gradle-profiler_in_docker_environment\" >gradle-profiler in docker environment<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/pjq.me\/?p=1724\/#Start_docker\" >Start docker<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/pjq.me\/?p=1724\/#Install_gradle-profiler-2\" >Install gradle-profiler<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/pjq.me\/?p=1724\/#Run_gradle-profiler-2\" >Run gradle-profiler<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/pjq.me\/?p=1724\/#Loading_the_json_to_Chrome-2\" >Loading the json to Chrome<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/pjq.me\/?p=1724\/#With_scenarios_for_clean_build\" >With scenarios for clean build<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/pjq.me\/?p=1724\/#Benchmark_with_gradle-profiler\" >Benchmark with gradle-profiler<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/pjq.me\/?p=1724\/#chrome_tracing_Shortcut\" >chrome:\/\/tracing Shortcut<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"gradle-profiler_in_local_environment\"><\/span>gradle-profiler in local environment<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h5 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Install_gradle-profiler\"><\/span>Install gradle-profiler<span class=\"ez-toc-section-end\"><\/span><\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/github.com\/gradle\/gradle-profiler#installing\">https:\/\/github.com\/gradle\/gradle-profiler#installing<\/a><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>curl -s &#8220;https:\/\/get.sdkman.io&#8221; | bash sdk install gradleprofiler <br>gradle-profiler &#8211;benchmark help<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Run_gradle-profiler\"><\/span>Run gradle-profiler<span class=\"ez-toc-section-end\"><\/span><\/h5>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>gradle-profiler &#8211;profile chrome-trace &#8211;jprofiler-alloc &#8211;project-dir $PWD &#8211;output-dir out\/profiler\/apkBuild app:assembleRelease<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Loading_the_json_to_Chrome\"><\/span>Loading the json to Chrome<span class=\"ez-toc-section-end\"><\/span><\/h5>\n\n\n\n<p><a href=\"chrome:\/\/tracing\/\">chrome:\/\/tracing\/<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"gradle-profiler_in_docker_environment\"><\/span>gradle-profiler in docker environment<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h5 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Start_docker\"><\/span>Start docker<span class=\"ez-toc-section-end\"><\/span><\/h5>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>docker run -it &#8211;memory=&#8221;8g&#8221;&nbsp;&#8211;platform linux\/amd64&nbsp;-v&nbsp;$(pwd):\/Develop&nbsp;alvrme\/alpine-android:latest-jdk11&nbsp;\/bin\/bash<br>cd&nbsp;\/Develop<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Install_gradle-profiler-2\"><\/span>Install gradle-profiler<span class=\"ez-toc-section-end\"><\/span><\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/github.com\/gradle\/gradle-profiler#installing\">https:\/\/github.com\/gradle\/gradle-profiler#installing<\/a><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>apk add zip <br>curl -s &#8220;https:\/\/get.sdkman.io&#8221; | bash sdk install gradleprofiler <br>gradle-profiler &#8211;benchmark help<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Run_gradle-profiler-2\"><\/span>Run gradle-profiler<span class=\"ez-toc-section-end\"><\/span><\/h5>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>gradle-profiler &#8211;profile chrome-trace &#8211;jprofiler-alloc &#8211;project-dir $PWD &#8211;output-dir out\/profiler\/apkBuild app:assembleRelease<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Loading_the_json_to_Chrome-2\"><\/span>Loading the json to Chrome<span class=\"ez-toc-section-end\"><\/span><\/h5>\n\n\n\n<p><a href=\"chrome:\/\/tracing\/\">chrome:\/\/tracing\/<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"With_scenarios_for_clean_build\"><\/span>With scenarios for clean build<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>gradle-profiler &#8211;profile chrome-trace &#8211;jprofiler-alloc &#8211;project-dir $PWD &#8211;output-dir out\/profiler\/apkBuild &#8211;scenario-file scenarios.txt<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>scenarios.txt<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>clean_build {<br> tasks = [&#8220;:app:assembleRelease&#8221;] <br>cleanup-tasks = [&#8220;clean&#8221;] <br>}<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Benchmark_with_gradle-profiler\"><\/span>Benchmark with gradle-profiler<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code><code>gradle-profiler --benchmark --project-dir .  --scenario-file clean-build-scenario.txt<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"chrome_tracing_Shortcut\"><\/span>chrome:\/\/tracing Shortcut<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>w\/s:zoom in\/out<\/li><li>a\/d: move left\/right<\/li><li>mouse: scroll up\/down<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>If your project have more and more modules and source code, the build will be the nightmare, it will take more than 10 mins to build, for release build, it will take even more time, so we can use the<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,169],"tags":[],"class_list":["post-1724","post","type-post","status-publish","format-standard","hentry","category-android","category-tech"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Android Build Performance Tuning with gradle-profiler - Jianqing&#039;s Blog<\/title>\n<meta name=\"description\" content=\"Android build performance tuning and benchmark with gradle-profiler\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/pjq.me\/?p=1724\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android Build Performance Tuning with gradle-profiler - Jianqing&#039;s Blog\" \/>\n<meta property=\"og:description\" content=\"Android build performance tuning and benchmark with gradle-profiler\" \/>\n<meta property=\"og:url\" content=\"https:\/\/pjq.me\/?p=1724\" \/>\n<meta property=\"og:site_name\" content=\"Jianqing&#039;s Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-02T08:32:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-02T08:42:39+00:00\" \/>\n<meta name=\"author\" content=\"pengjianqing\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"pengjianqing\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/pjq.me\/?p=1724#article\",\"isPartOf\":{\"@id\":\"https:\/\/pjq.me\/?p=1724\"},\"author\":{\"name\":\"pengjianqing\",\"@id\":\"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60\"},\"headline\":\"Android Build Performance Tuning with gradle-profiler\",\"datePublished\":\"2022-09-02T08:32:00+00:00\",\"dateModified\":\"2022-09-02T08:42:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/pjq.me\/?p=1724\"},\"wordCount\":228,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60\"},\"articleSection\":[\"Android\",\"Tech\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/pjq.me\/?p=1724#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/pjq.me\/?p=1724\",\"url\":\"https:\/\/pjq.me\/?p=1724\",\"name\":\"Android Build Performance Tuning with gradle-profiler - Jianqing&#039;s Blog\",\"isPartOf\":{\"@id\":\"https:\/\/pjq.me\/#website\"},\"datePublished\":\"2022-09-02T08:32:00+00:00\",\"dateModified\":\"2022-09-02T08:42:39+00:00\",\"description\":\"Android build performance tuning and benchmark with gradle-profiler\",\"breadcrumb\":{\"@id\":\"https:\/\/pjq.me\/?p=1724#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/pjq.me\/?p=1724\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/pjq.me\/?p=1724#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/pjq.me\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Android Build Performance Tuning with gradle-profiler\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/pjq.me\/#website\",\"url\":\"https:\/\/pjq.me\/\",\"name\":\"Jianqing&#039;s Blog\",\"description\":\"Thoughts and Future\",\"publisher\":{\"@id\":\"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/pjq.me\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60\",\"name\":\"pengjianqing\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/pjq.me\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/pjq.me\/wp-content\/uploads\/2021\/12\/Screen-Shot-2021-12-02-at-6.10.58-PM.png\",\"contentUrl\":\"https:\/\/pjq.me\/wp-content\/uploads\/2021\/12\/Screen-Shot-2021-12-02-at-6.10.58-PM.png\",\"width\":460,\"height\":752,\"caption\":\"pengjianqing\"},\"logo\":{\"@id\":\"https:\/\/pjq.me\/#\/schema\/person\/image\/\"},\"url\":\"https:\/\/pjq.me\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Android Build Performance Tuning with gradle-profiler - Jianqing&#039;s Blog","description":"Android build performance tuning and benchmark with gradle-profiler","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/pjq.me\/?p=1724","og_locale":"en_US","og_type":"article","og_title":"Android Build Performance Tuning with gradle-profiler - Jianqing&#039;s Blog","og_description":"Android build performance tuning and benchmark with gradle-profiler","og_url":"https:\/\/pjq.me\/?p=1724","og_site_name":"Jianqing&#039;s Blog","article_published_time":"2022-09-02T08:32:00+00:00","article_modified_time":"2022-09-02T08:42:39+00:00","author":"pengjianqing","twitter_card":"summary_large_image","twitter_misc":{"Written by":"pengjianqing","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/pjq.me\/?p=1724#article","isPartOf":{"@id":"https:\/\/pjq.me\/?p=1724"},"author":{"name":"pengjianqing","@id":"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60"},"headline":"Android Build Performance Tuning with gradle-profiler","datePublished":"2022-09-02T08:32:00+00:00","dateModified":"2022-09-02T08:42:39+00:00","mainEntityOfPage":{"@id":"https:\/\/pjq.me\/?p=1724"},"wordCount":228,"commentCount":0,"publisher":{"@id":"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60"},"articleSection":["Android","Tech"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/pjq.me\/?p=1724#respond"]}]},{"@type":"WebPage","@id":"https:\/\/pjq.me\/?p=1724","url":"https:\/\/pjq.me\/?p=1724","name":"Android Build Performance Tuning with gradle-profiler - Jianqing&#039;s Blog","isPartOf":{"@id":"https:\/\/pjq.me\/#website"},"datePublished":"2022-09-02T08:32:00+00:00","dateModified":"2022-09-02T08:42:39+00:00","description":"Android build performance tuning and benchmark with gradle-profiler","breadcrumb":{"@id":"https:\/\/pjq.me\/?p=1724#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/pjq.me\/?p=1724"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/pjq.me\/?p=1724#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/pjq.me\/"},{"@type":"ListItem","position":2,"name":"Android Build Performance Tuning with gradle-profiler"}]},{"@type":"WebSite","@id":"https:\/\/pjq.me\/#website","url":"https:\/\/pjq.me\/","name":"Jianqing&#039;s Blog","description":"Thoughts and Future","publisher":{"@id":"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/pjq.me\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60","name":"pengjianqing","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/pjq.me\/#\/schema\/person\/image\/","url":"https:\/\/pjq.me\/wp-content\/uploads\/2021\/12\/Screen-Shot-2021-12-02-at-6.10.58-PM.png","contentUrl":"https:\/\/pjq.me\/wp-content\/uploads\/2021\/12\/Screen-Shot-2021-12-02-at-6.10.58-PM.png","width":460,"height":752,"caption":"pengjianqing"},"logo":{"@id":"https:\/\/pjq.me\/#\/schema\/person\/image\/"},"url":"https:\/\/pjq.me\/?author=1"}]}},"views":1209,"_links":{"self":[{"href":"https:\/\/pjq.me\/index.php?rest_route=\/wp\/v2\/posts\/1724","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pjq.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pjq.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pjq.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pjq.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1724"}],"version-history":[{"count":7,"href":"https:\/\/pjq.me\/index.php?rest_route=\/wp\/v2\/posts\/1724\/revisions"}],"predecessor-version":[{"id":1732,"href":"https:\/\/pjq.me\/index.php?rest_route=\/wp\/v2\/posts\/1724\/revisions\/1732"}],"wp:attachment":[{"href":"https:\/\/pjq.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1724"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pjq.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1724"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pjq.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1724"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}