Blogn - 记录个人历史 Ver 3.0.0
http://www.bloggern.com
首页  留言本  注册  用户名: 密码:  
android开发吐槽
作者:小猪   3778字节   点击:20753   回复:1504   所属分类:挨踢的人
创建时间:2011-12-19 23:08:45   最后修改时间:2011-12-19 23:08:45  
android的开发做了两个多礼拜,客户需要的小程序也渐渐的成型了,感觉的确是有些槽要吐的,我不知道ios的开发体验如何,但就android来说,即使不说非常糟糕,至少,也是让我感觉很不爽的。

1. 在头次的blog里面已经吐过了,就是它的模拟器,那个玩意儿是一个能用的东西么?我无法相信google的人怎么能够容忍一个启动需要5分钟的程序存活在这个世界上。如果是1.0时代,我觉得还可以接受,4.0我不知道情况如何,但至少3.2的模拟器还像这个样子,我觉得只能用脑子进水了来形容,因为。。。因为google居然选择在x86cpu上模拟arm芯片。。。我承认这在技术上很有挑战性,但是,这样一个对于开发者完全无用的东西,做出来干嘛?告诉我们google的人物超所值,的确当得起他们的工资么?


2. 缺乏必要的ui guideline以及常见UI任务的封装和教程,结果就是每个应用都有自己的UI风格和流程,我不得不翻遍所有的APP来对比思考常见任务的工作流程应该是怎样的,而且,我都得自己去实现他们,因为,android没有提供基本的实现。

3. sdk中脑残的设计满大街都是,随便举个例子吧,android提供了用xml来编写界面的能力,看上去很美好,但是我不得不说的是,如此美好的想法,为什么要自己重新定义一套规则呢?html+css的模式已经非常成熟了,你可以嫌它的能力不足,可以进行扩展,甚至可以定义一套完全不同的tag,这些都没问题,但为什么要自己实现一个完全不同的mark tags加style的体系呢?同学们,你在写html的时候,你为body定义了全局字体后,还需要为每一个div定义字体吗?还需要为每一个span定义字体颜色吗?当你为div定义了字号后,你还需要为每一个子div定义字号吗?好吧,android都需要。。。

4. 脑残的mark tags和style设计意味着,虽然我可以用xml很快写出一个简单的画面来,但我需要实现复杂画面的时候,我无奈的发现,我仍然只能用传统的new TextView,new Button的代码方式来构建UI,我的感想就是,你就直接用gecko引擎来做界面不就完了,搞什么飞机。。。

5. 我至今无法理解,为什么framelayout就不能定义margin,而linearlayout就可以,为什么linearlayout可以定义内部元素居中,而framelayout就不行,我更无法理解的是,在手工代码创建元素的时候,我为什么要一遍又一遍的写text.setLayoutParameter(new LayoutParameter(LayoutParameter.Fill_Parent,LayoutParameter.Fill_Parent))这样的冗长的代码,而且当我要设置margin的时候,我还得先创建好layoutparam,然后设置layoutparam的margin,然后才能把它设置为ui元素的layoutparam,我真的无法理解这样绕圈的思路,谁能告诉我padding和margin有什么区别?为什么textview可以直接设置padding,却没有margin,为什么虽然linearlayout可以设置marigin,却必须得先new一个layoutparameter,如果它是必须的,那为什么linearlayout又可以直接调用setpaddings来设置padding?基本上,当我看到我的代码当中充斥着set...new....这样的代码的时候,我真的很无语,当我为了方便的设置元素间隔而不得不定义一个空的textView来做占位符的时候,我真的很无语,当我为了让一个元素有margin控制而不得不给它套上一个linearlayout的时候,我真的很无语,html的模型有什么不好?css的模型有什么不好?尤其是当我想要将一个元素右浮动的时候,天哪,我是多么的想念css啊,哪怕是IE6的CSS Hell,也比我那一堆linearlayout要强多了呀。。。他们真的觉得自己能做出更好的东西来吗?跟上一点同样的感想,你就直接用gecko引擎来做不就完了,搞什么飞机。。。要是嫌gecko太笨拙,直接在webkit上做一个类似的东西,都比现有的这套莫名其妙的体系要好得多。

6. 仍然是对UI开发模式的吐槽,放着现成的开发模式不用,自己另起一套炉灶的代价就是bug,我遇到到了无数次background overlay的bug,底层元素的background会因为某些元素的动态重绘而错误的覆盖上层元素,最后解决办法是什么?把xml删掉,全部手写ui代码。。。。

7. 源代码发布的问题,android官方没有为任何一个重大发行版提供打包的代码下载,它以为人人都会有兴趣用git去clone它的官方库,但是作为普通开发人员,没有多少人会对庞大的官方代码库感兴趣,他们只需要特定版本的源代码做开发参考而已,提供一个source的打包下载有这么麻烦吗?即使按照android的开发手册clone了庞大的官方代码库,要找到特定版本的tag,也是一件很费力的事情,最关键的是,这实在是增加了太多不必要的麻烦,学学jdk,在sdk里面带上一个src.zip就很麻烦么?网上搜搜,多少人在找打包的源代码。

暂时吐到这儿,过几天想起新东西继续吐。。。
附件:
评论:
来自: 114.253.84.*   字节:63  ID:18444  发贴时间:2011-12-20 21:00:05  原贴 
没有竞争的后果……
就算在x86cpu上模拟arm,效率也不能这么差吧  

本文允许匿名评论

发表评论:(最长不得超过128KB)
验证码:


您不能对本文发表评论。