谁有qq游戏大厅Java qq游戏分辨率怎么调600...

QQ游戏大厅java通用版|Java手机QQ游戏下载 v1.7 官方版_最火软件站
您的位置: >
> Java手机QQ游戏 v1.7 官方版下载
Java手机QQ游戏 v1.7 官方版
运行环境:java手机
更新时间: 01:54:17
论坛转帖:
有无插件:无插件,放心使用!
分&享&到:
手机针对java手机开发的客户端,系统要求支持功能,支持176X208及以上所有,理论上通用所有java手机。
点击链接开始下载今日论坛第 1 个签到,每日签到可得财富值+2,连续5天签到后再连续签到则每日可得财富值
+4,记得每天都来签到哦~
DOSPY论坛——智能手机、智能硬件 交流分享未来社区 提示信息
指定的主题不存在或已被删除或正在被审核,请返回。
微信扫一扫关注dospy关于QQ游戏大厅的架构我也想说几句 - CSDN博客
关于QQ游戏大厅的架构我也想说几句
先抛砖引玉一下,接个例子说明,现在的例子是要实现:
一个***的apk里面的一个activity A要去调用一个放在sd卡上的没***的apk里面的activity B,点返回键又回到Activity A,而不是直接退出。
ok,我这里已经有现成的方法了,先上代码:
主动去加载的SD上类的activity
import java.lang.reflect.C
import java.lang.reflect.M
import android.app.A
import android.content.I
import android.content.pm.PackageI
import android.os.B
import android.util.L
import android.view.KeyE
import android.view.V
import android.view.View.OnClickL
import android.widget.B
import android.widget.T
import dalvik.system.DexClassL
public class MainActivity
extends Activity {
private static final String TAG = &MainActivity&;
private boolean isJumped =
private Class localC
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
isJumped =
Bundle paramBundle = new Bundle();
paramBundle.putBoolean(&KEY_START_FROM_OTHER_ACTIVITY&, true);
String dexpath = &/mnt/sdcard/ToolA.apk&;
String dexoutputpath = &/mnt/sdcard/&;
LoadAPK(paramBundle, dexpath, dexoutputpath);
protected void onDestroy() {
super.onDestroy();
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (isJumped) {
Bundle paramBundle = new Bundle();
paramBundle.putBoolean(&KEY_START_FROM_OTHER_ACTIVITY&, true);
closeAPK(paramBundle);
isJumped =
return super.onKeyDown(keyCode, event);
public void LoadAPK(Bundle paramBundle, String dexpath, String dexoutputpath) {
ClassLoader localClassLoader = ClassLoader.getSystemClassLoader();
DexClassLoader localDexClassLoader =
new DexClassLoader(dexpath, dexoutputpath, null, localClassLoader);
PackageInfo plocalObject = getPackageManager().getPackageArchiveInfo(dexpath, 1);
if ((plocalObject.activities != null) && (plocalObject.activities.length & 0)) {
String activityname = plocalObject.activities[0].
Log.d(TAG, &activityname = & + activityname);
localClass = localDexClassLoader.loadClass(activityname);
Constructor localConstructor = localClass.getConstructor(new Class[] {});
instance = localConstructor.newInstance(new Object[] {});
Log.d(TAG, &instance = & + instance);
Method localMethodSetActivity =
localClass.getDeclaredMethod(&setActivity&, new Class[] {Activity.class});
localMethodSetActivity.setAccessible(true);
localMethodSetActivity.invoke(instance, new Object[] {this});
Method methodonCreate = localClass.getDeclaredMethod(&onCreate&, new Class[] {Bundle.class});
methodonCreate.setAccessible(true);
methodonCreate.invoke(instance, new Object[] {paramBundle});
catch (Exception ex) {
ex.printStackTrace();
public void closeAPK(Bundle paramBundle) {
Method methodonCreate = localClass.getDeclaredMethod(&onGoBack&);
methodonCreate.setAccessible(true);
methodonCreate.invoke(instance);
} catch (Exception ex) {
ex.printStackTrace();
另外一个是sd卡上待加载的activity:
package mobi.thinkchange.android.
import android.app.A
import android.os.B
import android.util.L
import android.view.KeyE
import android.widget.T
public class ToolAActivity
extends Activity {
private static final String TAG = &ToolAActivity&;
private Activity otherA
public void onCreate(Bundle savedInstanceState) {
boolean b =
if (savedInstanceState != null) {
b = savedInstanceState.getBoolean(&KEY_START_FROM_OTHER_ACTIVITY&, false);
this.otherActivity.setContentView(new TBSurfaceView(this.otherActivity));
super.onCreate(savedInstanceState);
setContentView(new TBSurfaceView(this));
public void setActivity(Activity paramActivity) {
Log.d(TAG, &setActivity...& + paramActivity);
this.otherActivity = paramA
public void onGoBack() {
otherActivity.setContentView(R.layout.main);
上面是实现我说的例子最核心的两个类,全部代码详见:http://download.csdn.net/detail/androidzhaoxiaogang/4903804
(代码只是片段,如果要实际应用还需要完善,比如在返回的时候终端执行的runnable可参考我的另外一篇文章)
也许网上有很多关于QQ游戏大厅的分析或者类似上面的例子,但是我想做进一步的分析。
1.我们知道一个activity具有严格意义上的生命周期必须要在ActivityThread里面去创建,所以通过DexClassLoader加载的ActivityB是没有生命周期的,它也就是一个普通的类;
2.有人会问,为什么还要让ActivityA 来加载ActivityB,而不是直接ActivityA去load 另外一个类比如classC呢? 这个问题很简单,因为我们在打包成APK的时候,有activity会更方便和直观(自己去体会)。简单的游戏,往往一个activity就够了。那么ActivityA 也仅仅只需要加载一个类实例。
本文已收录于以下专栏:
相关文章推荐
QQ游戏于前几日终于突破了百万人同时在线的关口,向着更为远大的目标迈进,这让其它众多传统的棋牌休闲游戏平台黯然失色,相比之下,联众似乎已经根本不是QQ的对手,因为QQ除了这100万的游戏在线人数外,它...
QQ游戏于前几日终于突破了百万人同时在线的关口,向着更为远大的目标迈进,这让其它众多传统的棋牌休闲游戏平台黯然失色,相比之下,联众似乎已经根本不是QQ的对手,因为QQ除了这100万的游戏在线人数外,它...
毕业之后我就来到北京,在找工作期间,我总共面试了十几家公司。由于之前实习的时候对于面试没有太多的经验,所以,也不知道具体的流程。看在这些公司面试的过程中,都要先经过笔试,然后才能面试,我就以为程序员行...
早些时间看郁金香的教程,写过qq游戏练练看的挂,那时候CE附加QQ游戏大厅的时候貌似是没有任何保护的,昨天舍友让做个斗地主的记牌器,但是,我用CE附加的时候,被检测到了,其实不附加也会被检测,所以猜测...
有消息称,腾讯手机QQ游戏大厅将携欢乐斗地主推出Html5版,即将对iPad用户限量发行体验,后续手机QQ游戏大厅的其他游戏也将陆续推出Html5版本。分析认为,手机QQ游戏大厅此举是为了迎合当前移动...
Android手机上的QQ游戏大厅,下载一个游戏后不需要***就可以直接启动运行。通过分析手机SD卡里.QQGame文件夹里的文件,可以发现下载下来的具体游戏是一个apk***包,而在/data/app目...
Android运行未***apk可以使用Android的DexClassLoader类
这个也可以再Android的官方文档中看到
A class loader that loads cla...
早些时间看郁金香的教程,写过qq游戏练练看的挂,那时候CE附加QQ游戏大厅的时候貌似是没有任何保护的,昨天舍友让做个斗地主的记牌器,但是,我用CE附加的时候,被检测到了,其实不附加也会被检测,所以猜测...
一、文档概览和分析目的
体验设备:Windows10
软件名称:QQ游戏大厅
软件版本:2.0版本 支持Windows xp sp3及以上,发布时间:
体验时间:...
QQ游戏大厅的"你画我猜"游戏白屏问题解决
他的最新文章
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

参考资料

 

随机推荐