浅谈Flash与Android开发的区别

玩了将近半年的Android,感觉和之前的Flash开发还是有点区别的,个人感觉主要体现在两个方面:一是使用的编程语言不同,二是运行环境不同:

一. 编程语言同:

    Flash开发使用的是ActionScript3.0编程语言,Android开发使用的Java语言。二者都是面向对象的语言,在写法上也很近似。比如:不支持多继承、接口、单等号赋值、点语法引用....

    两种语言实现的功能类似但组织方式不同。打个比方:中文和英文。中文能说出的的绝大多数语义在英文中都能找到对应的翻译,但组织形式就不同了,举个例子:

    中文的“好”字。对应英文同时有“good”和“like”的意思。而且又由一个女字和一个子字组成,那就可以理解为“有妻有子是为好”、“儿女双全是为好”。这些语义元素都可以用英文轻易的表达出来,但是要从英语里找出一个单词同时具有这些语义在内,那可能就非常困难了。

    就如同中英文的差别,Java和ActionScript每个原生类所实现的功能都可能分部在另一个语言的不同类中。

二. 运行环境不同

      我刚开始接触Android的时候,读写数据库因为要修改ROM内存上的文件,所以做了很多措施来避免主线程卡死。后来发现完全没有这个必要,因为手机的ROM是高性能存储硬件,虽然在功能上相当于PC硬盘但在性能上起码也是相当于PC的立式硬盘而非传统的机械硬盘。而且,Flash是BS程序Windows或IOS对它的读写本机文件会增加一些额外的限制和监控,因而Flash读写本地文件效率很低。而Android程序相当于windows中的可执行exe程序,读写数据库的效率远非Flash可比。

    当然Flash也有它在PC中的优势,如它的内存不会被系统回收掉,不用在每次初始化时恢复Stop或Pause之前的显示状态和内存数据。即使被回收,PC也是把这部分数据放在虚拟内存(即硬盘)中,等程序再次Activity或Weakup的时候,从虚拟内存中原封不动的将这部分数据取出并还原成正在运行的画面和句柄。而Android明显只是简单的重新初始化了这个Activity。



你可能感兴趣的:(ActionScript,Android)