我正在浏览android中APK EXPANSION FILES的文档,我想知道我们可以在apk中使用补丁apk和应用程序的业务逻辑中的所有布局文件吗?
我也读过Android Apps Break the 50MB Barrier 。
我尝试创建这个,但我遇到的问题是我们的小部件名称需要在R.java文件中自动生成。如果我在补丁文件中的布局文件不在主文件中那么我无法引用那么使用R.id.xxx。
所以请告诉我这是否可行?
如果可以,那么如何实现?
我也想知道,补丁apk中可以添加哪些资源或资产。
答案 0 :(得分:3)
说到直接,不可能将布局文件与apk分开,然后尝试使用R.id.whatever
来访问它扩展文件用于存储资源,例如媒体,文档和应用程序使用的其他此类静态内容,并且扩展包的内容存储在设备的共享存储中,并且不与apk文件链接。要访问扩展文件的资产,您必须对应用程序进行编码,以便从该设备的共享存储位置读取它们。
回到将布局文件存储在扩展文件中的问题。要实现这一点,您必须编写自己的布局解析器,其基本功能类似于LayoutInflator。您不能使用LayoutInflator来解析任何不属于apk或存储在任何外部存储上的布局文件。因此,我们的想法是将您的布局文件存储在扩展文件中(将在apk之外,在设备共享存储上),使用您自己的解析器解析文件,并在运行时将视图添加到主布局。虽然您无法使用R.id.whatever访问您的视图,但您始终可以使用可视树来访问视图,或者在解析视图时存储引用的对象以访问它们以供以后使用。
希望这能为你提供一个起点。