asysbang

标题: QQ游戏大厅实现机制示例 [打印本页]

作者: admin    时间: 2013-5-2 16:21
标题: QQ游戏大厅实现机制示例
转载请注明:www.asysbang.com

QQ游戏大厅可以运行没有安装的应用,如连连看,五子棋等
这个是通过DexClassLoader  以及反射等方法实现的

下面是自己写的一个运行“没安装应用”的例子

这个是可以独立运行,也可以被其他应用运行的程序源代码  --  gameone.apk
[attach]18[/attach]


这个是调用其他apk的程序,相当于QQ的游戏大厅    -- gamehall.apk
[attach]19[/attach]


运行方法
只要把gameone.apk放在/sdcard/目录下,就可以通过gamehall.apk 来运行gameone.apk了

核心代码:
DexClassLoader loader = new DexClassLoader("/sdcard/gameone.apk", "/data/data/com.asys.gamehall", null, ClassLoader.getSystemClassLoader().getParent());

其中"/data/data/com.asys.gamehall"这个目录在最新的android版本中,不能是sdcard上的目录。。。难怪QQ游戏大厅会调整目录
两年前,研究这个问题时,还是可以保存到sdcard目录的。。。。

PS:完整的逻辑实现 onResume   onRestart  onDestroy  等方法都要通过反射去调用









欢迎光临 asysbang (http://asysbang.com/) Powered by Discuz! X2.5