我正在開發一個需要訪問實現它的應用程序的佈局項目的庫。我知道如何去做的唯一方法就是反思。換句話說,如果我創建一個構造到音樂庫API是這樣的:從我的Android庫訪問應用程序R類
public MyLibraryAPI(String packageName) {
Class appR = Class.forName(String.format("%s.R", packageName));
...
}
而且,開發者將與他的包名稱作爲構造函數參數實例庫。
我最終需要的是讓我的內部類知道開發人員佈局(.xml文件)中使用的Android視圖 - id和類型。有沒有辦法實現這一點,沒有反思和逃避性能開銷?我敢肯定,這是無法完成的,但如果有專家看到我沒有注意到的情況,我會問。
編輯:此外,默認情況下,proguard混淆了保護代碼,但因此無法爲運行時實現反射的手段提供JVM,所以如果我使用反射,我不得不要求開發人員轉爲他或她的R課關閉proguard混淆,這是一個無賴。
你可以使用註釋處理器嗎?類似於Butterknife的工作方式? –
是的,我可以使用註釋處理將執行移動到編譯時。但是,從開發人員的角度來看,這需要更大的努力,因爲他必須爲綁定提供註釋。或者我錯了?我仍然只是辯論,我並不傾向於任何一方。無論如何感謝您的回覆。 – NitroNbg