1.XCODE中,头文件的引用可以不写全路径,但是在android中就不行了,所以想让以后的移植工作量变小一些,在刚开发的时候就必须注意这个问题
2.在开发IOS的时候,由于编译器对于C++函数指针调用的参数检查并不是很严格,比如typedef void (CCObject::*SEL_MenuHandler)(CCObject*);这种类型的函数指针,你传个void test();不带参数的函数指针进去,也能编译通过并且正常运行起来;而在android下,就没那么好运气了,必须严格的符合函数指针的参数需求来
3.在使用一些全局自带宏,或者常量定义之前,最好先查查标准C/C++中这个常量是否存在
4.当遇到可能会平台相关的代码时,要使用CC_TARGET_PLATFORM这个宏,会给你很大帮助;如果需要抽象出两个平台都能用的接口,那么在接口声明头文件中请一定不要出现Object-C相关的类以及语法(如#import 等,如果不得不使用,可以使用CC_TARGET_PLATFORM来区分代码),实现接口的时候,IOS使用mm文件,android使用CPP文件。所以在设计这些接口的时候,多多思考。
5.在android开发中,经常不得不使用JNI在JAVA和C++中不停来回调用,这个时候一定要看清楚函数声明的原型以及每一个参数,都必须一致,否则必然崩溃。我就遇到过一个坑,由于一时粗心大意,CallStaticVoidMethod和CallStaticVoidMethod混用了,一旦开启了ART模式,立马崩溃
6.XCODE开发的时候,文件的字符编码记得要和android的一致(建议UTF8),否则会造成中文注释乱码问题,而且在写中文注释的时候(没找到原因),XCODE的换行符和Eclipse的不一样,这个时候就会发生很可怕的事情,经常会把下一行代码给注释了,android就会莫名其妙的崩溃在一些奇怪的地方。这个花了不少时间才把所有代码修复,血泪史啊!
暂时就想到这么多了,想起来了,就会继续补充