{"id":12773,"date":"2024-04-02T11:30:46","date_gmt":"2024-04-02T03:30:46","guid":{"rendered":"http:\/\/xinyiworld.top\/wordpress_it\/?p=12773"},"modified":"2025-01-09T21:24:54","modified_gmt":"2025-01-09T13:24:54","slug":"%e7%a6%81%e6%ad%a2%e6%ba%90%e7%94%9f%e6%a8%a1%e5%9d%97%e7%9a%84%e7%bc%96%e8%af%91","status":"publish","type":"post","link":"http:\/\/xinyiworld.top\/wordpress_it\/?p=12773","title":{"rendered":"\u7981\u6b62\u539f\u751f\u6a21\u5757\u7684\u7f16\u8bd1"},"content":{"rendered":"<p>\u88c1\u526a\uff0c\u9996\u5148\u9700\u8981\u660e\u767d\u6a21\u5757\u52a0\u8f7d\u7684\u539f\u7406\uff0c\u5728\u5176\u76f8\u5173\u7684\u53d8\u91cf\u4e2d\u8fc7\u6ee4\u6389\u8981\u88c1\u526a\u7684\u6a21\u5757\u5373\u53ef\u3002<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_16 counter-hierarchy counter-decimal ez-toc-grey\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\">\u76ee\u5f55<\/p>\n<span class=\"ez-toc-title-toggle\"><a class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" style=\"display: none;\"><i class=\"ez-toc-glyphicon ez-toc-icon-toggle\"><\/i><\/a><\/span><\/div>\n<nav><ul class=\"ez-toc-list ez-toc-list-level-1\"><ul class=\"ez-toc-list-level-2\"><li class=\"ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-1\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=12773\/#%E4%B8%80%E3%80%81%E7%A7%BB%E9%99%A4%E5%8E%9F%E7%94%9F%E5%BA%94%E7%94%A8%E7%9A%84%E5%A4%9A%E7%A7%8D%E6%96%B9%E5%BC%8F\" title=\"\u4e00\u3001\u79fb\u9664\u539f\u751f\u5e94\u7528\u7684\u591a\u79cd\u65b9\u5f0f\">\u4e00\u3001\u79fb\u9664\u539f\u751f\u5e94\u7528\u7684\u591a\u79cd\u65b9\u5f0f<\/a><ul class=\"ez-toc-list-level-3\"><li class=\"ez-toc-heading-level-3\"><a class=\"ez-toc-link ez-toc-heading-2\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=12773\/#%E6%96%B9%E6%B3%95%E4%B8%80%E3%80%81%E6%94%B9%E5%86%99Androidmk\" title=\"\u65b9\u6cd5\u4e00\u3001\u6539\u5199Android.mk\">\u65b9\u6cd5\u4e00\u3001\u6539\u5199Android.mk<\/a><ul class=\"ez-toc-list-level-4\"><li class=\"ez-toc-heading-level-4\"><a class=\"ez-toc-link ez-toc-heading-3\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=12773\/#%E6%96%B9%E5%BC%8F1%E9%87%8D%E5%91%BD%E5%90%8DEmail%E7%9A%84Androidmk\" title=\"\u65b9\u5f0f1.\u91cd\u547d\u540dEmail\u7684Android.mk\">\u65b9\u5f0f1.\u91cd\u547d\u540dEmail\u7684Android.mk<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-4\"><a class=\"ez-toc-link ez-toc-heading-4\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=12773\/#%E6%96%B9%E5%BC%8F2make%E6%97%B6%E4%BC%A0%E9%80%92%E5%8F%98%E9%87%8F%EF%BC%8C%E9%80%9A%E8%BF%87%E5%8F%98%E9%87%8F%E6%8E%A7%E5%88%B6Androidmk%E7%9A%84%E7%BC%96%E8%AF%91\" title=\"\u65b9\u5f0f2.make\u65f6\u4f20\u9012\u53d8\u91cf\uff0c\u901a\u8fc7\u53d8\u91cf\u63a7\u5236Android.mk\u7684\u7f16\u8bd1\">\u65b9\u5f0f2.make\u65f6\u4f20\u9012\u53d8\u91cf\uff0c\u901a\u8fc7\u53d8\u91cf\u63a7\u5236Android.mk\u7684\u7f16\u8bd1<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-5\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=12773\/#%E7%84%B6%E5%90%8E%E6%89%A7%E8%A1%8C%E7%BC%96%E8%AF%91%E5%91%BD%E4%BB%A4\" title=\"\u7136\u540e\u6267\u884c\u7f16\u8bd1\u547d\u4ee4\">\u7136\u540e\u6267\u884c\u7f16\u8bd1\u547d\u4ee4<\/a><ul class=\"ez-toc-list-level-3\"><li class=\"ez-toc-heading-level-3\"><ul class=\"ez-toc-list-level-3\"><li class=\"ez-toc-heading-level-3\"><a class=\"ez-toc-link ez-toc-heading-6\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=12773\/#%E6%96%B9%E6%B3%95%E4%BA%8C%E3%80%81PRODUCT_PACKAGES%E7%A7%BB%E9%99%A4%E6%B3%A8%E9%87%8AEmail\" title=\"\u65b9\u6cd5\u4e8c\u3001PRODUCT_PACKAGES\u79fb\u9664\/\u6ce8\u91caEmail\">\u65b9\u6cd5\u4e8c\u3001PRODUCT_PACKAGES\u79fb\u9664\/\u6ce8\u91caEmail<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-3\"><a class=\"ez-toc-link ez-toc-heading-7\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=12773\/#%E6%96%B9%E6%B3%95%E4%B8%89%E3%80%81%E4%BD%BF%E7%94%A8LOCAL_OVERRIDES_PACKAGES%E6%A0%87%E7%AD%BE\" title=\"\u65b9\u6cd5\u4e09\u3001\u4f7f\u7528LOCAL_OVERRIDES_PACKAGES\u6807\u7b7e\">\u65b9\u6cd5\u4e09\u3001\u4f7f\u7528LOCAL_OVERRIDES_PACKAGES\u6807\u7b7e<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-3\"><a class=\"ez-toc-link ez-toc-heading-8\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=12773\/#%E6%96%B9%E6%B3%95%E5%9B%9B%E3%80%81%E9%85%8D%E7%BD%AETARGET_REMOVE_PACKAGES%E5%B1%9E%E6%80%A7\" title=\"\u65b9\u6cd5\u56db\u3001\u914d\u7f6eTARGET_REMOVE_PACKAGES\u5c5e\u6027\">\u65b9\u6cd5\u56db\u3001\u914d\u7f6eTARGET_REMOVE_PACKAGES\u5c5e\u6027<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-3\"><a class=\"ez-toc-link ez-toc-heading-9\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=12773\/#%E6%96%B9%E6%B3%95%E4%BA%94%EF%BC%9A%E8%87%AA%E5%AE%9A%E4%B9%89PRODUCT_DEL_PACKAGES%E5%8F%98%E9%87%8F\" title=\"\u65b9\u6cd5\u4e94\uff1a\u81ea\u5b9a\u4e49PRODUCT_DEL_PACKAGES\u53d8\u91cf\">\u65b9\u6cd5\u4e94\uff1a\u81ea\u5b9a\u4e49PRODUCT_DEL_PACKAGES\u53d8\u91cf<\/a><\/li><\/ul><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-10\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=12773\/#%E4%BA%8C%E3%80%81%E7%A7%BB%E9%99%A4so%E5%BA%93\" title=\"\u4e8c\u3001\u79fb\u9664so\u5e93\">\u4e8c\u3001\u79fb\u9664so\u5e93<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%E4%B8%80%E3%80%81%E7%A7%BB%E9%99%A4%E5%8E%9F%E7%94%9F%E5%BA%94%E7%94%A8%E7%9A%84%E5%A4%9A%E7%A7%8D%E6%96%B9%E5%BC%8F\"><\/span>\u4e00\u3001\u79fb\u9664\u539f\u751f\u5e94\u7528\u7684\u591a\u79cd\u65b9\u5f0f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><a href=\"https:\/\/blog.csdn.net\/supernova_TOP\/article\/details\/126708316\">https:\/\/blog.csdn.net\/supernova_TOP\/article\/details\/126708316<\/a><\/p>\n<p>\u672c\u6587\u5217\u4e3e\u4e86\u56db\u79cd\u65b9\u5f0f\u79fb\u9664\u539f\u751f\u7cfb\u7edf\u4e2d\u9ed8\u8ba4\u5185\u7f6e\u7684\u5e94\u7528\uff08\u4ee5Email\u4e3a\u4f8b\uff09,\u63a8\u8350\u4f7f\u7528\u65b9\u6cd5\u56db<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E6%96%B9%E6%B3%95%E4%B8%80%E3%80%81%E6%94%B9%E5%86%99Androidmk\"><\/span>\u65b9\u6cd5\u4e00\u3001\u6539\u5199Android.mk<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"%E6%96%B9%E5%BC%8F1%E9%87%8D%E5%91%BD%E5%90%8DEmail%E7%9A%84Androidmk\"><\/span>\u65b9\u5f0f1.\u91cd\u547d\u540dEmail\u7684Android.mk<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u5c06Email\u7684Android.mk \u91cd\u547d\u540d\u4e3aAndroid.mk.bak,\u4f7f\u5f97\u5728\u7f16\u8bd1\u65f6\u4e0d\u4f1a\u52a0\u8f7d\u5176mk\u56e0\u6b64Email\u5e94\u7528\u4e0d\u4f1a\u88ab\u7f16\u8bd1\u8fdb\u7cfb\u7edf\u3002<\/p>\n<p><code>packages\\apps\\Email\\Android.mk -&gt; packages\\apps\\Email\\Android.mk.bak<\/code><\/p>\n<p>\u7f3a\u70b9\uff1a\u5f53\u9700\u8981\u79fb\u9664\u591a\u4e2a\u5e94\u7528\u65f6\u4e0d\u4fbf\u4e8e\u7edf\u4e00\u7ba1\u7406\u548c\u7ba1\u63a7\uff1b\u5f53\u9700\u8981\u6062\u590d\u9884\u7f6e\u65f6\uff0c\u4fee\u6539\u7e41\u7410<br \/>\n\u4f18\u70b9\uff1a\u64cd\u4f5c\u7b80\u5355<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E6%96%B9%E5%BC%8F2make%E6%97%B6%E4%BC%A0%E9%80%92%E5%8F%98%E9%87%8F%EF%BC%8C%E9%80%9A%E8%BF%87%E5%8F%98%E9%87%8F%E6%8E%A7%E5%88%B6Androidmk%E7%9A%84%E7%BC%96%E8%AF%91\"><\/span>\u65b9\u5f0f2.make\u65f6\u4f20\u9012\u53d8\u91cf\uff0c\u901a\u8fc7\u53d8\u91cf\u63a7\u5236Android.mk\u7684\u7f16\u8bd1<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff0c\u5047\u8bbe\u4f60\u60f3\u7981\u6b62\u7f16\u8bd1\u540d\u4e3aexternal\/some_module\u7684\u6a21\u5757\uff1a<\/p>\n<pre><code class=\"language-bash\"># external\/some_module\/Android.mk\n\n# \u68c0\u67e5\u662f\u5426\u8bbe\u7f6e\u4e86\u67d0\u4e2a\u7981\u6b62\u7f16\u8bd1\u7684\u53d8\u91cf\nifdef DISABLE_SOME_MODULE\n\n# \u5982\u679c\u8bbe\u7f6e\u4e86\uff0c\u5219\u4e0d\u7f16\u8bd1\u8fd9\u4e2a\u6a21\u5757\nelse # DISABLE_SOME_MODULE\n\n# \u6b63\u5e38\u60c5\u51b5\u4e0b\u7684\u6a21\u5757\u7f16\u8bd1\u4ee3\u7801\ninclude $(CLEAR_VARS)\n\nLOCAL_MODULE := some_module\nLOCAL_SRC_FILES := some_module.c\n\n# \u5176\u4ed6\u6a21\u5757\u7f16\u8bd1\u8bbe\u7f6e...\n\ninclude $(BUILD_SHARED_LIBRARY) # \u6216\u8005\u5176\u4ed6\u9002\u5f53\u7684\u5b8f\n\nendif # DISABLE_SOME_MODULE<\/code><\/pre>\n<p>\u7136\u540e\uff0c\u5728\u7f16\u8bd1Android\u7cfb\u7edf\u65f6\uff0c\u4f60\u53ef\u4ee5\u901a\u8fc7\u5b9a\u4e49DISABLE_SOME_MODULE\u53d8\u91cf\u6765\u7981\u6b62\u7f16\u8bd1\u8be5\u6a21\u5757\uff1a<\/p>\n<pre><code class=\"language-bash\"># \u5728\u4f60\u7684\u7f16\u8bd1\u547d\u4ee4\u4e2d\u6dfb\u52a0\u6b64\u53d8\u91cf\u5b9a\u4e49\nDISABLE_SOME_MODULE=true make -j$(nproc)<\/code><\/pre>\n<p>\u6216\u8005\u5728\u73af\u5883\u53d8\u91cf\u4e2d\u8bbe\u7f6e\uff1a<\/p>\n<p><code>export DISABLE_SOME_MODULE=true<\/code><\/p>\n<h1><span class=\"ez-toc-section\" id=\"%E7%84%B6%E5%90%8E%E6%89%A7%E8%A1%8C%E7%BC%96%E8%AF%91%E5%91%BD%E4%BB%A4\"><\/span>\u7136\u540e\u6267\u884c\u7f16\u8bd1\u547d\u4ee4<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p><code>make -j$(nproc)<\/code><br \/>\n\u8fd9\u6837\uff0c\u5f53\u4f60\u7f16\u8bd1Android\u7cfb\u7edf\u65f6\uff0csome_module\u6a21\u5757\u5c31\u4e0d\u4f1a\u88ab\u5305\u542b\u5728\u5185\u3002<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E6%96%B9%E6%B3%95%E4%BA%8C%E3%80%81PRODUCT_PACKAGES%E7%A7%BB%E9%99%A4%E6%B3%A8%E9%87%8AEmail\"><\/span>\u65b9\u6cd5\u4e8c\u3001PRODUCT_PACKAGES\u79fb\u9664\/\u6ce8\u91caEmail<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u5728device\/\u2026\/*.mk\u9884\u7f6eEmail\u5904\u5220\u9664\u8be5\u5e94\u7528\u6a21\u5757\u7684\u9884\u7f6e<br \/>\ndevice\/qcom\/qssi\/base.mk<\/p>\n<pre><code class=\"language-bash\">PRODUCT_PACKAGES := \\\n    AccountAndSyncSettings \\\n    DeskClock \\\n    AlarmProvider \\\n    Bluetooth \\\n    BluetoothExt \\\n    Calculator \\\n    Calendar \\\n    Camera \\\n    CellBroadcastReceiver \\\n    CertInstaller \\\n    DrmProvider \\\n-   Email \\\n    Gallery2 \\\n    LatinIME \\\n    Music \\\n    ...\n<\/code><\/pre>\n<p>\u7f3a\u70b9\uff1a\u672a\u8bb0\u5f55\u79fb\u9664\u5e94\u7528\uff0c\u5f53\u8981\u8fd8\u539f\u65f6\u7e41\u7410<br \/>\n\u4f18\u70b9\uff1a\u4fee\u6539\u7b80\u5355\uff0c\u65b9\u4fbf\u6279\u91cf\u79fb\u9664<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E6%96%B9%E6%B3%95%E4%B8%89%E3%80%81%E4%BD%BF%E7%94%A8LOCAL_OVERRIDES_PACKAGES%E6%A0%87%E7%AD%BE\"><\/span>\u65b9\u6cd5\u4e09\u3001\u4f7f\u7528LOCAL_OVERRIDES_PACKAGES\u6807\u7b7e<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u4f7f\u7528LOCAL_OVERRIDES_PACKAGES\u5c5e\u6027\u4f7f\u5f97\u6307\u5b9a\u6a21\u5757\u4e0d\u53c2\u4e0e\u7f16\u8bd1.<\/p>\n<p>1\u3001\u5728device\u4e0b\u65b0\u5efaAndroid.mk<br \/>\ndevice\/qcom\/xxx\/Android.mk<\/p>\n<pre><code class=\"language-bash\">+include $(CLEAR_VARS)\n+LOCAL_MODULE := remove_unused_apps\n+\n+LOCAL_MODULE_CLASS := ETC\n+LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)\n+LOCAL_OVERRIDES_PACKAGES += \\\n+    Email\n\nPACKAGES.$(LOCAL_MODULE).OVERRIDES := $(strip $(LOCAL_OVERRIDES_PACKAGES))<\/code><\/pre>\n<p>2\u3001PRODUCT_PACKAGES \u6dfb\u52a0remove_unused_apps<br \/>\ndevice\/qcom\/qssi\/base.mk<\/p>\n<pre><code class=\"language-bash\">+PRODUCT_PACKAGES += \\\n+    remove_unused_apps<\/code><\/pre>\n<p>\u539f\u7406\uff1a<\/p>\n<ul>\n<li>LOCAL_OVERRIDES_PACKAGES\u8868\u793a\u4f7f\u7528\u67d0\u4ee5\u6a21\u5757\u66ff\u6362\/\u8986\u76d6\u5176\u5b9a\u4e49\u7684\u6a21\u5757\uff0c\u4f7f\u5f97\u4e00\u4e2a\u6216\u591a\u4e2a\u6a21\u5757\u4e0d\u53c2\u4e0e\u7cfb\u7edf\u7f16\u8bd1\uff0c\u4ece\u800c\u8fbe\u5230\u79fb\u9664\u6307\u5b9a\u5e94\u7528\u7684\u76ee\u7684\u3002<\/li>\n<li>LOCAL_MODULE_CLASS \u7528\u6765\u5b9a\u4e49\u4e86\u6a21\u5757\u7c7b\u578b\u548c\u9884\u7f6e\u8def\u5f84\u3002<br \/>\nLOCAL_MODULE_CLASS := ETC \/\/\u5176\u4ed6\u7c7b\u578b\u6a21\u5757\uff0c\u9884\u7f6e\u4e8e\/system\/etc<br \/>\nLOCAL_MODULE_CLASS := STATIC_LIBRARIES \/\/\u9759\u6001\u5e93\u7c7b\u578b\uff0c\u9884\u7f6e\u4e8e\/system\/lib<br \/>\nLOCAL_MODULE_CLASS := EXECUTABLES \/\/\u53ef\u6267\u884c\u6587\u4ef6\u7c7b\u578b\uff0c\u9884\u7f6e\u4e8e\/system\/bin<br \/>\nLOCAL_MODULE_CLASS := JAVA_LIBRARIES \/\/jar\u5305\u7c7b\u578b<br \/>\nLOCAL_MODULE_CLASS := SHARED_LIBRARIES \/\/\u52a8\u6001\u5e93\uff0c\u9884\u7f6e\u4e8e\/system\/lib<br \/>\nLOCAL_MODULE_CLASS := APPS \/\/apk\u7c7b\u578b<br \/>\n\u7f3a\u70b9\uff1a\u9884\u7f6e\u4e86\u591a\u4f59etc\u76ee\u5f55<\/li>\n<\/ul>\n<p><strong>\u4e0a\u9762\u7684\u5199\u6cd5\u5176\u5b9e\u6709\u70b9\u91cd\u590d\uff0c\u4e0d\u5982\u4ee5\u4e0b\u65b9\u5f0f<\/strong>\uff1a<br \/>\n<a href=\"https:\/\/blog.csdn.net\/u010823818\/article\/details\/132292356\">https:\/\/blog.csdn.net\/u010823818\/article\/details\/132292356<\/a><\/p>\n<p>\u6bd4\u5982\u66ff\u6362\u7cfb\u7edf\u7684Luncher\uff0c\u53ef\u4ee5\u5728\u81ea\u5b9a\u4e49\u7684Luncher\u7684Android.mk\u4e2d\u914d\u7f6e <code>LOCAL_OVERRIDES_PACKAGES := Launcher3<\/code>\u5373\u53ef\u5c06\u539f\u751fLuncher\u5c4f\u853d\u6389\uff0c <code>LOCAL_OVERRIDES_PACKAGES += xx<\/code>\u53ef\u5c06\u5176\u5b83\u7684\u6a21\u5757\u5c4f\u853d\u3002<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E6%96%B9%E6%B3%95%E5%9B%9B%E3%80%81%E9%85%8D%E7%BD%AETARGET_REMOVE_PACKAGES%E5%B1%9E%E6%80%A7\"><\/span>\u65b9\u6cd5\u56db\u3001\u914d\u7f6eTARGET_REMOVE_PACKAGES\u5c5e\u6027<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u65b0\u5b9a\u4e49TARGET_REMOVE_PACKAGES\u5c5e\u6027\u7528\u4e8e\u79fb\u9664\u5e94\u7528<br \/>\nbuild\/make\/core\/main.mk<\/p>\n<pre><code class=\"language-bash\">   $(eval ### Filter out the overridden packages and executables before doing expansion) \\\n   $(eval _pif_overrides := $(call module-overrides,$(_pif_modules))) \\\n   $(eval _pif_modules := $(filter-out $(_pif_overrides), $(_pif_modules))) \\\n $(eval _pif_modules := $(filter-out $(TARGET_REMOVE_PACKAGES), $(_pif_modules))) \\\n   $(eval ### Resolve the :32 :64 module name) \\<\/code><\/pre>\n<p>\u5728device\u7684mk\u4e2d\u8bbe\u7f6eTARGET_REMOVE_PACKAGES\u5c5e\u6027<br \/>\ndevice\/qcom\/qssi\/base.mk<\/p>\n<pre><code class=\"language-bash\">TARGET_REMOVE_PACKAGES := \\\n     Email<\/code><\/pre>\n<p>\u4f18\u70b9\uff1a\u65b9\u4fbf\u7ba1\u7406\u548c\u8bb0\u5f55\u9ed8\u8ba4\u5e94\u7528\u7684\u79fb\u9664<\/p>\n<p><strong>\u603b\u7ed3<\/strong><br \/>\n\u867d\u7136\u4e0a\u8ff0\u65b9\u6cd5\u90fd\u80fd\u79fb\u9664\u539f\u751f\u5e94\u7528Email,\u4f46\u7efc\u5408\u8003\u8651\u63a8\u8350\u4e00\u52b3\u6c38\u9038\u7684\u65b9\u6cd5\u56db\u79fb\u9664\u539f\u751f\u5e94\u7528\uff0c\u65b9\u4fbf\u79fb\u9664\u591a\u4e2a\u5e94\u7528\u548c\u91cd\u65b0\u9884\u7f6e\u5e94\u7528\uff0c\u4ee3\u7801\u529f\u80fd\u6e05\u6670\u660e\u786e\u3002<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E6%96%B9%E6%B3%95%E4%BA%94%EF%BC%9A%E8%87%AA%E5%AE%9A%E4%B9%89PRODUCT_DEL_PACKAGES%E5%8F%98%E9%87%8F\"><\/span>\u65b9\u6cd5\u4e94\uff1a\u81ea\u5b9a\u4e49PRODUCT_DEL_PACKAGES\u53d8\u91cf<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u57fa\u672c\u601d\u8def\u662f\u4eceproduct_MODULES\u4e2d\u8fc7\u6ee4\u6389\u81ea\u5b9a\u4e49\u7684\u53d8\u91cf\uff0c\u5728\u81ea\u5b9a\u4e49\u7684\u53d8\u91cf\u4e2d\u5b9a\u4e49\u8981\u5220\u9664\u7684\u5305\u540d\u3002<br \/>\n<a href=\"https:\/\/blog.csdn.net\/hubinbin595959\/article\/details\/105799239\">https:\/\/blog.csdn.net\/hubinbin595959\/article\/details\/105799239<\/a><br \/>\n<a href=\"https:\/\/blog.csdn.net\/wzl_show\/article\/details\/111991846\">https:\/\/blog.csdn.net\/wzl_show\/article\/details\/111991846<\/a><\/p>\n<p>1.\u4fee\u6539build\u76ee\u5f55main.mk<\/p>\n<pre><code class=\"language-bash\">ifdef FULL_BUILD\n  # The base list of modules to build for this product is specified\n  # by the appropriate product definition file, which was included\n  # by product_config.mk.\n  product_MODULES := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES)\n  # Filter out the overridden packages before doing expansion\n  product_MODULES := $(filter-out $(foreach p, $(product_MODULES), \\\n      $(PACKAGES.$(p).OVERRIDES)), $(product_MODULES))\n\n  #sheldon patch begin\n  product_MODULES := $(filter-out $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_DEL_PACKAGES), $(product_MODULES))\n  #sheldon patch end<\/code><\/pre>\n<p>\u6b64\u5904\u662f\u6839\u636ePRODUCT_DEL_PACKAGES\u6765\u8fc7\u6ee4\u9884\u7f6e\u7684app;<br \/>\n2.\u4fee\u6539build\u76ee\u5f55product.mk<\/p>\n<p>\u589e\u52a0PRODUCT_DEL_PACKAGES\u5c5e\u6027\u4f7f\u4e4b\u751f\u6548\uff0c\u4e4b\u540e\u5c31\u53ef\u4ee5\u5728mk\u6587\u4ef6\u4e2d\u4f7f\u7528\u4e86\u3002<\/p>\n<pre><code class=\"language-bash\">\u3000_product_var_list :=\n\u2026\nPRODUCT_DEL_PACKAGES\n\u2026<\/code><\/pre>\n<p>3.\u5728.mk\u4e2d\u4f7f\u7528PRODUCT_DEL_PACKAGES\u5c5e\u6027<\/p>\n<p>\u4f8b\u5982\u5728third_apps.mk\u6587\u4ef6\u4e2d\u589e\u52a0 PRODUCT_DEL_PACKAGES`<\/p>\n<pre><code class=\"language-bash\">PRODUCT_PACKAGES += DeviceTest\n\nPRODUCT_DEL_PACKAGES += \\\n                        Browser2 \\\n                        BasicDreams \\\n                        Calendar \\\n                        CalendarProvider \\\n                        Contacts \\\n                        DocumentsUI \\\n                        Email \\\n                        Exchange2 \\<\/code><\/pre>\n<p>\u8fd9\u6837\u9884\u7f6e\u5e94\u7528\u4e2d\u5c31\u4e0d\u4f1a\u5305\u542b\u4ee5\u4e0a PRODUCT_DEL_PACKAGES \u6dfb\u52a0\u8fd9\u4e9b\u3002<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E4%BA%8C%E3%80%81%E7%A7%BB%E9%99%A4so%E5%BA%93\"><\/span>\u4e8c\u3001\u79fb\u9664so\u5e93<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><a href=\"https:\/\/blog.csdn.net\/wzl_show\/article\/details\/111991846\">https:\/\/blog.csdn.net\/wzl_show\/article\/details\/111991846<\/a><\/p>\n<button class=\"simplefavorite-button\" data-postid=\"12773\" data-siteid=\"1\" data-groupid=\"1\" data-favoritecount=\"0\" style=\"\">\u6536\u85cf <i class=\"sf-icon-star-empty\"><\/i><\/button>","protected":false},"excerpt":{"rendered":"<p>\u88c1\u526a\uff0c\u9996\u5148\u9700\u8981\u660e\u767d\u6a21\u5757\u52a0\u8f7d\u7684\u539f\u7406\uff0c\u5728\u5176\u76f8\u5173\u7684\u53d8\u91cf\u4e2d\u8fc7\u6ee4\u6389\u8981\u88c1\u526a\u7684\u6a21\u5757\u5373\u53ef\u3002 \u76ee\u5f55 \u4e00\u3001\u79fb\u9664\u539f\u751f\u5e94\u7528\u7684 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[988],"tags":[],"_links":{"self":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts\/12773"}],"collection":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=12773"}],"version-history":[{"count":16,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts\/12773\/revisions"}],"predecessor-version":[{"id":15441,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts\/12773\/revisions\/15441"}],"wp:attachment":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=12773"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=12773"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=12773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}