2011-05-19 36 views

回答

2

有可能,請參閱here瞭解更多基本信息,我所做的是更改prepareDex函數以解密文件並將其保存到本地。繼承人的代碼的一部分,以通過反射加載類:

final File optimizedDexOutputPath = getDir("outdex", Context.MODE_PRIVATE); 
final File dexInternalStoragePath = new File(getDir("dex", Context.MODE_PRIVATE), 
       SECONDARY_DEX_NAME); 
     // Initialize the class loader with the secondary dex file. 
DexClassLoader cl = new DexClassLoader(dexInternalStoragePath.getAbsolutePath(), 
     optimizedDexOutputPath.getAbsolutePath(), null, getClassLoader()); 

try { 
    @SuppressWarnings("unchecked") 
    final Class<Object> obj = (Class<Object>) cl.loadClass("com.packagename.Classname"); 

    final Constructor<Object> constr = obj.getConstructor(Activity.class, String.class, Handler.class); 
    myInstance = constr.newInstance(this, mString, mHandler); 

    Method doSomething; 
    try { 
       doSomething = v.getMethod("YOURMETHOD"); 
       doSomething.invoke(myInstance); 
     } 

    } 

我還中省略所有漁獲但是這些應該很容易生成/句柄。