【问题标题】:Android Expansion apkAndroid 扩展 apk
【发布时间】:2023-03-06 07:33:01
【问题描述】:
我在 android 中浏览 APK EXPANSION FILES 的文档,我想知道我们能否在补丁 apk 中拥有所有布局文件,在主 apk 中拥有应用程序的业务逻辑?
我也读过这个Android Apps Break the 50MB Barrier 。
我尝试创建它,但我遇到的问题是我们的小部件名称需要在自动生成的 R.java 文件中。如果我在补丁文件中有布局文件而不是在主文件中,那么我无法参考使用 R.id.xxx。
所以请告诉我这是否可能?
如果这是可能的,那么如何实现呢?
我也想知道,补丁apk中可以添加哪些资源或资产。
【问题讨论】:
标签:
android
android-layout
apk
【解决方案1】:
直截了当地说,不可能将布局文件与 apk 分开,然后尝试使用 R.id.whatever 访问它
扩展文件旨在存储您的应用程序使用的媒体、文档和其他此类静态内容等资产,并且扩展包的内容存储在设备的共享存储中,并且不与 apk 文件链接。要访问扩展文件的资产,您必须编写应用程序以从该设备的共享存储位置读取它们。
回到将布局文件存储在扩展文件中的问题。为此,您必须编写自己的布局解析器,其基本功能类似于 LayoutInflator。您不能使用 LayoutInflator 解析任何不属于 apk 或存储在任何外部存储中的布局文件。所以想法是将您的布局文件存储在扩展文件中(将在设备共享存储上的 apk 之外),使用您自己的解析器解析文件,并在运行时将视图添加到主布局。尽管您无法使用 R.id.whatever 访问您的视图,但您始终可以使用可视化树来访问视图,或者在解析视图时存储引用的对象以供以后使用。
希望这能给你一个起点。