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中