赞
踩
随着移动应用和系统功能的不断增加,MTK平台上的设备需要更多的计算资源和存储空间。但在某些情况下,这会导致性能下降、电池寿命减少或设备运行速度变慢。因此,需要应用裁剪,即对不必要的、不常用的应用程序和功能进行删除或禁用,以优化设备性能,提高用户体验,降低生产成本。
MTK平台应用裁剪不仅有助于提高设备性能,还可以减少资源消耗,增加设备的稳定性和寿命,对于满足不同市场需求和设备类型也具备灵活性。
需要找打对应产品的mk文件,遍历各个应用被编译的地方,然后通过删减或禁用响应的宏来裁剪对应的应用或者服务,例如:
- diff --git a/build/make/target/product/handheld_product.mk b/build/make/target/product/handheld_product.mk
- index 2199c57..f9f5d81 100644
- --- a/build/make/target/product/handheld_product.mk
- +++ b/build/make/target/product/handheld_product.mk
- @@ -22,17 +22,8 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/media_product.mk)
-
- # /product packages
- PRODUCT_PACKAGES += \
- - Browser2 \
- - Calendar \
- Camera2 \
- - Contacts \
- - DeskClock \
- - Gallery2 \
- - LatinIME \
- - Music \
- - OneTimeInitializer \
- preinstalled-packages-platform-handheld-product.xml \
- - QuickSearchBox \
- SettingsIntelligence \
- frameworks-base-overlays
-
- diff --git a/build/make/target/product/handheld_system.mk b/build/make/target/product/handheld_system.mk
- index 77c103d..5be13e1 100644
- --- a/build/make/target/product/handheld_system.mk
- +++ b/build/make/target/product/handheld_system.mk
- @@ -32,13 +32,10 @@ $(call inherit-product-if-exists, frameworks/base/data/keyboards/keyboards.mk)
- $(call inherit-product-if-exists, frameworks/webview/chromium/chromium.mk)
-
- PRODUCT_PACKAGES += \
- - BasicDreams \
- BlockedNumberProvider \
- Bluetooth \
- BluetoothMidiService \
- - BookmarkProvider \
- BuiltInPrintService \
- - CalendarProvider \
- cameraserver \
这种方法虽然也能达到裁剪应用的目的,但是容易遗漏,而且裁剪过于分散,非常不利于维护和后期移植到其他产品。
可以通过修改build脚本,添加一个应用过滤的关键宏,来达到删减应用的目的,如下:
- diff --git a/build/make/core/main.mk b/build/make/core/main.mk
- index c63c6df..2befb6f 100644
- --- a/build/make/core/main.mk
- +++ b/build/make/core/main.mk
- @@ -1248,6 +1248,7 @@ define product-installed-files
- $(eval ### Filter out the overridden packages and executables before doing expansion) \
- $(eval _pif_overrides := $(call module-overrides,$(_pif_modules))) \
- $(eval _pif_modules := $(filter-out $(_pif_overrides), $(_pif_modules))) \
- + $(eval _pif_modules := $(filter-out $(PACKAGE_FILTER), $(_pif_modules))) \
- $(eval ### Resolve the :32 :64 module name) \
- $(eval _pif_modules := $(sort $(call resolve-bitness-for-modules,TARGET,$(_pif_modules)))) \
- $(call expand-required-modules,_pif_modules,$(_pif_modules),$(_pif_overrides)) \
然后在对应的产品下,将需要裁剪的应用添加到这个宏下面即可,如:
- +PACKAGE_FILTER += \
- + MtkQuickSearchBox \
- + Browser2 \
- + Music \
- + CarBTDemo \
- + YGPS \
- + MtkCalendar \
- + Camera \
- + AOVTestsApp \
- + MtkContacts \
- + DuraSpeed \
- + AutoDialer \
然后编译后,你裁剪的应用就都会消失啦。
讨论应用裁剪可能会导致系统无法开机,也可能引发其他稳定性问题。“裁剪虽好,可不要贪杯哦”
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。