http://www.zhihu.com/question/21730788
AIR适合开发移动应用,但我不建议使用AIR开发移动应用。
我在 “与 Xcode 相比,用 Adobe AIR/Flex做 iOS 开发有哪些优势和局限?” 和 “怎样学习Flash?” 两篇回答中都提到了不建议使用AIR开发移动应用。
当然,如果你执意要这么做,我也没办法阻止你。下面我假设你选择了用AIR开发移动应用,给你一些或许有用的建议吧。
1. 缺少好用的UI组件,至少没有原生的丰富和高效。Flex在移动端基本死了,自己写要花很多的精力,问题也多。
Flex在移动端的死掉,我认同。但你依然是可以在移动端使用Flex的。如果是一些对性能要求不高的应用,使用Flex还是能够大幅提升开发效率的(是开发效率,不是运行效率)。
我甚至用Flex开发手机游戏。当然,这是我在做程序员的过程中做过的最错误的选择了。
你大可不必自己写一套UI组件,这里 Flash&Flex大全 有我整理的许多UI组件,大部分我都试用过,还是比较靠谱的。
如果你一定要自己写,可以基于 minimalcomps - Minimal ActionScript 3.0 code only UI components 这套组件来扩展和改写,会省不少力气。
我不建议你现在用Starling+Feathers做UI。Stage3D对显卡是有要求的,且在Android上不够稳定,尤其是在山寨机上。和游戏比起来,应用面向的受众更加普遍,设备的档次可能更低,山寨机也可能更多。为了这部分(或许是你的大部分)用户,还是放弃Stage3D吧。
从技术上讲,选择用Stage3D来做应用的UI,完全是自己找shi。应用中绝大部分使用的是原生DisplayObject List的内容,它们只能位于Stage3D的上层,那个层次怎么调?Stage3D和DisplayObject List混合渲染,那个性能是很低DI~
2. 有些功能需要扩展也就是ANE开发,但是ANE很少,也不好开发调试。
ANE的确是个坑。
为了填这个坑,无数程序员做出了无数的努力。Rect和我把做过的这些ANE都开放了源码,你或许可以找到适合你的: Platform ANEs
当然,上面的ANE主要是针对游戏的。ANE Toolkit | zrong's Blog 是针对Android平台的一些基本功能的,但也并不完善。你依然要自己做许多许多的事情。
在开工之前,你可以去Github上搜索一下,上面也有许多的无私程序员制作的ANE供你使用。
至于ANE的调试,那是个痛苦得让人不忍回首的过程,与 Xcode 相比,用 Adobe AIR/Flex做 iOS 开发有哪些优势和局限? 这篇回答里面做了描述。
3. 打包后的程序太大,不便于发布更新。
我在 与 Xcode 相比,用 Adobe AIR/Flex做 iOS 开发有哪些优势和局限? 这个回答中也做过测试。
总之,无论你是否在意多出来的那几MB,反正你想做个2MB以内的应用是不可能了。
等等,或许在Android上是有可能的,因为Android可以支持不绑定运行时。但这样一来,你就要祈祷你的用户知道AIR Runtime是什么东东。有段时间Google Play上关于AIR Runtime最多的投诉就是“病毒!!为什么我启动游戏还要装这个!!!这是个病毒!!!”
你看,小白用户就是这么难搞。
4. 寄希望于Adobe持续稳定的支持,但Adobe显然把Flash平台的重心放到游戏上了。
哦,看看我的Adobe Bug list吧:AdobeBug | zrong's Blog
你真希望Adobe能持续稳定的支持你什么?
有句话说的好:“生活就像被XX,如果不能反抗,那就默默享受吧!”
你能反抗么?
你有许多选择。
或许你愿意被XX?
AIR适合开发移动应用,但我不建议使用AIR开发移动应用。
我在 “与 Xcode 相比,用 Adobe AIR/Flex做 iOS 开发有哪些优势和局限?” 和 “怎样学习Flash?” 两篇回答中都提到了不建议使用AIR开发移动应用。
当然,如果你执意要这么做,我也没办法阻止你。下面我假设你选择了用AIR开发移动应用,给你一些或许有用的建议吧。
1. 缺少好用的UI组件,至少没有原生的丰富和高效。Flex在移动端基本死了,自己写要花很多的精力,问题也多。
Flex在移动端的死掉,我认同。但你依然是可以在移动端使用Flex的。如果是一些对性能要求不高的应用,使用Flex还是能够大幅提升开发效率的(是开发效率,不是运行效率)。
我甚至用Flex开发手机游戏。当然,这是我在做程序员的过程中做过的最错误的选择了。
你大可不必自己写一套UI组件,这里 Flash&Flex大全 有我整理的许多UI组件,大部分我都试用过,还是比较靠谱的。
如果你一定要自己写,可以基于 minimalcomps - Minimal ActionScript 3.0 code only UI components 这套组件来扩展和改写,会省不少力气。
我不建议你现在用Starling+Feathers做UI。Stage3D对显卡是有要求的,且在Android上不够稳定,尤其是在山寨机上。和游戏比起来,应用面向的受众更加普遍,设备的档次可能更低,山寨机也可能更多。为了这部分(或许是你的大部分)用户,还是放弃Stage3D吧。
从技术上讲,选择用Stage3D来做应用的UI,完全是自己找shi。应用中绝大部分使用的是原生DisplayObject List的内容,它们只能位于Stage3D的上层,那个层次怎么调?Stage3D和DisplayObject List混合渲染,那个性能是很低DI~
2. 有些功能需要扩展也就是ANE开发,但是ANE很少,也不好开发调试。
ANE的确是个坑。
为了填这个坑,无数程序员做出了无数的努力。Rect和我把做过的这些ANE都开放了源码,你或许可以找到适合你的: Platform ANEs
当然,上面的ANE主要是针对游戏的。ANE Toolkit | zrong's Blog 是针对Android平台的一些基本功能的,但也并不完善。你依然要自己做许多许多的事情。
在开工之前,你可以去Github上搜索一下,上面也有许多的无私程序员制作的ANE供你使用。
至于ANE的调试,那是个痛苦得让人不忍回首的过程,与 Xcode 相比,用 Adobe AIR/Flex做 iOS 开发有哪些优势和局限? 这篇回答里面做了描述。
3. 打包后的程序太大,不便于发布更新。
我在 与 Xcode 相比,用 Adobe AIR/Flex做 iOS 开发有哪些优势和局限? 这个回答中也做过测试。
总之,无论你是否在意多出来的那几MB,反正你想做个2MB以内的应用是不可能了。
等等,或许在Android上是有可能的,因为Android可以支持不绑定运行时。但这样一来,你就要祈祷你的用户知道AIR Runtime是什么东东。有段时间Google Play上关于AIR Runtime最多的投诉就是“病毒!!为什么我启动游戏还要装这个!!!这是个病毒!!!”
你看,小白用户就是这么难搞。
4. 寄希望于Adobe持续稳定的支持,但Adobe显然把Flash平台的重心放到游戏上了。
哦,看看我的Adobe Bug list吧:AdobeBug | zrong's Blog
你真希望Adobe能持续稳定的支持你什么?
有句话说的好:“生活就像被XX,如果不能反抗,那就默默享受吧!”
你能反抗么?
你有许多选择。
或许你愿意被XX?