记录一下最近遇上的坑和跳坑方案

select

阻塞的SOCKET+读写线程,其实是可以实现异步SOCKET通信的,但我们既然有SELECT,为毛不用。

Windows,Linux的select函数功能差异

http://www.cnblogs.com/fullsail/archive/2012/08/12/2634336.html

json

cocos2dx中使用的json是rapidjson,它只有头文件,很容易跨平台

示例:http://blog.csdn.net/infoworld/article/details/9625129  在cocos2dx 3.0中,直接 #include "../../external/json/document.h"什么的,就可以了。

java中使用json有很多库,如jsonlib,fastjson,boon json,gson等等。 除了jsonlib,其它都是在拼效率,但这些都只是针对于对象序列化而言,本身没有太多纠结。

且,如果想要使用 JSONObject ob ...   ob.getInt("ooxx") 这种,则只有jsonlib,fastjson有提供。

google protobuf buffer

这东西看起来很不错,但,在UNITY3D中,只能使用编译为DLL的方案,在C++中,需要增加fitler才能编译。 在JAVA这种基于文件系统的项目结构中,最方便。

增量更新

在其它平台都可以使用传统的SO更新方式,以做到用户无需重新下载APP。 唯有IOS不允许。 IOS下目前只能通过脚本解决。 或者将资源和APP分离,尽量做到最小更新。

JAVA

JAVA没有函数指针,函数代理之类的东西,唯一可用的,是Method.invoke  这东西效率不是太好,但也不是完全无法接受…… DEBUG状态下,我至强V2的CPU跑10W次,是1MS。

UNITY3D

虽然UNITY3D的FREE版可以免费发布ANDROID,IOS游戏,但不支持本地扩展,也就是说,IAP,广告,GAMECENTER集成什么的,就别想了。 如果要买,那至少是1500(PRO)+1500(IOS PRO), 1500(ANDROID PRO)可选。

UNITY3D有一个按月购买的方式。 每月75刀, 也就是 PRO+IOS PRO 是150刀。  但也有坑, 那就是,至少要订12个月。

UNITY3D的2D JONT,不支持BREAK FORCE,有这个需求的要小心。 

cocos2dx

想要日志输出,那么

adb logcat -s cocos2d-x debug info 是OK的。

可惜logcat面对空格的时候,选择沉默。

于是

相把TAG改了重新编译吧。

整个解决方案搜 __android_log_print

会发现在 cocos/base/CConsole.cpp中

原文地址:https://www.cnblogs.com/qilinzi/p/3740264.html