当前位置:   article > 正文

Android平台应用裁剪_android应用裁剪

android应用裁剪

一、背景

        随着移动应用和系统功能的不断增加,MTK平台上的设备需要更多的计算资源和存储空间。但在某些情况下,这会导致性能下降、电池寿命减少或设备运行速度变慢。因此,需要应用裁剪,即对不必要的、不常用的应用程序和功能进行删除或禁用,以优化设备性能,提高用户体验,降低生产成本。

        MTK平台应用裁剪不仅有助于提高设备性能,还可以减少资源消耗,增加设备的稳定性和寿命,对于满足不同市场需求和设备类型也具备灵活性。

二、方案介绍

2.1传统的裁剪方法

        需要找打对应产品的mk文件,遍历各个应用被编译的地方,然后通过删减或禁用响应的宏来裁剪对应的应用或者服务,例如: 

  1. diff --git a/build/make/target/product/handheld_product.mk b/build/make/target/product/handheld_product.mk
  2. index 2199c57..f9f5d81 100644
  3. --- a/build/make/target/product/handheld_product.mk
  4. +++ b/build/make/target/product/handheld_product.mk
  5. @@ -22,17 +22,8 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/media_product.mk)
  6. # /product packages
  7. PRODUCT_PACKAGES += \
  8. - Browser2 \
  9. - Calendar \
  10. Camera2 \
  11. - Contacts \
  12. - DeskClock \
  13. - Gallery2 \
  14. - LatinIME \
  15. - Music \
  16. - OneTimeInitializer \
  17. preinstalled-packages-platform-handheld-product.xml \
  18. - QuickSearchBox \
  19. SettingsIntelligence \
  20. frameworks-base-overlays
  21. diff --git a/build/make/target/product/handheld_system.mk b/build/make/target/product/handheld_system.mk
  22. index 77c103d..5be13e1 100644
  23. --- a/build/make/target/product/handheld_system.mk
  24. +++ b/build/make/target/product/handheld_system.mk
  25. @@ -32,13 +32,10 @@ $(call inherit-product-if-exists, frameworks/base/data/keyboards/keyboards.mk)
  26. $(call inherit-product-if-exists, frameworks/webview/chromium/chromium.mk)
  27. PRODUCT_PACKAGES += \
  28. - BasicDreams \
  29. BlockedNumberProvider \
  30. Bluetooth \
  31. BluetoothMidiService \
  32. - BookmarkProvider \
  33. BuiltInPrintService \
  34. - CalendarProvider \
  35. cameraserver \

这种方法虽然也能达到裁剪应用的目的,但是容易遗漏,而且裁剪过于分散,非常不利于维护和后期移植到其他产品。

 2.2高效通用的裁剪方法

        可以通过修改build脚本,添加一个应用过滤的关键宏,来达到删减应用的目的,如下:

  1. diff --git a/build/make/core/main.mk b/build/make/core/main.mk
  2. index c63c6df..2befb6f 100644
  3. --- a/build/make/core/main.mk
  4. +++ b/build/make/core/main.mk
  5. @@ -1248,6 +1248,7 @@ define product-installed-files
  6. $(eval ### Filter out the overridden packages and executables before doing expansion) \
  7. $(eval _pif_overrides := $(call module-overrides,$(_pif_modules))) \
  8. $(eval _pif_modules := $(filter-out $(_pif_overrides), $(_pif_modules))) \
  9. + $(eval _pif_modules := $(filter-out $(PACKAGE_FILTER), $(_pif_modules))) \
  10. $(eval ### Resolve the :32 :64 module name) \
  11. $(eval _pif_modules := $(sort $(call resolve-bitness-for-modules,TARGET,$(_pif_modules)))) \
  12. $(call expand-required-modules,_pif_modules,$(_pif_modules),$(_pif_overrides)) \

        然后在对应的产品下,将需要裁剪的应用添加到这个宏下面即可,如:

  1. +PACKAGE_FILTER += \
  2. + MtkQuickSearchBox \
  3. + Browser2 \
  4. + Music \
  5. + CarBTDemo \
  6. + YGPS \
  7. + MtkCalendar \
  8. + Camera \
  9. + AOVTestsApp \
  10. + MtkContacts \
  11. + DuraSpeed \
  12. + AutoDialer \

 然后编译后,你裁剪的应用就都会消失啦。

三、潜在的挑战和注意事项

        讨论应用裁剪可能会导致系统无法开机,也可能引发其他稳定性问题。“裁剪虽好,可不要贪杯哦”

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/174202
推荐阅读
相关标签
  

闽ICP备14008679号