找回密码
 立即注册
搜索
查看: 8107|回复: 75

[移动] 必须铲除业界毒瘤 Android

[复制链接]
发表于 2013-10-22 02:22 | 显示全部楼层 |阅读模式
标题危言耸听一点儿,就当是写 Android App 的抱怨吧。
写这个帖子是谈一下开发 Android App的感受,我也是刚开始起步,有什么说的不对的,欢迎指正。

这学期阴差阳错选了个 Android 开发的课程,自己在 iTunes 看 iOS 开发的,两边都在学,相互比较,谈谈 Android 在开发上到底烂在哪。

(1)之前 iPhone 5s 出来的时候,说是第一款 64 位手机,Android社区马上有人不服,说 Android 基于 linux,本身就支持 64 位的。
这话是不假。但问题是这样的。
Android 分三层

最上层:普通用户装的 app
中间层:google 自己改装的虚拟机 (32 位的)
最下层:linux 内核 (64 位的)

这样的结果是,除非 google 重写 中间层,Android 不可能跑 64 位的。

(2)Android 设计的这三层结构,
我上课问老师为啥,直接从底层的 linux 网上走不是很好么。
老师(AT&T实验室里手机开发的大牛)很扭捏,说这样可以兼容更多的设备,每一个上层 App 跑的时候,因为在虚拟机上跑,不需要考虑底层驱动。
我觉得完全扯淡。
如果底层封装好,上层只要留好接口,也是不需要考虑底层硬件的。
我个人的看法是,Android想用 Java 一套成熟的开发框架拉拢开发者。
相比 iOS 需要学一个不常用的新语言(其实现在 objective c已经火的不行了),Android宣传的口号就是会写 Java 就来开发 Android 吧。
但问题就是,Java、Eclipse这一套确实太慢了。开个 Eclipse,先上个厕所。相比而言 Xcode 快的令人不可想象。
在我看来现在 Google 已经被 这个三层结构拖累的不行了。
最新开发的 Android studio暂时还是 beta,我试用下直接崩了,暂时还不能跟 xcode 对打。

(3)Android不仅是版本分裂,各种组件更是分裂。
特别值得一提的就是,最新的 Google Maps API 在虚拟机里居然是跑不了的。
Google 为了强推 Play 商店,最新的 Maps API是作为 Play 的开发框架里的一个组件发布的,结果是因为 Play 不能很好的在虚拟机上跑,Google Maps API也不能跑了。
stackoverflow上专门有帖子讨论这个。
http://stackoverflow.com/questio ... on-android-emulator
从 2012 年出了这个问题之后,现在快一年了,官方没有任何解决方案。(官方文档完全是废的,越重要的方法越解释的乱七八糟)
要解决,要不就看 stackoverflow 的帖子,配置好几个库。(我是配好了,下一个开发者来了,还是从头开始,上网找,配一遍,不一定配好。)
要不就实机测试。但是程序开发不可能写两笔就实机测试的,总是虚拟机先跑跑,ok,再来实机。

相比而已,xcode要好很多。
我看 iTunes 上 Stanford 那个教授讲的视频,他用的老版 xcode,边讲边吐槽“这里有点儿不方便啊”。我用的新版 xcode 学习,一看,他吐槽的地方, Apple 都已经改了。
看看 Android 的开发,完全无视用户反馈。

(4)Android 可以市场做的很大。
但是从一开始,开发的这个方面就做的没有 Apple 好,未来也看不到往好走的迹象。
只要 Android 还是这个框架,还有这样对开发者的态度。
卡、卡、卡、软件差,就没有办法改变。
iPhone 一开始出来的时候,没有多少人会 objective c,现在objective c 不仅热门,而且还各种进化新方法,方便开发者。
Java 现在在 Oracle 手里,Google 也改不了,坚持着这个框架,也不好意思说我们完全掉头,换一套新的。
看着觉得 Google 还有点儿可怜呢。

(5)即使这样我还是希望 Android 能活久一点儿。
Android 如果死了。
一来 iOS 没的抄了,Apple 鸡贼的尿性,估计没了Android的压力, iOS 进化的越来越慢
二来 Android 死了,以后还黑谁呢?

回复

使用道具 举报

     
发表于 2013-10-22 02:43 | 显示全部楼层
啦啦啦居然没有转贴?
回复

使用道具 举报

     
发表于 2013-10-22 03:02 | 显示全部楼层
原创? 楼主介绍点ios开发教程或者视频吧……
回复

使用道具 举报

发表于 2013-10-22 03:25 | 显示全部楼层
同认为Android有问题,但不是LZ那样的理解。
目前 虚拟机是解决大部分平台问题以及开发难度问题的唯一手段,如果不这么做,必定造成开发困难.你说的"如果底层封装好,上层只要留好接口"这点在Android刚起来的时候根本没有的大环境,目前也没有。
智能手机系统这一领域其实还没到足够的细分程度。以至于很多社区之类的纷纷要推出自家的系统。Android系统的定位在我看来应该是不太喜欢折腾又能随便换新的大众消费者。
回复

使用道具 举报

发表于 2013-10-22 05:07 | 显示全部楼层
在推上看了好久了XDD
回复

使用道具 举报

头像被屏蔽
发表于 2013-10-22 06:06 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2013-10-22 06:29 | 显示全部楼层
ADT的模拟器是傻逼没错,但是你要从哪个世界线穿越才能得出Android要死的结论。
回复

使用道具 举报

     
发表于 2013-10-22 06:29 | 显示全部楼层
用户足够多、Java的技术积累、开发环境跨平台决定了安卓开发很长时间都死不了

开发工具够用就行了,语言没进化其实也没啥(看看疯狂进化的C#)
只有哪天出现具有Android的主要优点又比Android先进的系统才有可能干掉它,问题现在蓝星有公司有这个技术实力么
回复

使用道具 举报

发表于 2013-10-22 08:00 | 显示全部楼层
死程沒人權 謝謝
回复

使用道具 举报

     
发表于 2013-10-22 08:13 来自手机 | 显示全部楼层
这都是程序员的问题,普通用户谁管啊

----发送自 STAGE1 App for Android.来自: Android客户端
回复

使用道具 举报

     
发表于 2013-10-22 08:25 来自手机 | 显示全部楼层
eclipse很烂没错,但xcode也是个烂货
回复

使用道具 举报

     
发表于 2013-10-22 08:25 来自手机 | 显示全部楼层
eclipse很烂没错,但xcode也是个烂货
回复

使用道具 举报

     
发表于 2013-10-22 08:25 来自手机 | 显示全部楼层
eclipse很烂没错,但xcode也是个烂货
回复

使用道具 举报

     
发表于 2013-10-22 08:31 | 显示全部楼层
你说的2不是公认的事实么…
至于Eclipse启动慢,换SSD吧,一切都不同了。

后面说的虽然也有些道理,不过我觉得,如果Android是一款专用于一种硬件的操作系统的话,一切都会好的多。现在的很多问题,其实是无可奈何的。如果iOS要兼容各种设备,不一定会比现在的Android做得好。
回复

使用道具 举报

头像被屏蔽
发表于 2013-10-22 08:32 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2013-10-22 08:44 | 显示全部楼层
tonyunreal 发表于 2013-10-22 06:29
用户足够多、Java的技术积累、开发环境跨平台决定了安卓开发很长时间都死不了

开发工具够用就行了,语言没 ...

巨硬不作死彻底封死WP,而是让WP和桌面版Windows一样开放的话,用C#和.NET作跨平台的NT内核WP还是能满足条件的……而且巨硬的开发环境也是最好的……
回复

使用道具 举报

     
发表于 2013-10-22 08:56 | 显示全部楼层
一个是为了不同系统架构的兼容性,另外一个就是为了好开发吧。

如果不用java,用native的语言,又为大众所熟知的,那就只有c/c++可选了吧,google自己整一个,恐怕不大可能像objc一样推广开来。c其实并不适合gui开发,基本上只有c++可用了。合格的c++开发人员比java人数上就差的太多了,开发难度也是。所以google这么选择也是无奈。

其实有一个基于linux的,框架和应用都使用原生代码的,那就是meego啊,用Qt/c++做为开发框架。当然nokia没把这玩意推广开来,所以也就没有后话了。
回复

使用道具 举报

     
发表于 2013-10-22 09:02 | 显示全部楼层
LZ你说这些谁懂啊,我就知道搞iOS开发得买台Mac,这成本WQNMLGBD
回复

使用道具 举报

发表于 2013-10-22 09:24 | 显示全部楼层
底层接口就算一样也要重新编译啊
不同芯片来个不同的binary谁受得了,你看以前游戏数据包不一样,一群人轮着黑安卓装游戏不方便

android的java和java是不同的,和java

eclipse确实不好用,用IntelliJ IDEA
另外ios只能用mac或者黑苹果开发方便在哪?
虚拟机就别用了,买个nexus吧

另外现在app不卡的好用的也不少,不明白楼主第(4)点是怎么拍脑袋想出来的
回复

使用道具 举报

头像被屏蔽
发表于 2013-10-22 09:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2013-10-22 09:29 | 显示全部楼层
مالك 发表于 2013-10-21 20:24
底层接口就算一样也要重新编译啊
不同芯片来个不同的binary谁受得了,你看以前游戏数据包不一样,一群人轮着 ...

没钱买 nexus,iPhone是合约机拿来的还没到约,用的挺好也不打算换。
Mac 在美国的大学推广的特别好,大部分大学的图书馆都被 Mac 占领了
两个机器我都没有的情况下,iOS开发就基本没什么障碍,除非我要用硬件特性。
iOS猴子写出来都不会卡成什么样,Android一开始一部分资源就浪费在跑虚拟机上了。
回复

使用道具 举报

头像被屏蔽
发表于 2013-10-22 09:34 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2013-10-22 09:34 | 显示全部楼层
陈永仁 发表于 2013-10-22 09:29
没钱买 nexus,iPhone是合约机拿来的还没到约,用的挺好也不打算换。
Mac 在美国的大学推广的特别好,大 ...

再怎么说mac+iphone也比nexus+pc贵吧
好吧不说了,这先天环境不一样
回复

使用道具 举报

头像被屏蔽
     
发表于 2013-10-22 09:36 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2013-10-22 09:37 | 显示全部楼层
jun4rui 发表于 2013-10-21 20:29
如果不用Java用C,你也会哭的,你每种CPU架构都要编译一套,就算同架构针对不同厂家甚至同厂家的不同改进版 ...

google 新的 Android studio 我主贴说了,现在 beta 不能打,我认识的同学都没有调通的,能作为主力开发还要有一段路。
Python Ruby这种,Mac本来是有 MacRuby这种库的,但是我看到几个项目都是从 MacRuby 转回原生的 Cocoa 了。我现在每天也写 Python Ruby,解决问题是方便,但是从手机开发的角度,资源有限,我还是推崇用 c 这类的语言。
回复

使用道具 举报

头像被屏蔽
发表于 2013-10-22 09:41 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽
发表于 2013-10-22 09:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2013-10-22 09:53 | 显示全部楼层
tonyunreal 发表于 2013-10-22 06:29
用户足够多、Java的技术积累、开发环境跨平台决定了安卓开发很长时间都死不了

开发工具够用就行了,语言没 ...

.net从4.0开始就已经在悠着了...
回复

使用道具 举报

头像被屏蔽
发表于 2013-10-22 09:55 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽
发表于 2013-10-22 09:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2013-10-22 10:03 | 显示全部楼层
Brienza 发表于 2013-10-22 09:55
Google写个中间层纯粹是为了绕开GPL
所谓方便开发只是个借口而已。跟硬件架构有个毛关系,Linux本身就能跑 ...

怎么没人抱怨
装一个软件要装一堆依赖
有些还没有bin得自己编译
最后一上午过去了居然有一个库编译错误了

Linux能跑各种硬件是建立在开源的条件下的,有源码可以随时编译
光是这条就秒杀了所有普通用户了
回复

使用道具 举报

头像被屏蔽
发表于 2013-10-22 10:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽
发表于 2013-10-22 10:06 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2013-10-22 10:07 | 显示全部楼层
陈永仁 发表于 2013-10-22 09:37
google 新的 Android studio 我主贴说了,现在 beta 不能打,我认识的同学都没有调通的,能作为主力开发 ...

你说的这种有ndk
我真不觉得一个普通app要多有效率。

另外android studio也好eclipse也好都是ide问题,和sdk本身没有太大关系
就像visual studio对c++支持不好不能说c++不好一样
回复

使用道具 举报

发表于 2013-10-22 10:08 | 显示全部楼层
Brienza 发表于 2013-10-22 10:06
你说的这些是以前包管理机制不成熟而已,现在的发行版都一个命令就完了 ...

那是因为编译好了,本质上还是不同binary
回复

使用道具 举报

发表于 2013-10-22 10:19 | 显示全部楼层
没打过ios编程,我只知道老板柜子里那一堆小米跟三星平板大概全卖掉也不够买几个来福手机来福板的。
另外android的小开发板都很好用,做穿戴式控制设备最容易的平台大概就是Arduino小板+android小板/手机了。
回复

使用道具 举报

头像被屏蔽
     
发表于 2013-10-22 10:28 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2013-10-22 12:30 | 显示全部楼层
你说的这些,谁懂啊?我相信大部分安卓开发者头疼的都不是这些问题,LZ没黑到点子上。
回复

使用道具 举报

     
发表于 2013-10-22 12:31 | 显示全部楼层
望向天国的meego君。
回复

使用道具 举报

     
发表于 2013-10-22 12:52 | 显示全部楼层
uroko 发表于 2013-10-22 12:31
望向天国的meego君。

meego就算nokia也像google那样大力去推,恐怕最终还是干不过android的。c++比起java确实难用多了,开发人员也不是一个数量级的,这样对于已经在app数量和质量上落后于ios的后来者是很不利的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-9-10 02:23 , Processed in 0.238879 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表