2016年6月22日 星期三

如何在android, java中修改別人的原始碼

如果要修改別人己寫好的原始代碼, 如果是簡單的修改
某一個函數, 最簡單的方式, 應該就是用繼承的方式, 直
接覆寫(override)其中一個函數. 但是override的方式, 有
時會受到限制, 例如如果該class 被原作者定義為 final,
那麼它所含的函數是不允許覆寫的.

還有覆寫的內容, 如果有用到被定義為private的部分, 也是
不允許的.

遇到以上情況, 就不能用覆寫的方式來處理.
我的處理方法:
把 原來的A class , 複製一份, 變成 B class, 直接更改B class
, 但是注意B class的 package 名稱, 必須和A class 一樣,也就是
如果 A class package 名稱為 com.test.myfile 那麼你的project
內, 要建立一個 com/test/myfile 的路徑, 將 class 放在底下,

否則可能會出現
Classes cannot be accessed from outside package
的問題.
然後將所有對A class 的作業, 都更換為B class

另一個方法是直接去改A class , 再把它 compile 成A.class 檔
直接放到 jar 去置換原來的class. (重新打包). 可參考:

java android修改變更jar中的某個class的source




  © Blogger templates Psi by Ourblogtemplates.com 2008

Back to TOP