【问题标题】:Compiled APK file contains a lot of unknown (A)XML layouts编译后的 APK 文件包含许多未知的 (A)XML 布局
【发布时间】:2019-10-23 22:28:07
【问题描述】:

当我解压apk 文件时,在res\layout 文件夹中我发现了以下未知的xml 文件:

abc_action_bar_title_item.xml
abc_action_bar_up_container.xml
abc_action_menu_item_layout.xml
abc_action_menu_layout.xml
abc_action_mode_bar.xml
abc_action_mode_close_item_material.xml
abc_activity_chooser_view.xml
abc_activity_chooser_view_list_item.xml
abc_alert_dialog_button_bar_material.xml
abc_alert_dialog_material.xml
abc_alert_dialog_title_material.xml
abc_cascading_menu_item_layout.xml
abc_dialog_title_material.xml
abc_expanded_menu_layout.xml
abc_list_menu_item_checkbox.xml
abc_list_menu_item_icon.xml
abc_list_menu_item_layout.xml
abc_list_menu_item_radio.xml
abc_popup_menu_header_item_layout.xml
abc_popup_menu_item_layout.xml
abc_screen_content_include.xml
abc_screen_simple.xml
abc_screen_simple_overlay_action_mode.xml
abc_screen_toolbar.xml
abc_search_dropdown_item_icons_2line.xml
abc_search_view.xml
abc_select_dialog_material.xml
abc_tooltip.xml
notification_template_part_chronometer.xml
notification_template_part_time.xml
select_dialog_item_material.xml
select_dialog_multichoice_material.xml
select_dialog_singlechoice_material.xml
support_simple_spinner_dropdown_item.xml

它们都不是我的布局文件。我的布局xml 文件也在那里,但我不知道上面列出的所有内容。

为什么这些文件在我的apk 文件中?我在那里需要它们吗?或者有没有办法让它们不在我的apk 文件中并且让我的apk 文件更小?

【问题讨论】:

    标签: android android-studio android-layout apk apktool


    【解决方案1】:

    为什么这些文件在我的 apk 文件中?

    您正在使用 AppCompat,或者至少将其添加为依赖项。那里有一些资源可能来自其他依赖项,但所有 abc 都来自 AppCompat。

    我在那里需要它们吗?

    如果您使用的是 AppCompat,则可以。如果没有,不。如果您不使用 AppCompat,请删除依赖项(并确保您使用的其他任何内容都不需要 AppCompat 或以其他方式将 AppCompat 作为传递依赖项引入)。

    您可能不需要其中的一些资源,即使您正在使用 AppCompat 的其他方面。您可以查看发布版本的资源缩减设置,看看它是否可以识别出一些要删除的内容。

    或者有没有办法在我的 apk 文件中不包含它们并使我的 apk 文件更小?

    您无法使用 AppCompat。在现代 Android 应用开发中,这是相当困难的。

    【讨论】:

    • 这是一个惊人的快速和非常详细的答案。我所需要的一切。 谢谢!
    • 实时循环查看Field[] fields = R.layout.class.getFields() 字段以查看是否所有这些xml 文件都被真正包含在内,是的,它们是。是否可以识别哪些xml 文件是我的纯布局,哪些来自其他库/依赖项?
    • @Ωmega:如果您对资源采用某种命名约定,您可以寻找符合该约定的命名约定。虽然我们作为开发人员从 APK 的角度考虑库,但所有这些都被整合在一起,因此来自所有来源的资源都是对等的。
    • 明白。谢谢。
    猜你喜欢
    • 2016-06-20
    • 2010-11-20
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多