腾讯tim怎么玩qq游戏戏为什么会有两个腾讯浏览服务组件

关于QQ游戏大厅的插件启动运行模式的讨论
如果大家有这方面的经验,希望大家不吝赐教,畅所欲言
以下是问题补充:
:这个帖子可不能沉了
:希望能人志士们 解答
:红薯哥哥 呢?
:还有没有人在 说说?
关于类似QQ大厅的实现模式有一个参考:/article_108.html
Android手机上的QQ游戏大厅,下载一个游戏后不需要安装就可以直接启动运行。通过分析手机SD卡里.QQGame文件夹里的文件,可以发现 下载下来的具体游戏是一个apk安装包,而在/data/app目录下并没有该apk的安装信息,也就是说这个apk并没有安装。我们知道android 中要启动一个应用程序,首先需要安装这个应用程序,那么QQ游戏是怎么启动这个apk的呢?
带着前面的问题,來找答案吧。Java里可以通过反射机制來启动一个jar文件中的类,而jar文件就是一个特殊的zip压缩文件,其实apk文件 也是一个特殊的zip压缩文件,只不过apk里面的java类文件,都打包在classes.dex文件里了,这么看用反射机制就不行了。其实不然,我们 可以去看下Android的文档,在dalvik.system包下有一个类DexClassLoader,这个类就是用来从apk文件加载类的方法了, 而且这个类的父类的父类就是java.lang.ClassLoader。这样就大致能猜想到,QQ游戏的启动应该是这种方式启动的。
不过通过反射來启动的话,就不能由系统自动管理应用的生命周期了,这是一个问题,那么QQ游戏会怎么做呢,目前不得而知。不过我们可以通过反编译看 一下QQ游戏的具体实现机制,以下反编译基于最新版的QQ游戏大厅qqhall1.0_androidhvga_build0028.apk以及一个小游 戏俄罗斯方块qqrussia1.0_androidhvga_build0006.apk,俄罗斯方块的apk是在游戏大厅下载后,从sd卡上 的.QQGame目录下拷贝出来的。反编译qqhall1.0_androidhvga_build0028.apk后,使用JD-GUI打开反编译后的 jar文件,找到com.tencent.qqgame.client.game这个包,在这个包下有两个类PortraitGameActivity和 LandScapeGameActivity,分别用来启动竖屏和横屏的游戏,两个类的代码差不多,只看其中一个就行了。以 PortraitGameActivity为例,这个类实现了onCreate、onDestroy、onKeyDown、onPause、 onRestart、onResume、onStart等方法,每一个方法都是通过反射机制來启动游戏的Activity对应的方法,这说明具体游戏的生 命周期,是通过这个Activity來进行管理的。
还有一个问题,就是虽然通过反射可以启动类,但是由于没有Context,资源文件就没办法获得,QQ游戏用了那么多图片资源,总是需要加载的吧。 其实QQ游戏的所有资源文件都放在了assets文件夹里,具体加载時应该是通过直接读文件来加载的,因为QQ游戏的代码在打包時进行了混淆,所以没有仔 细分析源代码,感兴趣的朋友可以自己研究下具体是怎么加载资源的。
我的实现想法一:不同于腾讯的实现,意思就是假实现
我们在App1中检查App2是否安装
App2中我们在主页面的manifest.xml中去掉&&category android:name=&android.intent.category.LAUNCHER& /& 加入&category android:name=&android.intent.category.APP_BROWSER& /&
这样在桌面上是看不到App2的图标的,但是在程序管理中能看到。
在程序中我们这样去做:
if(安装App2){
启动程序();
下载程序并安装();
检测某一个apk是否安装
* @param pak
protected boolean checkInstall(String pak) {
boolean install =
PackageManager pm = getPackageManager();
PackageInfo info = pm.getPackageInfo(pak, PackageManager.GET_ACTIVITIES);
if (info != null && info.activities.length & 0) {
} catch (NameNotFoundException e) {
* 加载另一个应用
* @param pak
protected void 启动程序(String pak) {
// 代码启动
Context ctxTestB = getTestContext(pak);
Class cls = ctxTestB.getClassLoader().loadClass(pak+&.MainActivity&);
MainActivity.this.startActivity(new Intent(ctxTestB, cls));
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NameNotFoundException e) {
e.printStackTrace();
} 这里用DexClassLoader去加载class,然后启动,这样就ok了,如果App2没有安装的话,下载完后必须安装上,而腾讯的是没经过安装,把apk给解压了,直接用的反射机制去加载的,因为文档上是这样说的:
A class loader that loads classes from .jar and .apk files containing a classes.dex entry. This can be used to execute code not installed as part of an application.
This class loader requires an application-private, writable directory to cache optimized classes. Use Context.getDir(String, int) to create such a directory:
& &File dexOutputDir = context.getDir(&dex&, 0);
Do not cache optimized classes on external storage. External storage does not provide access controls necessary to protect your application from code injection attacks.
--- 共有 1 条评论 ---
纠正下:我这里用的是classloader 而腾讯用的DexClassLoader
引用来自“天高空”的答案 关于类似QQ大厅的实现模式有一个参考:/article_108.html
Android手机上的QQ游戏大厅,下载一个游戏后不需要安装就可以直接启动运行。通过分析手机SD卡里.QQGame文件夹里的文件,可以发现 下载下来的具体游戏是一个apk安装包,而在/data/app目录下并没有该apk的安装信息,也就是说这个apk并没有安装。我们知道android 中要启动一个应用程序,首先需要安装这个应用程序,那么QQ游戏是怎么启动这个apk的呢?
带着前面的问题,來找答案吧。Java里可以通过反射机制來启动一个jar文件中的类,而jar文件就是一个特殊的zip压缩文件,其实apk文件 也是一个特殊的zip压缩文件,只不过apk里面的java类文件,都打包在classes.dex文件里了,这么看用反射机制就不行了。其实不然,我们 可以去看下Android的文档,在dalvik.system包下有一个类DexClassLoader,这个类就是用来从apk文件加载类的方法了, 而且这个类的父类的父类就是java.lang.ClassLoader。这样就大致能猜想到,QQ游戏的启动应该是这种方式启动的。
不过通过反射來启动的话,就不能由系统自动管理应用的生命周期了,这是一个问题,那么QQ游戏会怎么做呢,目前不得而知。不过我们可以通过反编译看 一下QQ游戏的具体实现机制,以下反编译基于最新版的QQ游戏大厅qqhall1.0_androidhvga_build0028.apk以及一个小游 戏俄罗斯方块qqrussia1.0_androidhvga_build0006.apk,俄罗斯方块的apk是在游戏大厅下载后,从sd卡上 的.QQGame目录下拷贝出来的。反编译qqhall1.0_androidhvga_build0028.apk后,使用JD-GUI打开反编译后的 jar文件,找到com.tencent.qqgame.client.game这个包,在这个包下有两个类PortraitGameActivity和 LandScapeGameActivity,分别用来启动竖屏和横屏的游戏,两个类的代码差不多,只看其中一个就行了。以 PortraitGameActivity为例,这个类实现了onCreate、onDestroy、onKeyDown、onPause、 onRestart、onResume、onStart等方法,每一个方法都是通过反射机制來启动游戏的Activity对应的方法,这说明具体游戏的生 命周期,是通过这个Activity來进行管理的。
还有一个问题,就是虽然通过反射可以启动类,但是由于没有Context,资源文件就没办法获得,QQ游戏用了那么多图片资源,总是需要加载的吧。 其实QQ游戏的所有资源文件都放在了assets文件夹里,具体加载時应该是通过直接读文件来加载的,因为QQ游戏的代码在打包時进行了混淆,所以没有仔 细分析源代码,感兴趣的朋友可以自己研究下具体是怎么加载资源的。
缺点就是apk包得按照你的规则来编写。与外表交互就很麻烦。如果加载资源的话,游戏是放在assas中用pak压缩了,但是应用程序必须用到laout.xml文件,所以这个如何获取资源还是一个门槛,如果实现了,那么应用也可以这样做了。
现在好多动态加载框架都能处理资源加载了,但是一般都需要apk按某种规则来编写,一般是依赖框架提供的API,有一个开源项目,可加载不依赖规则的apk :
&小弟开发的 还在完善中 欢迎star fork本类最新08-1908-1908-1908-1908-19&
(美文,情感美文欣赏) - 常阅读,多交友!大家都在搜:
扫描二维码安装房天下APP
手机浏览器访问房天下
> > 问题详情
为什么QQ游戏中你画我猜,怎么 玩不了。是不是要装什么插件
浏览次数:0
种方法,清除IE缓存一下,第二种方法,在360安全卫士里面系统修复一下。第三种方法,卸载重装游戏 第四种去其他网站玩,比如百度、3366小游戏这些网站都有这个游戏
不知道下面这条知识能否帮助到您
二手房的出卖方往往为个人,同买方一样,面对复杂的交易环节同样陌生。不同于开发商,二手房卖家的诚信度和可信度很难查证,因此买二手房也需提防不良卖家的惯用谎言。
小心二手房买卖中玩的文字游戏
一,要有钱。二,还要有关系。三,还要有耐心!
可以免费租给他住,但是不要给他哦哈哈
怀孕一个月如何打胎,怀孕一个月打胎好吗,金华打胎要到哪里去
手机动态登录
请输入用户名/邮箱/手机号码!
请输入密码!
没有房天下通行证,
ask:9,asku:4,askr:57,askz:157,askd:111,RedisW:162askR:1256,askD:162 mz:hit,askU:0,askT:0askA:2037
Copyright &
北京拓世宏业科技发展有限公司
Beijing Tuo Shi Hong Ye Science&Technology Development Co.,Ltd 版权所有
违法信息举报邮箱:夺宝斗地主夺宝斗地主继承了斗地主免费积分玩法,在纯免费,不限豆无限玩的中国象棋2017《中国象棋2017》拥有十大特色内容,分别为: 1).棋力评雷霆战机雷霆战机,腾讯飞机游戏巅峰巨作。在继承了经典飞行射击游戏爽快火影忍者online《火影忍者ONLINE》是由集英社及万代游戏授权,腾讯旗下魔
大宇最经典丟骰子游戏,益智好玩两不误
区服:224区战斗力:
素芬、summer等好友在玩
按游戏题材|||||||||按游戏玩法||||||||
牌类3.8分又名:包红心,包红五;红五新玩法,以一档三,你准备好了吗牌类3.4分国内非常盛行的一种 4 人扑克牌游戏,也称为“80 分”、“拖拉机”等麻将4.7分规则简单,上手极快休闲4.3分神魔世界的即时对战!独树一帜的竞技体验!休闲3.5分又名:桌Q、斯诺克,撞球;只要勤加练习,成为球坛新贵指日可待!动作射击4.6分3秒加入科幻装甲大战!超能武器即刻开火动作射击4.7分《英魂之刃》超40W在线的高人气DOTA类页游,是一款充满魔幻风格的多人竞技对战游戏,数百位英雄等你来战,3秒下载,爽快超神!角色扮演4.4分腾讯平台首款次世代ARPG页游大作,你做天帝,你来封神!牌类3.7分流行玩法,拱猪到底,谁拿猪牌?消除4.8分各种小动物求爱抚,萌到爆的三消游戏!
麻将3.5分麻将是中国的国粹游戏,一直以来深受国人喜爱,《欢乐麻将》使用最正宗的国标玩法,对局畅快、刺激的纯3D游戏。《欢乐麻将》采用了中国风的美术风格,临场感强,动画细腻流畅,赏心悦目。牌类5.0分最经典四人对战扑克游戏休闲4.5分多人在线的电脑版大球吃小球游戏冒险4.0分高自由度的精美3D沙盒游戏,无等级、无规则、游戏玩法千变万化!动作射击4.5分热门FPS+MOBA页游,5v5竞技等你来战!体育4.9分游戏大厅首款篮球moba体育游戏,简单易上手!休闲4.5分《全民弹弹堂》是一款无需下载的Q版抛物线射击类竞技游戏动作射击4.9分全新升级版3D第一人称射击FPS微端页游,顶级视觉体验!休闲4.4分赛车与灵魂的合体,速度与激情的碰撞。角色扮演4.3分纯3D即时战斗微端网游
111450081145008人添加2372304372304人添加3267712267712人添加4184016184016人添加5179888179888人添加6168128168128人添加7163184163184人添加8160336160336人添加9153840153840人添加10123616123616人添加11122000122000人添加12115008115008人添加
108-1508-15208-1108-11308-0808-08408-0408-04508-0208-02607-3107-31707-1207-12807-1007-10906-2306-231006-2106-211106-1506-151206-0606-06
页游开服表

我要回帖

更多关于 腾讯qq游戏 的文章

 

随机推荐