- 博客(119)
- 资源 (12)
- 收藏
- 关注
原创 Android App Bundle 自动打包原理
Google推出Android App Bundle 已经有一段时间了。 根据Google的政策说明 ,预计2021年8月之后,新发布的应用都必须使用Android App Bundle(aab)来上架Google Play Store了。对于Android App Bundle的原理,Google官方文档已经有了很详细的介绍, 想了解的同学建议直接阅读Google的官方文档。如果你是使用Android Studio打包,那么你直接在Android Studio中选择构建App Bundle即可将应
2021-02-06 09:46:01
3214
3
原创 U8SDK——开发统一的手游防沉迷插件
关于统一防沉迷插件的配置和使用, 可以参考我们B站上面录制的视频教程(未满18岁那个视频):【U8SDK官方视频】根据手游防沉迷和实名认证政策的要求, 手机游戏需要引导玩家进行实名认证;同时针对未成年玩家,手机游戏需要提供防沉迷机制, 限制玩家的在线时长,以及充值额度。现阶段随着政策的收紧,各个渠道SDK基本都有根据政策的解读实现实名认证和实名查询等逻辑,但是防沉迷机制很多渠道SDK则直接抛给了游戏。 另外呢,目前少部分渠道SDK(长尾等小渠道)甚至连实名认证都没有提供。 所以, 目前游戏如果上..
2020-06-17 09:08:47
1956
原创 iOS代码混淆原理初探
我们在手游平台SDK的iOS版本中, 除了AppStore官方支付之外还集成了第三方支付(微信支付H5和支付宝支付H5版本)。 如果用于企业签,不需要做处理,直接使用即可。 但是如果需要上架AppStore,我们需要屏蔽第三方支付。 这个我们后台设置开关,直接后台切换支付方式即可。 上架审核的时候, 切换为Appstore支付;审核通过的时候,切换为第三方支付。因为第三方支付,是H5方式,不会被机...
2019-11-25 15:41:16
1932
1
原创 游戏平台SDK设计和开发之旅——XSDK功能点梳理
做游戏开发或者相关工作的同学,可能都知道,在游戏上线之前,需要将游戏分发到各大渠道平台,比如九游,百度,360,华为等等。其中和技术相关的事情,就是要在游戏中接入这些渠道平台的平台SDK,平台SDK中一般会提供登录和支付相关的接口,需要游戏来调用。但是现在的游戏行业,除了渠道平台, 很多发行商,甚至CP(游戏研发商)自己也开始研发自己的平台SDK,因为对于一款游戏来说,除了上各大主流的渠道平台之外
2017-10-22 10:37:07
9404
5
原创 U8Server——分布式环境下唯一订单号生成规则
U8Server支持分布式部署之后, 我们还有一个问题需要解决, 那就是分布式环境下,唯一订单号生成问题。 之前U8Server的订单号生成规则是 32位时间戳+32位序号,最终生成一个64位的long类型的订单号。之前也考虑过,使用UUID等方式, 但是综合考虑下来, 我们决定还是让订单号使用数字类型(好排序),同时让订单号逐渐递增,并具有一定的自解释语义(这里主要指的是订单的产生时间)支持分布式
2017-01-10 17:18:23
3024
原创 教你快速高效接入SDK——iOS多渠道自动打包工具核心原理
在说Android打包工具原理的时候,我们说到了U8SDK整套框架的核心设计思想。针对N款游戏,我们让渠道SDK的接入成本始终控制在1,而不是N。这就是U8SDK Android版本和iOS版本的核心设计原则,所有的设计,就本着这个宗旨来实现。但是,为了适应几十家几百家渠道,同时又不能破坏这个原则,这就要求我们的框架足够的灵活,足够的可扩展。之前Android打包工具核心思想(穿越到Android打
2016-07-31 16:14:40
6871
原创 U8SDK——支持自动拆分成多个dex文件(MultiDex支持)
Android应用程序,最终发布成一个apk,安装到手机上。 apk文件随便用一个解压缩文件打开,可以看到里面有一个classes.dex文件,这就是之前工程中所有的代码,以及所有依赖的jar包全部合并在一起生成的一个dex文件。关于dex文件是什么,可以自己去科普一下。google当初在设计dex文件的时候,限制了dex文件中最大的函数个数为65536(unsigned short),如果超出这个
2016-04-27 07:46:09
4916
1
原创 Unity3D开发基础组件提取总结
在游戏开发过程中,除了逻辑功能的开发之外,还有很多基础的模块。这些模块,对大部分手机网络游戏来说都是一样的。所以,在上个游戏已经上线运营大半年之际,我觉得有必要将这些模块整理出来,让后面其他游戏的开发,可以不用从0开始。该游戏客户端采用Unity3D开发,那么我们这里抽取的基础组件也就是针对Unity3D引擎来的。简单的梳理之后,我发现主要有以下一些模块,可以独立抽取出来,当然各个模块之间也有一个
2016-03-20 16:47:38
6108
6
原创 追逐梦想——毕业4年小记
在这难得的几天闲暇之际,不经意间,看了看之前的博客,才恍然发现,自己都已经毕业4年多了。看着毕业之际写的那篇《我的2011》,再回顾下这几年自己的技术路程,感慨良多。所以,一时意起,又敲起了键盘,来回顾下这几年自己走过的路,给不断前行的自己,再留下一个脚印......
2016-02-11 23:15:48
5133
8
原创 ULog远程日志——让Android调试更加方便直观
在发布U8SDK之后,使用U8SDK做SDK接入的同学,反馈比较多的一个问题就是调试困难。这其实不是U8SDK的毛病,而是Android开发的通病。做Android开发,我们通常都是结合logcat来调试,如果是原生的应用,有时我们还可以直接通过Debug断点来调试,但是,做游戏开发,我们一般采用U3D,Cocos2dx游戏引擎开发之后,发布到对应的移动平台。所以,断点调试就不太好实现了。很多时候,
2016-02-02 12:02:41
7161
2
原创 U8SDK——Cocos2dx游戏快速渠道SDK接入
最近抽了点时间,折腾了下cocos2dx中接入U8SDK的Demo。同时,简单封装了下,使得在cocos2dx中能够快速地接入U8SDK。先说下大体的思路。和之前说的在Unity中接入U8SDK一样,在Cocos2dx中接入U8SDK,我们也分为两步,一个Android中的部分,另 一个是Coccos2dx中的部分。同时,我们希望尽可能地封装不同平台之间数据的传递,以及接口的调用。使得大部分游戏基于
2016-01-20 19:32:41
4075
原创 U8Framework4SSH ——开源了一套SSH2(Struts2+Spring+Hibernate)整合框架
U8Framework4SSH项目地址:https://github.com/u8-xiaohei/U8Framework4SSHU8Server中使用的SSH2(Struts2+Spring3+Hibernate4)框架,包括U8Server集成好的配置文件,以及抽象出来的一些通用组件,使得基于J2EE框架开发的同学可以快速展开工作。U8Server是U8SDK统一渠道SDK接入框架的服务器端。U
2015-09-10 20:28:42
4643
原创 教你快速高效接入SDK——服务器端支付回调的处理方式
今天着重把之前渠道服务器端SDK的时候,遇到的一个蛋疼的问题给解决了。按照之前我们搭建U8Server的思路,U8Server是可以完美支持多款游戏的。包括登录认证和支付回调。登录认证,没啥好说的。统一的接口即可,和客户端的协议对应上。支付回调呢?各个渠道的支付回调逻辑,对于每款游戏来说都是一样的,然后每个游戏填写的登录回调地址,也都一样。U8Server采用J2EE成熟框架实现,各个游戏的各
2015-09-09 19:50:01
8661
1
原创 教你快速高效接入SDK——Unity统一接入渠道SDK(Unity篇)
上一篇,我们着重讲解了用Unity开发的手游,在接入U8SDK时,Android中的部分。接下来,这一篇,我们就来看看,在Unity工程中,我们需要怎么调用上一篇中我们提供的各种接口,以及怎么接收Android中的消息通知,比如登录成功,切换帐号成功等。 在写代码之前,我们先要做一个简单的配置,在Project面板中,按照Unity官方的要求,新建一个Plugins文件夹,在Plugins文件夹下
2015-08-27 12:44:24
25509
3
原创 教你快速高效接入SDK——Unity统一接入渠道SDK(Android篇)
U8SDK的设计之初,就是为了能够支持各种游戏引擎开发的游戏,而不仅仅是Android的原生平台。目前一大半的手游,都是采用Unity3D和Cocos2dx开发,那么这里,我们就先来一步步给大家演示,用Unity开发的游戏,如何通过U8SDK来快速地完成多家渠道SDK的接入。Unity研发的手游,只需要调用U8SDK抽象层即可完成多家渠道SDK的接入,而不需要在Unity中耦合各个渠道S
2015-07-30 08:39:07
33553
5
原创 U8SDK全套视频教程终于免费啦
为游戏开发的小伙伴送福利来了~U8SDK视频教程终于完全免费了,之前一直因为费用望而却步的童鞋有福了。以下是从u8sdk官方博客了解的消息:之前u8sdk的全套实现视频教程价格是500元,实在让很多囊中羞涩的童鞋,想看都不舍得花这个钱。但是,u8sdk的初衷,本不是盈利,而是让更多的人能够基于u8sdk的思想,去实现一套属于自己的统一渠道SDK接入框架。至于
2015-05-21 14:22:54
10015
1
原创 教你快速SDK接入——快速批量修改渠道号
在游戏快上线的时候,我们除了接入多家联运的渠道SDK之外,还有另一些情况存在。就是常说的CPS,CPA,CPD等情况。这些都无需接入SDK,仅仅是一些广告推广手段。通常我们会基于官方SDK的游戏包,生成多个用逻辑渠道号标识的一些包。用这些逻辑渠道号来标示这个游戏包属于哪个广告渠道。通常就是这样的需求,比如:基于官方SDK的包生成以下逻辑渠道包:google渠道包友盟渠道包百
2015-04-24 21:05:33
5250
1
原创 U8SDK——统一闪屏解决方案
很多SDK都明确要求在游戏启动的时候,显示一张含有渠道SDK Logo的一张全屏图片,大概需要显示2至3秒的时间。像UC,百度SDK是在自己的SDK里已经自带了闪屏的功能(一般是在SDK初始化的时候)。但是,还有很多其他渠道需要游戏在接入他们的SDK时,自己去实现这个闪屏功能。他们仅仅提供一张闪屏图片。那么,在U8SDK中,我们如何去处理这个闪屏功能呢?因为U8SD
2015-04-11 09:55:58
4072
原创 教你快速高效接入SDK——手游聚合SDK打包工具的实现
整套u8sdk的核心思想,就是让我们的SDK接入成本,能够控制在1,而不是N。啥意思呢?就是,我开发第一款游戏的时候,我接了这些SDK,当我开发第二款,第三款游戏的时候,这套SDK可以尽可能的复用,而不是每开发一款游戏,又从头去接各个渠道sdk。所有的游戏都能够使用同一套SDK接入框架,来快速完成SDK的接入工作。那么,在U8SDK里,我们怎么做到呢?请看我们总体的思路:
2015-03-15 18:58:47
12708
原创 教你快速高效接入SDK——统一sdk服务器的实现
U8Server是采用J2EE框架SSH2实现的。当然你也可以采用任何其他你熟悉的语言实现。上一篇文章中,我们从类的抽象中,大致梳理了一下U8Server所要完成的工作。大的方向上,U8Server需要实现统一的用户登录认证,和支付中心两大功能。更深入的细节,U8Server需要完成以下功能:游戏管理:查询游戏,创建游戏(同时生成游戏的唯一appID,appKey等),编辑游戏,删除游
2015-03-08 19:10:48
6326
原创 教你快速高效接入SDK——U8Server的初步分析
在U8SDK整套框架总体架构那篇文章,我们就给出了服务器端的解决方案,为此,我们加入了一个U8Server,来作为U8SDK整套框架的服务器端的统一用户认证中心和支付中心。那么,为了方便,我们这里再来引用一下登陆认证的流程图:回顾下我们之前的分析,U8Server作为统一的登陆认证中心,针对的是多款游戏,那么每款游戏在接入SDK之前,就需要向U8Server申请一个
2015-02-24 16:37:53
5699
原创 教你快速高效接入SDK——关于Application的适配和代理
我们知道,每个android应用程序中都有一个唯一的上下文Application对象,这个Application一般我们不需要去关心他,应用启动时,系统会自动创建一个默认的Application实例。但是,因为Application在整个应用中是唯一的,也就是说,他是一个单例。所以,有的应用就可能希望利用Application来完成一些工作。好在,在android中,实现一个自定义的A
2015-02-09 09:08:24
7043
原创 Java服务器热部署的实现原理
今天发现早年在大象笔记中写的一篇笔记,之前放在ijavaboy上的,现在它已经访问不了了。前几天又有同事在讨论这个问题。这里拿来分享一下。在web应用开发或者游戏服务器开发的过程中,我们时时刻刻都在使用热部署。热部署的目的很简单,就是为了节省应用开发和发布的时间。比如,我们在使用Tomcat或者Jboss等应用服务器开发应用时,我们经常会开启热部署功能。热部署,简单点来说,就是我们将打
2015-01-17 19:12:31
69301
5
原创 教你快速高效接入SDK——手游聚合SDK框架中渠道SDK部分的接入(就是实现抽象层的接口而已)
题记:很多做游戏开发的人,估计都或多或少地接过渠道SDK,什么UC,当乐,91,小米,360......据统计国内市场当前不下于100家渠道,还包括一些没有SDK的小渠道。每个渠道SDK接入的方法呢,多是大同小异。但是,正是这些小异,又让SDK的接入,产生了无穷无尽的变数。所以,接入SDK之前,如果你没有经验,或者没有被SDK坑过,那么当你看到这系列文章的时候,你很幸运,你可以避免这一切了。如果你
2015-01-11 20:31:49
13944
1
原创 教你快速高效接入SDK——游戏接入SDK(只接入抽象框架)
题记:很多做游戏开发的人,估计都或多或少地接过渠道SDK,什么UC,当乐,91,小米,360......据统计国内市场当前不下于100家渠道,还包括一些没有SDK的小渠道。每个渠道SDK接入的方法呢,多是大同小异。但是,正是这些小异,又让SDK的接入,产生了无穷无尽的变数。所以,接入SDK之前,如果你没有经验,或者没有被SDK坑过,那么当你看到这系列文章的时候,你很幸运,你可以避免这一切了。如果你
2015-01-05 21:09:09
24306
原创 教你快速高效接入SDK——SDK接入抽象层的设计
题记:很多做游戏开发的人,估计都或多或少地接过渠道SDK,什么UC,当乐,91,小米,360......据统计国内市场当前不下于100家渠道,还包括一些没有SDK的小渠道。每个渠道SDK接入的方法呢,多是大同小异。但是,正是这些小异,又让SDK的接入,产生了无穷无尽的变数。所以,接入SDK之前,如果你没有经验,或者没有被SDK坑过,那么当你看到这系列文章的时候,你很幸运,你可以避免这一切了。如果你
2014-12-29 21:39:07
10417
6
原创 教你快速高效接入SDK——手游聚合SDK的总体思路和架构
题记:很多做游戏开发的人,估计都或多或少地接过渠道SDK,什么UC,当乐,91,小米,360......据统计国内市场当前不下于100家渠道,还包括一些没有SDK的小渠道。每个渠道SDK接入的方法呢,多是大同小异。但是,正是这些小异,又让SDK的接入,产生了无穷无尽的变数。所以,接入SDK之前,如果你没有经验,或者没有被SDK坑过,那么当你看到这系列文章的时候,你很幸运,你可以避免这一切了。如果你
2014-12-28 21:50:07
78762
11
原创 [小记]将windows下的文件拷贝到多台linux服务器下
很久没有写了。之前创办了一个独立网站(ijavaboy.com),后来由于游戏开发真的太忙,没有多余的精力弄他,结果不知什么时候,他都挂了。原来的内容也都被清理了。幸好内容也不是特别多。后来,想了想,虽然独立的网站,自由度高一些,可以自己按照自己的需求来弄。但是,其中避免不了的风险也很多,比如,服务器宕机,内容不慎丢失,域名到期忘记续费......所以,还是回归到CSDN来吧。上一份工
2013-11-18 16:54:38
4330
原创 Mysql一主多从和读写分离配置简记
近期开发的系统中使用MySql作为数据库,由于数据涉及到Money,所以不得不慎重。同时,用户对最大访问量也提出了要求。为了避免Mysql成为性能瓶颈并具备很好的容错能力,特此实现主从热备和读写分离。在此简做纪要,以备日后所用!一、配置主从条件:两台PC,IP分别为192.168.168.253,192.168.168.251。两台PC上的Mysql版本为5.0。253上的Mysql为Ma
2012-05-30 16:44:21
51668
2
原创 小A的年前面试经历——实录
博客搬家啦——为了更好地经营博客,本人已经将博客迁移至www.ijavaboy.com。这里已经不再更新,给您带来的不便,深感抱歉!这篇文章的新地址:点击我题记——快过年了,我们都在等着过年放假回家,朋友小A却意外地告诉我们,她辞职了。惊讶之余,她也向我们倾诉了她前天的两则面试经历。 听小A的意思,本来,也没有希望在春节之前考虑找工作,因为毕竟春节前好像招聘的很少,
2012-01-16 17:16:45
4955
5
原创 我的2011——毕业之年的总结与彷徨
博客搬家啦——为了更好地经营博客,本人已经将博客迁移至www.ijavaboy.com。这里已经不再更新,给您带来的不便,深感抱歉!这篇文章的新地址:点击我题记——眼看2011即将成为过去,难得在这最后的时刻,抽点时间,倒上一杯热茶,回忆这一年的浮浮沉沉。 这一年,我和所有毕业生一样,离开了呆了四年的大学校园。呆腻了校园的生活,放弃了保送研究生的路,
2011-12-28 14:58:09
9390
15
原创 说说Android桌面(Launcher应用)背后的故事(大结局)——让Widget拥有Application同等的待遇
博客搬家啦——为了更好地经营博客,本人已经将博客迁移至www.ijavaboy.com。这里已经不再更新,给您带来的不便,深感抱歉!这篇文章的新地址:点击我前一篇中,演示了如何开发一个Widget以及如何开发一个WidgetHost应用。有了这个基础,我们就知道,要想在桌面上添加Widget,那么需要完成两件事情:1、将桌面应用实现为一个WidgetHost应用2、CellL
2011-12-27 15:25:10
11216
12
原创 说说Android桌面(Launcher应用)背后的故事(九)——让我的桌面多姿多彩
博客搬家啦——为了更好地经营博客,本人已经将博客迁移至www.ijavaboy.com。这里已经不再更新,给您带来的不便,深感抱歉!这篇文章的新地址:点击我 到这里我们的Launcher已经可以跑起来了,而且效果也如系统Launcher一般,但是,遗憾的是,我们的桌面上似乎都是一个摸样的Shortcut,而再看看系统桌面上,Search框,天气控件啊,各种大小参差不齐,界
2011-12-19 17:36:34
7983
3
原创 说说Android桌面(Launcher应用)背后的故事(八)——让桌面的精灵穿越起来
博客搬家啦——为了更好地经营博客,本人已经将博客迁移至www.ijavaboy.com。这里已经不再更新,给您带来的不便,深感抱歉!这篇文章的新地址:点击我 有了前面的工作,基本上这个桌面就已经像模像样了,但是,和系统自带的Launcher相比,还差得很远。其中,系统Launcher的桌面上的item是可以任意穿越(移动)的。同时,在其穿越的过程中,你
2011-12-16 09:32:13
7250
8
原创 说说Android桌面(Launcher应用)背后的故事(七)——又是一个附属品(可以转动的绚烂饼图)
博客搬家啦——为了更好地经营博客,本人已经将博客迁移至www.ijavaboy.com。这里已经不再更新,给您带来的不便,深感抱歉!这篇文章的新地址:点击我本来这一篇应该还是写Launcher中item拖拽的实现原理的,奈何,自从研究了Launcher,以前没有实现的,现在灵感全来了。这不,一个月前看到了著名记账软件随手记,看到android版中有一个炫酷的可以旋转的统计饼图,当
2011-12-02 22:06:31
9792
11
原创 说说Android桌面(Launcher应用)背后的故事(六)——研究Launcher而实现的附属品(可以拖拽的ListView)
博客搬家啦——为了更好地经营博客,本人已经将博客迁移至www.ijavaboy.com。这里已经不再更新,给您带来的不便,深感抱歉!这篇文章的新地址:点击我 本来这一篇将写Android中Launcher是如何实现桌面上item的拖拽的,当研究了其机理之后,突然大脑发热,想实现一个可以拖拽的ListView,在理解了Launcher中item的拖拽,再来实现可
2011-12-01 17:18:56
8749
4
原创 说说Android桌面(Launcher应用)背后的故事(五)——桌面壁纸的添加
博客搬家啦——为了更好地经营博客,本人已经将博客迁移至www.ijavaboy.com。这里已经不再更新,给您带来的不便,深感抱歉!这篇文章的新地址:点击我上一篇中,我们了解了Workspace是如何处理多个CellLayout之间的滑动的。这篇,将记录如何将壁纸添加到桌面,以及Workspace如何处理滑动的时候,壁纸的滑动。壁纸的添加,也是调用系统自带的,用如下方式调用:
2011-11-30 15:15:23
15706
5
原创 说说Android桌面(Launcher应用)背后的故事(四)——揭秘Workspace
博客搬家啦——为了更好地经营博客,本人已经将博客迁移至www.ijavaboy.com。这里已经不再更新,给您带来的不便,深感抱歉!这篇文章的新地址:点击我 前面说了Layout最主要的职责就是负责item的布局和空间的分配,这一节我们继续来看看CellLayout的父亲控件Workspace。手机的桌面是由几个屏幕的,你可以任意滑动的。这个布局就是一
2011-11-26 15:05:17
18538
8
原创 说说Android桌面(Launcher应用)背后的故事(三)——CellLayout的秘密
博客搬家啦——为了更好地经营博客,本人已经将博客迁移至www.ijavaboy.com。这里已经不再更新,给您带来的不便,深感抱歉!这篇文章的新地址:点击我CellLayout的设计主要为了存放大小不一的控件。为了更好的控制item的添加和删除,选择直接继承ViewGroup来实现该控件。我们长按桌面的时候,有两种情况,一种是我们按的是一个item,还有一种是我们按的是一个空
2011-11-24 17:18:46
28125
16
原创 说说Android桌面(Launcher应用)背后的故事(二)——应用程序的添加
博客搬家啦——为了更好地经营博客,本人已经将博客迁移至www.ijavaboy.com。这里已经不再更新,给您带来的不便,深感抱歉!这篇文章的新地址:点击我上篇中,讲到了第一个功能中需要获取应用程序的信息,然后添加到桌面。这里,先记录下如何获取Android中的应用程序信息。一、调用系统快捷方式列表 Intent pickIntent = new Inten
2011-11-23 17:37:09
18722
12
android实例*快捷查询
2011-01-17
android问题集锦第二期
2010-12-21
SSH2终极源码(公司内部资料)
2010-11-17
八皇后(图形化界面,含设计文档)
2010-03-26
类c语言词法分析器3.0
2010-03-19
通讯录(有设计详细说明)
2009-10-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人