2013-05-02 160 views
8

我正在瀏覽Android的APK EXPANSION FILES的文檔,我想知道我們是否可以在主apk中找到補丁apk和應用程序業務邏輯中的所有佈局文件?我也讀過Android Apps Break the 50MB BarrierAndroid擴展apk

我試圖創建這個,但我面臨的問題是我們的部件名稱需要在R.java文件中自動生成..如果我有補丁文件中的佈局文件不在主文件中,那麼我無法參考然後使用R.id.xxx。

那麼請告訴我這是否可能?

如果這是可能的,那麼它是如何實現的?

我也想知道,可以在補丁apk中添加哪些資源或資源。

回答

3

說起直,這是不可能分開的apk佈局文件,然後嘗試使用R.id.whatever

訪問它

擴展文件是爲了保存資產,如媒體,文檔和其他類似您的應用程序使用的靜態內容以及擴展包的內容存儲在設備的共享存儲中,並且未與apk文件鏈接。要訪問擴展文件的資產,您必須對應用程序進行編碼,以便從該設備的共享存儲位置讀取它們。

回到將佈局文件存儲在擴展文件中的問題。爲了實現這一點,您必須編寫自己的佈局解析器,其基本功能類似於LayoutInflator。您不能使用LayoutInflator來解析不屬於apk或存儲在任何外部存儲上的佈局文件。所以我們的想法是將您的佈局文件存儲在擴展文件中(這將在設備共享存儲中的apk之外),使用您自己的解析器解析文件,並在運行時將視圖添加到主佈局。儘管你無法使用R.id.訪問你的視圖,但是你總是可以使用可視化樹來訪問視圖,或者在解析視圖的時候存儲被引用的對象來訪問它們以備後用。

希望這能給你一個出發點。