{"id":204,"date":"2024-06-24T18:02:10","date_gmt":"2024-06-24T10:02:10","guid":{"rendered":"https:\/\/www.swreader.com\/?p=204"},"modified":"2024-06-24T18:04:00","modified_gmt":"2024-06-24T10:04:00","slug":"android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba","status":"publish","type":"post","link":"https:\/\/www.swreader.com\/index.php\/2024\/06\/24\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\/","title":{"rendered":"Android 12\u7f16\u8bd1\u73af\u5883\u642d\u5efa"},"content":{"rendered":"<p>\u8fd9\u662fandroid\u7cfb\u5217\u7684\u7b2c\u4e00\u7bc7\uff0c\u4ecb\u7ecdandroid \u5f00\u53d1\u73af\u5883\u7684\u642d\u5efa\u548c\u8c03\u8bd5\u8fc7\u7a0b\u3002\u4e0b\u9762\u5728ubuntu20.04\u4e0b\u6f14\u793a\u73af\u5883\u642d\u5efa\u7684\u8fc7\u7a0b\u3002<\/p>\n<h2>\u5b89\u88c5android 12\u73af\u5883\u4f9d\u8d56<\/h2>\n<p>\u73af\u5883\u4f9d\u8d56\u53c2\u8003\u6587\u6863: <a href=\"https:\/\/source.android.google.cn\/source\/initializing?hl=zh-cn\">\u642d\u5efa\u7f16\u8bd1\u73af\u5883<\/a><\/p>\n<pre><code class=\"language-shell\">sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig<\/code><\/pre>\n<h2>android 12\u6e90\u7801\u4e0b\u8f7d<\/h2>\n<h3>\u4e0b\u8f7drepo\u5de5\u5177<\/h3>\n<h4>repo\u5de5\u5177\u4e0b\u8f7d<\/h4>\n<p>AOSP\u4ee3\u7801\u901a\u8fc7git\u8fdb\u884c\u7ba1\u7406\uff0c\u4f7f\u7528repo\u7ba1\u7406\u591a\u4e2agit\u4ed3\u5e93\uff0c\u4e0b\u8f7d\u4ee3\u7801\u524d\u9700\u8981\u4e0b\u8f7drepo\u5de5\u5177\u3002<br \/>\n\u5bf9\u4e8eubuntu\uff0c\u5728ubuntu\u7684\u8f6f\u4ef6\u6e90\u4e2d\u6709repo\u5de5\u5177\uff0c\u53ef\u4ee5\u76f4\u63a5\u901a\u8fc7apt\u5b89\u88c5\uff1a<\/p>\n<pre><code class=\"language-shell\"># Debian\/Ubuntu.\n$ sudo apt-get install repo<\/code><\/pre>\n<p>\u6216\u8005\u901a\u8fc7\u6267\u884c\u4e0b\u9762\u7684\u811a\u672c\u8fdb\u884c\u5b89\u88c5\uff1a<\/p>\n<pre><code class=\"language-shell\">$ mkdir -p ~\/.bin\n$ PATH=&quot;${HOME}\/.bin:${PATH}&quot;\n$ curl https:\/\/storage.googleapis.com\/git-repo-downloads\/repo &gt; ~\/.bin\/repo\n$ chmod a+rx ~\/.bin\/repo<\/code><\/pre>\n<h4>\u56fd\u5185repo\u5de5\u5177\u4fee\u6539<\/h4>\n<p>\u7531\u4e8e\u56fd\u5185\u65e0\u6cd5google\u670d\u52a1\u5668\u4e0b\u8f7dAOSP\u4ee3\u7801\uff0c\u6240\u4ee5\u9700\u8981\u4fee\u6539repo\u5de5\u5177\u4ece\u56fd\u5185\u955c\u50cf\u670d\u52a1\u5668\u4e0b\u8f7d\u3002<br \/>\n\u4f8b\u5982\uff1a\u4ece\u79d1\u5927\u6e90\u4e0b\u8f7d\uff0c\u901a\u8fc7vim\u5de5\u5177\u4fee\u6539repo\u811a\u672c\u4e2d\u7684REPO_URL\u4e3a <a href=\"https:\/\/gerrit-googlesource.proxy.ustclug.org\/git-repo\">https:\/\/gerrit-googlesource.proxy.ustclug.org\/git-repo<\/a><\/p>\n<pre><code class=\"language-shell\">vim ~\/.bin\/repo<\/code><\/pre>\n<p>\u6dfb\u52a0143\u884c\uff1a<\/p>\n<pre><code class=\"language-python\"> 140 # repo default configuration\n 141 #\n 142 REPO_URL = os.environ.get(&#039;REPO_URL&#039;, None)\n 143 REPO_URL = &#039;https:\/\/gerrit-googlesource.proxy.ustclug.org\/git-repo&#039;\n 144 if not REPO_URL:\n 145   REPO_URL = &#039;https:\/\/gerrit.googlesource.com\/git-repo&#039;\n 146 REPO_REV = os.environ.get(&#039;REPO_REV&#039;)\n 147 if not REPO_REV:\n 148   REPO_REV = &#039;stable&#039;<\/code><\/pre>\n<p>repo\u547d\u4ee4\u53c2\u8003\u6587\u6863\uff1a<a href=\"https:\/\/gerrit.googlesource.com\/git-repo\/+\/refs\/heads\/master\/README.md\">repo<\/a><\/p>\n<h3>\u4ee3\u7801\u4e0b\u8f7d<\/h3>\n<p>\u56fd\u5185\u65e0\u6cd5\u76f4\u63a5\u8bbf\u95ee\uff0c\u53ef\u4ee5\u4f7f\u7528\u6e05\u534e\u6e90\u6216\u8005\u79d1\u5927\u7684AOSP\u6e90\u3002<\/p>\n<ul>\n<li><a href=\"https:\/\/mirrors.tuna.tsinghua.edu.cn\/aosp-monthly\/\">\u6e05\u534e\u6e90<\/a><\/li>\n<li><a href=\"https:\/\/mirrors.ustc.edu.cn\/help\/aosp.html\">\u79d1\u5927\u6e90<\/a><\/li>\n<\/ul>\n<p>\u4e0b\u9762\u4ee5\u4e0b\u8f7dandroid12 r3\u4ee3\u7801\u4e3a\u4f8b\u8bf4\u660e\uff1a<\/p>\n<ol>\n<li>\n<p>\u521b\u5efaandroid12_12.1.0.r3\u76ee\u5f55\uff0c\u5e76\u8fdb\u5165<\/p>\n<\/li>\n<li>\n<p>\u521d\u59cb\u5316\u4ee3\u7801\u4ed3<\/p>\n<pre><code class=\"language-shell\">repo init -u git:\/\/mirrors.ustc.edu.cn\/aosp\/platform\/manifest -b  android-12.1.0_r3<\/code><\/pre>\n<p>\u5982\u679c\u8981\u4e0b\u8f7d\u5176\u4ed6\u5206\u652f\u7684\u4ee3\u7801\uff0c\u4fee\u6539-b\u53c2\u6570\u5373\u53ef\u3002<br \/>\n\u5206\u652f\u4fe1\u606f\u53c2\u8003<a href=\"https:\/\/source.android.com\/setup\/start\/build-numbers#source-code-tags-and-builds\">android\u5206\u652f\u8bf4\u660e<\/a>.<\/p>\n<\/li>\n<li>\n<p>\u540c\u6b65\u4ee3\u7801<br \/>\nandroi\u4ee3\u7801\u8f83\u5927\uff0c\u540c\u6b65\u4ee3\u7801\u4f1a\u8017\u65f6\u6bd4\u8f83\u4e45\uff0c\u5efa\u8baePC\u4e0a\u81f3\u5c11\u6709200G\u53ef\u7528\u7a7a\u95f4\u3002\u4e0b\u9762\u662f\u540c\u6b65\u4ee3\u7801\u7684\u547d\u4ee4\uff0c\u4f7f\u75288\u7ebf\u7a0b\u540c\u6b65\u3002<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-shell\">repo sync -c -j8<\/code><\/pre>\n<p>\u4ee3\u7801\u4e0b\u8f7d\u53c2\u8003\u6587\u6863: <a href=\"https:\/\/source.android.com\/setup\/build\/downloading\">\u4ee3\u7801\u4e0b\u8f7d<\/a><\/p>\n<h2>\u4ee3\u7801\u7f16\u8bd1<\/h2>\n<p>\u7f16\u8bd1\u5206\u4e3a\u521d\u59cb\u5316\u7f16\u8bd1\u73af\u5883\u3001\u9009\u62e9\u7f16\u8bd1\u4ea7\u54c1\u3001\u7f16\u8bd1\u4e09\u4e2a\u6b65\u9aa4\uff1a<\/p>\n<ol>\n<li>\n<p>\u521d\u59cb\u5316\u7f16\u8bd1\u73af\u5883<\/p>\n<pre><code class=\"language-shell\">source build\/envsetup.sh<\/code><\/pre>\n<p>build\/envsetup.sh\u662f\u4e2ashell\u811a\u672c\uff0c\u6b64\u811a\u672c\u4e2d\u5b9a\u4e49\u4e86android\u7f16\u8bd1\u3001\u4ee3\u7801\u641c\u7d22\u3001\u6587\u4ef6\u641c\u7d22\u3001\u76ee\u5f55\u4e4b\u95f4\u8df3\u8f6c\u7b49\u975e\u5e38\u6709\u7528\u7684\u547d\u4ee4\u3002\u7531\u4e8eandroid\u4ee3\u7801\u91cf\u5927\uff0c\u76ee\u5f55\u6bd4\u8f83\u6df1\uff0c\u6709\u8fd9\u4e9b\u547d\u4ee4\u5927\u5927\u63d0\u9ad8\u4e86\u6548\u7387\uff0c\u8be6\u7ec6\u8bf4\u660e\u8bf7\u67e5\u770b\u6b64\u6587\u4ef6\uff0c\u6216\u8f93\u5165hmm\u547d\u4ee4\u67e5\u770b\u5e2e\u52a9\u3002<\/p>\n<\/li>\n<li>\n<p>\u9009\u62e9\u4ea7\u54c1<br \/>\n\u4f7f\u7528lunch\u9009\u62e9\u8981\u7f16\u8bd1\u7684\u4ea7\u54c1\uff0c\u6b64\u6587\u6863\u4e2d\u4ee5\u7f16\u8bd1x86_x64 emulator\u6a21\u62df\u5668\u955c\u50cf\u4e3a\u4f8b\u8fdb\u884c\u8bf4\u660e\u3002<\/p>\n<\/li>\n<\/ol>\n<p>(1). \u4fee\u6539AndroidProduct.mk\u4f7f\u652f\u6301x86_x64\u955c\u50cf\u7f16\u8bd1<br \/>\n\u7531\u4e8eandroid12 \u9ed8\u8ba4lunch\u9ed8\u8ba4\u9009\u4e0d\u5230\u6a21\u62df\u5668\u955c\u50cf\uff0c\u6240\u4ee5\u9996\u5148\u9700\u8981\u4fee\u6539mk\u3002<br \/>\n\u4fee\u6539build\/make\/target\/product\/AndroidProducts.mk\u6587\u4ef6\uff0c\u6dfb\u52a0sdk_phone_x86_64-eng\u652f\u6301<\/p>\n<pre><code class=\"language-diff\">diff --git a\/target\/product\/AndroidProducts.mk b\/target\/product\/AndroidProducts.mk\nindex 7d9d90e92a..419cccb80a 100644\n--- a\/target\/product\/AndroidProducts.mk\n+++ b\/target\/product\/AndroidProducts.mk\n@@ -84,3 +84,4 @@ COMMON_LUNCH_CHOICES := \\\n     aosp_arm-eng \\\n     aosp_x86_64-eng \\\n     aosp_x86-eng \\\n+    sdk_phone_x86_64-eng \\<\/code><\/pre>\n<p>\u53c2\u8003<a href=\"https:\/\/www.reddit.com\/r\/androiddev\/comments\/odz9sp\/building_aosp_error\/\">\u4fee\u6539<\/a>.<\/p>\n<p>(2). \u6267\u884clunch\u547d\u4ee4\u9009\u62e9\u4ea7\u54c1<\/p>\n<pre><code class=\"language-shell\">lunch sdk_phone_x86_64-eng<\/code><\/pre>\n<ol start=\"3\">\n<li>\u6267\u884c\u7f16\u8bd1<br \/>\n\u8f93\u5165m\u547d\u4ee4\u76f4\u63a5\u5f00\u59cb\u7f16\u8bd1\uff0c\u4e5f\u53ef\u4ee5\u624b\u52a8\u6307\u5b9a\u7f16\u8bd1\u7684\u7ebf\u7a0b\u3002<\/p>\n<pre><code class=\"language-shell\">~\/code\/android12_12.1.0.r3$ m\nbuild\/make\/core\/soong_config.mk:195: warning: BOARD_PLAT_PUBLIC_SEPOLICY_DIR has been deprecated. Use SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS instead.\nbuild\/make\/core\/soong_config.mk:196: warning: BOARD_PLAT_PRIVATE_SEPOLICY_DIR has been deprecated. Use SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS instead.<\/code><\/pre>\n<p>\u7f16\u8bd1\u5b8c\u6210\u4e4b\u540e\uff0c\u8f93\u51fa\u5982\u4e0b\uff1a<\/p>\n<pre><code class=\"language-shell\">......\n#### build completed successfully (29:45 (mm:ss)) ####<\/code><\/pre>\n<p>\u7f16\u8bd1\u751f\u6210\u7684\u955c\u50cf\uff0c\u5728out\/target\/product\/emulator_x86_64\u8def\u5f84\u4e0b\uff0c\u751f\u6210\u7684\u955c\u50cf\u5982\u4e0b\uff1a<\/p>\n<pre><code class=\"language-shell\">out\/target\/product\/emulator_x86_64$ ls -ah *.img\ncache.img          product.img        ramdisk.img               super_empty.img  system_ext-qemu.img  userdata.img       vendor_boot-debug.img         vendor.img\ndtb.img            product-qemu.img   ramdisk-qemu.img          super.img        system.img           userdata-qemu.img  vendor_boot.img               vendor-qemu.img\nencryptionkey.img  ramdisk-debug.img  ramdisk-test-harness.img  system_ext.img   system-qemu.img      vbmeta.img  <\/code><\/pre>\n<\/li>\n<\/ol>\n<h2>\u6a21\u62df\u5668\u6267\u884c<\/h2>\n<p>\u7f16\u8bd1\u6210\u529f\u4e4b\u540e\uff0c\u76f4\u63a5\u5728\u7f16\u8bd1\u7a97\u53e3\u8f93\u5165emulator\u547d\u4ee4\uff0c\u5373\u53ef\u542f\u52a8android\u6a21\u62df\u5668\uff0c\u5e76\u4e14\u6a21\u62df\u5668\u4f7f\u7528\u7684\u955c\u50cf\u662f\u521a\u7f16\u8bd1\u7684\u955c\u50cf\u3002<\/p>\n<pre><code class=\"language-shell\">\/code\/android12_12.1.0.r3\/out\/target\/product\/emulator_x86_64$ emulator\nemulator: Android emulator version 30.9.0.0 (build_id 7651928) (CL:N\/A)\n2022-04-21 15:06:36.680 bluetooth - \/buildbot\/src\/android\/emu-master-dev\/system\/bt\/vendor_libs\/test_vendor_lib\/model\/setup\/device_boutique.cc:33 - Register: Registering beacon_swarm\n2022-04-21 15:06:36.680 bluetooth - \/buildbot\/src\/android\/emu-master-dev\/system\/bt\/vendor_libs\/test_vendor_lib\/model\/setup\/device_boutique.cc:33 - Register: Registering beacon<\/code><\/pre>\n<p>\u6267\u884c\u6548\u679c\u5982\u4e0b\uff1a<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.swreader.com\/wp-content\/uploads\/2024\/06\/image-1719223086105.png\" alt=\"file\" \/><br \/>\n<strong>\u6ce8\u610f\uff1a<\/strong><\/p>\n<ol>\n<li>\u6b64\u5904\u7684emulator\u547d\u4ee4\u662f\u4ee3\u7801\u7f16\u8bd1\u65f6\uff0csource build\/envsetup.sh\u548clunch\u8bbe\u7f6e\u7684\u547d\u4ee4\uff0cemulator\u7684\u5b9e\u9645\u4f4d\u7f6e\u5728android\u6e90\u7801\u7684prebuilts\/android-emulator\u4e0b\u9762\uff1a\n<pre><code class=\"language-shell\">~\/code\/android12_12.1.0.r3\/out\/target\/product\/emulator_x86_64$ which emulator\n\/home\/zdm\/code\/android12_12.1.0.r3\/prebuilts\/android-emulator\/linux-x86_64\/emulator<\/code><\/pre>\n<\/li>\n<li>\u5982\u679c\u6267\u884c\u6a21\u62df\u5668\u65f6\u51fa\u73b0\u4e0b\u9762\u7684\u9519\u8bef\n<pre><code class=\"language-shell\">mulator: ERROR: Running multiple emulators with the same AVD is an experimental feature.\nPlease use -read-only flag to enable this feature.<\/code><\/pre>\n<p>\u8868\u793a\u5df2\u7ecf\u6709\u6a21\u62df\u5668\u5728\u8fd0\u884c\u4e86\uff0c\u6216\u8005\u662f\u7531\u4e8e\u6a21\u62df\u5668\u5f02\u5e38\u9000\u51fa\u5bfc\u81f4\uff0c\u5220\u9664\u4e0b\u9762\u4e24\u4e2alock\u6587\u4ef6\u5373\u53ef\u6b63\u5e38\uff1a<\/p>\n<pre><code class=\"language-shell\">$ croot\n$ cd out\/target\/product\/emulator_x86_64\n$ ls *.lock\nhardware-qemu.ini.lock  multiinstance.lock<\/code><\/pre>\n<p>\u6a21\u62df\u5668\u547d\u4ee4\u53c2\u8003<a href=\"https:\/\/developer.android.com\/studio\/run\/emulator-commandline\">\u624b\u518c<\/a><\/p>\n<h2>\u7f16\u8bd1\u6a21\u62df\u5668\u5185\u6838\u76f8\u5173<\/h2>\n<p><a href=\"https:\/\/gabrio-tognozzi.medium.com\/run-android-emulator-with-a-custom-kernel-547287ef708c\">https:\/\/gabrio-tognozzi.medium.com\/run-android-emulator-with-a-custom-kernel-547287ef708c<\/a><br \/>\n<a href=\"https:\/\/blog.csdn.net\/ldswfun\/article\/details\/119786846\">https:\/\/blog.csdn.net\/ldswfun\/article\/details\/119786846<\/a><br \/>\n<a href=\"https:\/\/download.csdn.net\/learn\/35479\/529617?spm=1002.2001.3001.4157\">https:\/\/download.csdn.net\/learn\/35479\/529617?spm=1002.2001.3001.4157<\/a><br \/>\nandroid\u8c03\u8bd5\u7b49\u7b49<br \/>\n<a href=\"http:\/\/www.juneleo.cn\/47a3736f9762\/\">http:\/\/www.juneleo.cn\/47a3736f9762\/<\/a><br \/>\n<a href=\"https:\/\/www.cxyzjd.com\/article\/u013541140\/52221290\">https:\/\/www.cxyzjd.com\/article\/u013541140\/52221290<\/a><\/p>\n<h2>\u53c2\u8003\u6587\u6863<\/h2>\n<ul>\n<li><a href=\"https:\/\/source.android.com\/\">ASOP\u5b98\u7f51<\/a><\/li>\n<li><a href=\"https:\/\/source.android.com\/setup\/contribute\/life-of-a-patch\">ASOP\u4ee3\u7801\u63d0\u4ea4\u6d41\u7a0b<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>\u8fd9\u662fandroid\u7cfb\u5217\u7684\u7b2c\u4e00\u7bc7\uff0c\u4ecb\u7ecdandroid \u5f00\u53d1\u73af\u5883\u7684\u642d\u5efa\u548c\u8c03\u8bd5\u8fc7\u7a0b\u3002\u4e0b\u9762\u5728ubuntu20.04\u4e0b\u6f14\u793a\u73af\u5883\u642d\u5efa\u7684\u8fc7\u7a0b\u3002 \u5b89\u88c5android 12\u73af\u5883\u4f9d\u8d56 \u73af\u5883\u4f9d\u8d56\u53c2\u8003\u6587\u6863: \u642d\u5efa\u7f16\u8bd1\u73af\u5883 sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig android 12\u6e90\u7801\u4e0b\u8f7d \u4e0b\u8f7drepo\u5de5\u5177 repo\u5de5\u5177\u4e0b\u8f7d AOSP\u4ee3\u7801\u901a\u8fc7git\u8fdb\u884c\u7ba1\u7406\uff0c\u4f7f\u7528repo\u7ba1\u7406\u591a\u4e2agit\u4ed3\u5e93\uff0c\u4e0b\u8f7d\u4ee3\u7801\u524d\u9700\u8981\u4e0b\u8f7drepo\u5de5\u5177\u3002 \u5bf9\u4e8eubuntu\uff0c\u5728ubuntu\u7684\u8f6f\u4ef6\u6e90\u4e2d\u6709repo\u5de5\u5177\uff0c\u53ef\u4ee5\u76f4\u63a5\u901a\u8fc7apt\u5b89\u88c5\uff1a # Debian\/Ubuntu. $ sudo apt-get install repo \u6216\u8005\u901a\u8fc7\u6267\u884c\u4e0b\u9762\u7684\u811a\u672c\u8fdb\u884c\u5b89\u88c5\uff1a $ mkdir -p ~\/.bin $ PATH=&quot;${HOME}\/.bin:${PATH}&quot; $ curl https:\/\/storage.googleapis.com\/git-repo-downloads\/repo &gt; ~\/.bin\/repo $ chmod a+rx ~\/.bin\/repo \u56fd\u5185repo\u5de5\u5177\u4fee\u6539 \u7531\u4e8e\u56fd\u5185\u65e0\u6cd5google\u670d\u52a1\u5668\u4e0b\u8f7dAOSP\u4ee3\u7801\uff0c\u6240\u4ee5\u9700\u8981\u4fee\u6539repo\u5de5\u5177\u4ece\u56fd\u5185\u955c\u50cf\u670d\u52a1\u5668\u4e0b\u8f7d\u3002 \u4f8b\u5982\uff1a\u4ece\u79d1\u5927\u6e90\u4e0b\u8f7d\uff0c\u901a\u8fc7vim\u5de5\u5177\u4fee\u6539repo\u811a\u672c\u4e2d\u7684REPO_URL\u4e3a https:\/\/gerrit-googlesource.proxy.ustclug.org\/git-repo vim ~\/.bin\/repo \u6dfb\u52a0143\u884c\uff1a 140 # repo default configuration 141 # 142 REPO_URL = os.environ.get(&#039;REPO_URL&#039;, None) 143 REPO_URL = &#039;https:\/\/gerrit-googlesource.proxy.ustclug.org\/git-repo&#039; 144 if not REPO_URL: 145 REPO_URL = &#039;https:\/\/gerrit.googlesource.com\/git-repo&#039; 146 REPO_REV = os.environ.get(&#039;REPO_REV&#039;) 147 if not REPO_REV: 148 REPO_REV = &#039;stable&#039; repo\u547d\u4ee4\u53c2\u8003\u6587\u6863\uff1arepo \u4ee3\u7801\u4e0b\u8f7d \u56fd\u5185\u65e0\u6cd5\u76f4\u63a5\u8bbf\u95ee\uff0c\u53ef\u4ee5\u4f7f\u7528\u6e05\u534e\u6e90\u6216\u8005\u79d1\u5927\u7684AOSP\u6e90\u3002 \u6e05\u534e\u6e90 \u79d1\u5927\u6e90 \u4e0b\u9762\u4ee5\u4e0b\u8f7dandroid12 r3\u4ee3\u7801\u4e3a\u4f8b\u8bf4\u660e\uff1a \u521b\u5efaandroid12_12.1.0.r3\u76ee\u5f55\uff0c\u5e76\u8fdb\u5165 \u521d\u59cb\u5316\u4ee3\u7801\u4ed3 repo init -u git:\/\/mirrors.ustc.edu.cn\/aosp\/platform\/manifest -b android-12.1.0_r3 \u5982\u679c\u8981\u4e0b\u8f7d\u5176\u4ed6\u5206\u652f\u7684\u4ee3\u7801\uff0c\u4fee\u6539-b\u53c2\u6570\u5373\u53ef\u3002 \u5206\u652f\u4fe1\u606f\u53c2\u8003android\u5206\u652f\u8bf4\u660e. \u540c\u6b65\u4ee3\u7801 androi\u4ee3\u7801\u8f83\u5927\uff0c\u540c\u6b65\u4ee3\u7801\u4f1a\u8017\u65f6\u6bd4\u8f83\u4e45\uff0c\u5efa\u8baePC\u4e0a\u81f3\u5c11\u6709200G\u53ef\u7528\u7a7a\u95f4\u3002\u4e0b\u9762\u662f\u540c\u6b65\u4ee3\u7801\u7684\u547d\u4ee4\uff0c\u4f7f\u75288\u7ebf\u7a0b\u540c\u6b65\u3002 repo sync -c -j8 \u4ee3\u7801\u4e0b\u8f7d\u53c2\u8003\u6587\u6863: \u4ee3\u7801\u4e0b\u8f7d \u4ee3\u7801\u7f16\u8bd1 \u7f16\u8bd1\u5206\u4e3a\u521d\u59cb\u5316\u7f16\u8bd1\u73af\u5883\u3001\u9009\u62e9\u7f16\u8bd1\u4ea7\u54c1\u3001\u7f16\u8bd1\u4e09\u4e2a\u6b65\u9aa4\uff1a \u521d\u59cb\u5316\u7f16\u8bd1\u73af\u5883 source build\/envsetup.sh build\/envsetup.sh\u662f\u4e2ashell\u811a\u672c\uff0c\u6b64\u811a\u672c\u4e2d\u5b9a\u4e49\u4e86android\u7f16\u8bd1\u3001\u4ee3\u7801\u641c\u7d22\u3001\u6587\u4ef6\u641c\u7d22\u3001\u76ee\u5f55\u4e4b\u95f4\u8df3\u8f6c\u7b49\u975e\u5e38\u6709\u7528\u7684\u547d\u4ee4\u3002\u7531\u4e8eandroid\u4ee3\u7801\u91cf\u5927\uff0c\u76ee\u5f55\u6bd4\u8f83\u6df1\uff0c\u6709\u8fd9\u4e9b\u547d\u4ee4\u5927\u5927\u63d0\u9ad8\u4e86\u6548\u7387\uff0c\u8be6\u7ec6\u8bf4\u660e\u8bf7\u67e5\u770b\u6b64\u6587\u4ef6\uff0c\u6216\u8f93\u5165hmm\u547d\u4ee4\u67e5\u770b\u5e2e\u52a9\u3002 \u9009\u62e9\u4ea7\u54c1 \u4f7f\u7528lunch\u9009\u62e9\u8981\u7f16\u8bd1\u7684\u4ea7\u54c1\uff0c\u6b64\u6587\u6863\u4e2d\u4ee5\u7f16\u8bd1x86_x64 emulator\u6a21\u62df\u5668\u955c\u50cf\u4e3a\u4f8b\u8fdb\u884c\u8bf4\u660e\u3002 (1). \u4fee\u6539AndroidProduct.mk\u4f7f\u652f\u6301x86_x64\u955c\u50cf\u7f16\u8bd1 \u7531\u4e8eandroid12 \u9ed8\u8ba4lunch\u9ed8\u8ba4\u9009\u4e0d\u5230\u6a21\u62df\u5668\u955c\u50cf\uff0c\u6240\u4ee5\u9996\u5148\u9700\u8981\u4fee\u6539mk\u3002 \u4fee\u6539build\/make\/target\/product\/AndroidProducts.mk\u6587\u4ef6\uff0c\u6dfb\u52a0sdk_phone_x86_64-eng\u652f\u6301 diff &#8211;git&#8230;<\/p>\n","protected":false},"author":1,"featured_media":207,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[3],"tags":[14,9,199,189,187,197,191,193,195],"class_list":["post-204","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","tag-android","tag-build","tag-repo-","tag-ubuntu","tag-187","tag-197","tag-191","tag-193","tag-195"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Android 12\u7f16\u8bd1\u73af\u5883\u642d\u5efa - TianYa Blog<\/title>\n<meta name=\"description\" content=\"\u8fd9\u7bc7\u6587\u7ae0\u8be6\u7ec6\u4ecb\u7ecd\u4e86\u5982\u4f55\u5728 Ubuntu 20.04 \u73af\u5883\u4e0b\u642d\u5efa Android 12 \u7684\u5f00\u53d1\u73af\u5883\uff0c\u5e76\u6f14\u793a\u8c03\u8bd5\u8fc7\u7a0b\u3002\u5185\u5bb9\u6db5\u76d6\u5b89\u88c5\u6240\u9700\u4f9d\u8d56\u3001\u4e0b\u8f7d\u548c\u914d\u7f6e repo \u5de5\u5177\u3001\u4ece\u56fd\u5185\u955c\u50cf\u6e90\u4e0b\u8f7d AOSP \u6e90\u7801\u3001\u521d\u59cb\u5316\u548c\u540c\u6b65\u4ee3\u7801\u3001\u8fdb\u884c\u4ee3\u7801\u7f16\u8bd1\u3001\u4ee5\u53ca\u4f7f\u7528\u6a21\u62df\u5668\u8fdb\u884c\u8c03\u8bd5\u7684\u6b65\u9aa4\u3002\u6587\u4e2d\u8fd8\u63d0\u4f9b\u4e86\u5fc5\u8981\u7684\u4ee3\u7801\u4fee\u6539\u548c\u5e38\u89c1\u95ee\u9898\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u9002\u7528\u4e8e\u5f00\u53d1\u8005\u5728\u672c\u5730\u642d\u5efa\u5b8c\u6574\u7684 Android \u5f00\u53d1\u73af\u5883\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.swreader.com\/index.php\/2024\/06\/24\/android-12\u7f16\u8bd1\u73af\u5883\u642d\u5efa\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android 12\u7f16\u8bd1\u73af\u5883\u642d\u5efa - TianYa Blog\" \/>\n<meta property=\"og:description\" content=\"\u8fd9\u7bc7\u6587\u7ae0\u8be6\u7ec6\u4ecb\u7ecd\u4e86\u5982\u4f55\u5728 Ubuntu 20.04 \u73af\u5883\u4e0b\u642d\u5efa Android 12 \u7684\u5f00\u53d1\u73af\u5883\uff0c\u5e76\u6f14\u793a\u8c03\u8bd5\u8fc7\u7a0b\u3002\u5185\u5bb9\u6db5\u76d6\u5b89\u88c5\u6240\u9700\u4f9d\u8d56\u3001\u4e0b\u8f7d\u548c\u914d\u7f6e repo \u5de5\u5177\u3001\u4ece\u56fd\u5185\u955c\u50cf\u6e90\u4e0b\u8f7d AOSP \u6e90\u7801\u3001\u521d\u59cb\u5316\u548c\u540c\u6b65\u4ee3\u7801\u3001\u8fdb\u884c\u4ee3\u7801\u7f16\u8bd1\u3001\u4ee5\u53ca\u4f7f\u7528\u6a21\u62df\u5668\u8fdb\u884c\u8c03\u8bd5\u7684\u6b65\u9aa4\u3002\u6587\u4e2d\u8fd8\u63d0\u4f9b\u4e86\u5fc5\u8981\u7684\u4ee3\u7801\u4fee\u6539\u548c\u5e38\u89c1\u95ee\u9898\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u9002\u7528\u4e8e\u5f00\u53d1\u8005\u5728\u672c\u5730\u642d\u5efa\u5b8c\u6574\u7684 Android \u5f00\u53d1\u73af\u5883\u3002\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.swreader.com\/index.php\/2024\/06\/24\/android-12\u7f16\u8bd1\u73af\u5883\u642d\u5efa\/\" \/>\n<meta property=\"og:site_name\" content=\"TianYa Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-24T10:02:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-24T10:04:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.swreader.com\/wp-content\/uploads\/2024\/06\/unnamed.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t<meta property=\"og:image:height\" content=\"288\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"zdm\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"zdm\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.swreader.com\\\/index.php\\\/2024\\\/06\\\/24\\\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.swreader.com\\\/index.php\\\/2024\\\/06\\\/24\\\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\\\/\"},\"author\":{\"name\":\"zdm\",\"@id\":\"https:\\\/\\\/www.swreader.com\\\/#\\\/schema\\\/person\\\/9c90501e33afc9307d757bc8cfaf1c6f\"},\"headline\":\"Android 12\u7f16\u8bd1\u73af\u5883\u642d\u5efa\",\"datePublished\":\"2024-06-24T10:02:10+00:00\",\"dateModified\":\"2024-06-24T10:04:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.swreader.com\\\/index.php\\\/2024\\\/06\\\/24\\\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\\\/\"},\"wordCount\":126,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.swreader.com\\\/#\\\/schema\\\/person\\\/9c90501e33afc9307d757bc8cfaf1c6f\"},\"image\":{\"@id\":\"https:\\\/\\\/www.swreader.com\\\/index.php\\\/2024\\\/06\\\/24\\\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.swreader.com\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/unnamed.gif\",\"keywords\":[\"Android\",\"Build\",\"repo \u5de5\u5177\",\"Ubuntu\",\"\u5f00\u53d1\u73af\u5883\",\"\u6a21\u62df\u5668\",\"\u6e90\u7801\u4e0b\u8f7d\",\"\u7f16\u8bd1\",\"\u8c03\u8bd5\"],\"articleSection\":[\"Android\"],\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.swreader.com\\\/index.php\\\/2024\\\/06\\\/24\\\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.swreader.com\\\/index.php\\\/2024\\\/06\\\/24\\\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\\\/\",\"url\":\"https:\\\/\\\/www.swreader.com\\\/index.php\\\/2024\\\/06\\\/24\\\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\\\/\",\"name\":\"Android 12\u7f16\u8bd1\u73af\u5883\u642d\u5efa - TianYa Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.swreader.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.swreader.com\\\/index.php\\\/2024\\\/06\\\/24\\\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.swreader.com\\\/index.php\\\/2024\\\/06\\\/24\\\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.swreader.com\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/unnamed.gif\",\"datePublished\":\"2024-06-24T10:02:10+00:00\",\"dateModified\":\"2024-06-24T10:04:00+00:00\",\"description\":\"\u8fd9\u7bc7\u6587\u7ae0\u8be6\u7ec6\u4ecb\u7ecd\u4e86\u5982\u4f55\u5728 Ubuntu 20.04 \u73af\u5883\u4e0b\u642d\u5efa Android 12 \u7684\u5f00\u53d1\u73af\u5883\uff0c\u5e76\u6f14\u793a\u8c03\u8bd5\u8fc7\u7a0b\u3002\u5185\u5bb9\u6db5\u76d6\u5b89\u88c5\u6240\u9700\u4f9d\u8d56\u3001\u4e0b\u8f7d\u548c\u914d\u7f6e repo \u5de5\u5177\u3001\u4ece\u56fd\u5185\u955c\u50cf\u6e90\u4e0b\u8f7d AOSP \u6e90\u7801\u3001\u521d\u59cb\u5316\u548c\u540c\u6b65\u4ee3\u7801\u3001\u8fdb\u884c\u4ee3\u7801\u7f16\u8bd1\u3001\u4ee5\u53ca\u4f7f\u7528\u6a21\u62df\u5668\u8fdb\u884c\u8c03\u8bd5\u7684\u6b65\u9aa4\u3002\u6587\u4e2d\u8fd8\u63d0\u4f9b\u4e86\u5fc5\u8981\u7684\u4ee3\u7801\u4fee\u6539\u548c\u5e38\u89c1\u95ee\u9898\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u9002\u7528\u4e8e\u5f00\u53d1\u8005\u5728\u672c\u5730\u642d\u5efa\u5b8c\u6574\u7684 Android \u5f00\u53d1\u73af\u5883\u3002\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.swreader.com\\\/index.php\\\/2024\\\/06\\\/24\\\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\\\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.swreader.com\\\/index.php\\\/2024\\\/06\\\/24\\\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\\\/\\\/www.swreader.com\\\/index.php\\\/2024\\\/06\\\/24\\\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.swreader.com\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/unnamed.gif\",\"contentUrl\":\"https:\\\/\\\/www.swreader.com\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/unnamed.gif\",\"width\":512,\"height\":288},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.swreader.com\\\/index.php\\\/2024\\\/06\\\/24\\\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\\\/\\\/www.swreader.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Android 12\u7f16\u8bd1\u73af\u5883\u642d\u5efa\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.swreader.com\\\/#website\",\"url\":\"https:\\\/\\\/www.swreader.com\\\/\",\"name\":\"TianYa Blog\",\"description\":\"Technology And Life\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.swreader.com\\\/#\\\/schema\\\/person\\\/9c90501e33afc9307d757bc8cfaf1c6f\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.swreader.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-Hans\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.swreader.com\\\/#\\\/schema\\\/person\\\/9c90501e33afc9307d757bc8cfaf1c6f\",\"name\":\"zdm\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2670c9b6412a56381880b2ca03988f659e8a378fe7332238a4a741b660a60997?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2670c9b6412a56381880b2ca03988f659e8a378fe7332238a4a741b660a60997?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2670c9b6412a56381880b2ca03988f659e8a378fe7332238a4a741b660a60997?s=96&d=mm&r=g\",\"caption\":\"zdm\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2670c9b6412a56381880b2ca03988f659e8a378fe7332238a4a741b660a60997?s=96&d=mm&r=g\"},\"sameAs\":[\"http:\\\/\\\/www.swreader.com\"],\"url\":\"https:\\\/\\\/www.swreader.com\\\/index.php\\\/author\\\/zdm\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Android 12\u7f16\u8bd1\u73af\u5883\u642d\u5efa - TianYa Blog","description":"\u8fd9\u7bc7\u6587\u7ae0\u8be6\u7ec6\u4ecb\u7ecd\u4e86\u5982\u4f55\u5728 Ubuntu 20.04 \u73af\u5883\u4e0b\u642d\u5efa Android 12 \u7684\u5f00\u53d1\u73af\u5883\uff0c\u5e76\u6f14\u793a\u8c03\u8bd5\u8fc7\u7a0b\u3002\u5185\u5bb9\u6db5\u76d6\u5b89\u88c5\u6240\u9700\u4f9d\u8d56\u3001\u4e0b\u8f7d\u548c\u914d\u7f6e repo \u5de5\u5177\u3001\u4ece\u56fd\u5185\u955c\u50cf\u6e90\u4e0b\u8f7d AOSP \u6e90\u7801\u3001\u521d\u59cb\u5316\u548c\u540c\u6b65\u4ee3\u7801\u3001\u8fdb\u884c\u4ee3\u7801\u7f16\u8bd1\u3001\u4ee5\u53ca\u4f7f\u7528\u6a21\u62df\u5668\u8fdb\u884c\u8c03\u8bd5\u7684\u6b65\u9aa4\u3002\u6587\u4e2d\u8fd8\u63d0\u4f9b\u4e86\u5fc5\u8981\u7684\u4ee3\u7801\u4fee\u6539\u548c\u5e38\u89c1\u95ee\u9898\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u9002\u7528\u4e8e\u5f00\u53d1\u8005\u5728\u672c\u5730\u642d\u5efa\u5b8c\u6574\u7684 Android \u5f00\u53d1\u73af\u5883\u3002","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:\/\/www.swreader.com\/index.php\/2024\/06\/24\/android-12\u7f16\u8bd1\u73af\u5883\u642d\u5efa\/","og_locale":"zh_CN","og_type":"article","og_title":"Android 12\u7f16\u8bd1\u73af\u5883\u642d\u5efa - TianYa Blog","og_description":"\u8fd9\u7bc7\u6587\u7ae0\u8be6\u7ec6\u4ecb\u7ecd\u4e86\u5982\u4f55\u5728 Ubuntu 20.04 \u73af\u5883\u4e0b\u642d\u5efa Android 12 \u7684\u5f00\u53d1\u73af\u5883\uff0c\u5e76\u6f14\u793a\u8c03\u8bd5\u8fc7\u7a0b\u3002\u5185\u5bb9\u6db5\u76d6\u5b89\u88c5\u6240\u9700\u4f9d\u8d56\u3001\u4e0b\u8f7d\u548c\u914d\u7f6e repo \u5de5\u5177\u3001\u4ece\u56fd\u5185\u955c\u50cf\u6e90\u4e0b\u8f7d AOSP \u6e90\u7801\u3001\u521d\u59cb\u5316\u548c\u540c\u6b65\u4ee3\u7801\u3001\u8fdb\u884c\u4ee3\u7801\u7f16\u8bd1\u3001\u4ee5\u53ca\u4f7f\u7528\u6a21\u62df\u5668\u8fdb\u884c\u8c03\u8bd5\u7684\u6b65\u9aa4\u3002\u6587\u4e2d\u8fd8\u63d0\u4f9b\u4e86\u5fc5\u8981\u7684\u4ee3\u7801\u4fee\u6539\u548c\u5e38\u89c1\u95ee\u9898\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u9002\u7528\u4e8e\u5f00\u53d1\u8005\u5728\u672c\u5730\u642d\u5efa\u5b8c\u6574\u7684 Android \u5f00\u53d1\u73af\u5883\u3002","og_url":"https:\/\/www.swreader.com\/index.php\/2024\/06\/24\/android-12\u7f16\u8bd1\u73af\u5883\u642d\u5efa\/","og_site_name":"TianYa Blog","article_published_time":"2024-06-24T10:02:10+00:00","article_modified_time":"2024-06-24T10:04:00+00:00","og_image":[{"width":512,"height":288,"url":"https:\/\/www.swreader.com\/wp-content\/uploads\/2024\/06\/unnamed.gif","type":"image\/gif"}],"author":"zdm","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"zdm","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"1 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.swreader.com\/index.php\/2024\/06\/24\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\/#article","isPartOf":{"@id":"https:\/\/www.swreader.com\/index.php\/2024\/06\/24\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\/"},"author":{"name":"zdm","@id":"https:\/\/www.swreader.com\/#\/schema\/person\/9c90501e33afc9307d757bc8cfaf1c6f"},"headline":"Android 12\u7f16\u8bd1\u73af\u5883\u642d\u5efa","datePublished":"2024-06-24T10:02:10+00:00","dateModified":"2024-06-24T10:04:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.swreader.com\/index.php\/2024\/06\/24\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\/"},"wordCount":126,"commentCount":0,"publisher":{"@id":"https:\/\/www.swreader.com\/#\/schema\/person\/9c90501e33afc9307d757bc8cfaf1c6f"},"image":{"@id":"https:\/\/www.swreader.com\/index.php\/2024\/06\/24\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\/#primaryimage"},"thumbnailUrl":"https:\/\/www.swreader.com\/wp-content\/uploads\/2024\/06\/unnamed.gif","keywords":["Android","Build","repo \u5de5\u5177","Ubuntu","\u5f00\u53d1\u73af\u5883","\u6a21\u62df\u5668","\u6e90\u7801\u4e0b\u8f7d","\u7f16\u8bd1","\u8c03\u8bd5"],"articleSection":["Android"],"inLanguage":"zh-Hans","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.swreader.com\/index.php\/2024\/06\/24\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.swreader.com\/index.php\/2024\/06\/24\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\/","url":"https:\/\/www.swreader.com\/index.php\/2024\/06\/24\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\/","name":"Android 12\u7f16\u8bd1\u73af\u5883\u642d\u5efa - TianYa Blog","isPartOf":{"@id":"https:\/\/www.swreader.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.swreader.com\/index.php\/2024\/06\/24\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\/#primaryimage"},"image":{"@id":"https:\/\/www.swreader.com\/index.php\/2024\/06\/24\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\/#primaryimage"},"thumbnailUrl":"https:\/\/www.swreader.com\/wp-content\/uploads\/2024\/06\/unnamed.gif","datePublished":"2024-06-24T10:02:10+00:00","dateModified":"2024-06-24T10:04:00+00:00","description":"\u8fd9\u7bc7\u6587\u7ae0\u8be6\u7ec6\u4ecb\u7ecd\u4e86\u5982\u4f55\u5728 Ubuntu 20.04 \u73af\u5883\u4e0b\u642d\u5efa Android 12 \u7684\u5f00\u53d1\u73af\u5883\uff0c\u5e76\u6f14\u793a\u8c03\u8bd5\u8fc7\u7a0b\u3002\u5185\u5bb9\u6db5\u76d6\u5b89\u88c5\u6240\u9700\u4f9d\u8d56\u3001\u4e0b\u8f7d\u548c\u914d\u7f6e repo \u5de5\u5177\u3001\u4ece\u56fd\u5185\u955c\u50cf\u6e90\u4e0b\u8f7d AOSP \u6e90\u7801\u3001\u521d\u59cb\u5316\u548c\u540c\u6b65\u4ee3\u7801\u3001\u8fdb\u884c\u4ee3\u7801\u7f16\u8bd1\u3001\u4ee5\u53ca\u4f7f\u7528\u6a21\u62df\u5668\u8fdb\u884c\u8c03\u8bd5\u7684\u6b65\u9aa4\u3002\u6587\u4e2d\u8fd8\u63d0\u4f9b\u4e86\u5fc5\u8981\u7684\u4ee3\u7801\u4fee\u6539\u548c\u5e38\u89c1\u95ee\u9898\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u9002\u7528\u4e8e\u5f00\u53d1\u8005\u5728\u672c\u5730\u642d\u5efa\u5b8c\u6574\u7684 Android \u5f00\u53d1\u73af\u5883\u3002","breadcrumb":{"@id":"https:\/\/www.swreader.com\/index.php\/2024\/06\/24\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.swreader.com\/index.php\/2024\/06\/24\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\/"]}]},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.swreader.com\/index.php\/2024\/06\/24\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\/#primaryimage","url":"https:\/\/www.swreader.com\/wp-content\/uploads\/2024\/06\/unnamed.gif","contentUrl":"https:\/\/www.swreader.com\/wp-content\/uploads\/2024\/06\/unnamed.gif","width":512,"height":288},{"@type":"BreadcrumbList","@id":"https:\/\/www.swreader.com\/index.php\/2024\/06\/24\/android-12%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.swreader.com\/"},{"@type":"ListItem","position":2,"name":"Android 12\u7f16\u8bd1\u73af\u5883\u642d\u5efa"}]},{"@type":"WebSite","@id":"https:\/\/www.swreader.com\/#website","url":"https:\/\/www.swreader.com\/","name":"TianYa Blog","description":"Technology And Life","publisher":{"@id":"https:\/\/www.swreader.com\/#\/schema\/person\/9c90501e33afc9307d757bc8cfaf1c6f"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.swreader.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-Hans"},{"@type":["Person","Organization"],"@id":"https:\/\/www.swreader.com\/#\/schema\/person\/9c90501e33afc9307d757bc8cfaf1c6f","name":"zdm","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/secure.gravatar.com\/avatar\/2670c9b6412a56381880b2ca03988f659e8a378fe7332238a4a741b660a60997?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2670c9b6412a56381880b2ca03988f659e8a378fe7332238a4a741b660a60997?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2670c9b6412a56381880b2ca03988f659e8a378fe7332238a4a741b660a60997?s=96&d=mm&r=g","caption":"zdm"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/2670c9b6412a56381880b2ca03988f659e8a378fe7332238a4a741b660a60997?s=96&d=mm&r=g"},"sameAs":["http:\/\/www.swreader.com"],"url":"https:\/\/www.swreader.com\/index.php\/author\/zdm\/"}]}},"_links":{"self":[{"href":"https:\/\/www.swreader.com\/index.php\/wp-json\/wp\/v2\/posts\/204","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.swreader.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.swreader.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.swreader.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.swreader.com\/index.php\/wp-json\/wp\/v2\/comments?post=204"}],"version-history":[{"count":1,"href":"https:\/\/www.swreader.com\/index.php\/wp-json\/wp\/v2\/posts\/204\/revisions"}],"predecessor-version":[{"id":206,"href":"https:\/\/www.swreader.com\/index.php\/wp-json\/wp\/v2\/posts\/204\/revisions\/206"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.swreader.com\/index.php\/wp-json\/wp\/v2\/media\/207"}],"wp:attachment":[{"href":"https:\/\/www.swreader.com\/index.php\/wp-json\/wp\/v2\/media?parent=204"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.swreader.com\/index.php\/wp-json\/wp\/v2\/categories?post=204"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.swreader.com\/index.php\/wp-json\/wp\/v2\/tags?post=204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}