Android远程代码加载

seh*_*ugg 16 android auto-update

我正在开发一个Android库,需要从中央服务器进行频繁更新.我想如果我的库可以自我更新会有多好 - 或者我是否可以在安装应用程序时发布一个下载目标库的引导库.

我在1.5中看到这个名为"DexClassLoader"的类,但除了API文档之外,网上似乎还有一些珍贵的东西.有没有人成功地使用过这个我描述过的场景?

另外,Android Market的条款是否允许这样的事情?

Chr*_*yle 13

我已经成功使用了DexClassLoader.提供一个dexOutputDir实际上可由您的应用程序编写的内容非常重要,所以不是 /data/dalvik-cache.否则,日志将显示一行或两行关于无法写入,然后是ClassNotFoundException.

cl = new DexClassLoader("/full/path/com.example.apk",
                        getFilesDir().getAbsolutePath(),// /data/data/foo/files
                        null,  // native lib path, I haven't used this
                        MyClass.class.getClassLoader());
// This doesn't make Class.forName() work, instead I do this:
Class<?> foo = cl.loadClass("com.example.foo");
Run Code Online (Sandbox Code Playgroud)

为了Class.forName()工作,你可以尝试Thread.setContextClassLoader()(我没有).