编译后的 APK 文件包含许多未知的 (A)XML 布局
Posted
技术标签:
【中文标题】编译后的 APK 文件包含许多未知的 (A)XML 布局【英文标题】:Compiled APK file contains a lot of unknown (A)XML layouts 【发布时间】: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
文件更小?
【问题讨论】:
【参考方案1】:为什么这些文件在我的 apk 文件中?
您正在使用 AppCompat,或者至少将其添加为依赖项。那里有一些资源可能来自其他依赖项,但所有 abc
都来自 AppCompat。
我在那里需要它们吗?
如果您使用的是 AppCompat,则可以。如果没有,不。如果您不使用 AppCompat,请删除依赖项(并确保您使用的其他任何内容都不需要 AppCompat 或以其他方式将 AppCompat 作为传递依赖项引入)。
您可能不需要其中的一些资源,即使您正在使用 AppCompat 的其他方面。您可以查看发布版本的资源缩减设置,看看它是否可以识别出一些要删除的内容。
或者有没有办法在我的 apk 文件中不包含它们并使我的 apk 文件更小?
您无法使用 AppCompat。在现代 android 应用开发中,这是相当困难的。
【讨论】:
这是一个惊人的快速和非常详细的答案。我所需要的一切。 谢谢! 实时循环查看Field[] fields = R.layout.class.getFields()
字段以查看是否所有这些xml
文件都被真正包含在内,是的,它们是。是否可以识别哪些xml
文件是我的纯布局,哪些来自其他库/依赖项?
@Ωmega:如果您对资源采用某种命名约定,您可以寻找符合该约定的命名约定。虽然我们作为开发人员从 APK 的角度考虑库,但所有这些都被整合在一起,因此来自所有来源的资源都是对等的。
明白。谢谢。以上是关于编译后的 APK 文件包含许多未知的 (A)XML 布局的主要内容,如果未能解决你的问题,请参考以下文章