8

我正在阅读 android 中的APK EXPANSION FILES文档,我想知道我们可以在补丁 apk 中拥有所有布局文件,在主 apk 中拥有应用程序的业务逻辑吗?

我也读过这个Android Apps Break the 50MB Barrier

我尝试创建它,但我面临的问题是我们的小部件名称需要在自动生成的 R.java 文件中。如果我在补丁文件中有布局文件而不是在主文件中,那么我无法使用 R 引用。 id.xxx.

所以请告诉我这是否可能?

如果这是可能的,那么如何实现呢?

我也想知道,可以在补丁apk中添加哪些资源或资产。

4

1 回答 1

3

直截了当地说,不可能将布局文件与 apk 分开,然后尝试使用 R.id.whatever 访问它

扩展文件旨在存储您的应用程序使用的媒体、文档和其他此类静态内容等资产,并且扩展包的内容存储在设备的共享存储中,并且不与 apk 文件链接。要访问扩展文件的资产,您必须编写应用程序以从该设备的共享存储位置读取它们。

回到将布局文件存储在扩展文件中的问题。为此,您必须编写自己的布局解析器,其基本功能类似于 LayoutInflator。您不能使用 LayoutInflator 解析任何不属于 apk 或存储在任何外部存储中的布局文件。所以想法是将您的布局文件存储在扩展文件中(将在设备共享存储上的 apk 之外),使用您自己的解析器解析文件,并在运行时将视图添加到主布局。尽管您将无法使用 R.id.whatever 访问您的视图,但您始终可以使用可视化树来访问视图,或者在解析视图时存储引用的对象以供以后使用。

希望这能给你一个起点。

于 2013-05-02T10:24:45.787 回答