同事说安卓开发者只考虑 API 兼容了,不同机型充其量就是界面不一样而已,不会发生闪退异常什么的?
说不用考虑不同机型,只要在 Eclipse 里写好代码就可以了,谷歌已经把 API 版本兼容最好了,最多界面不一样。
1
kaedea 2015-10-13 12:52:59 +08:00 1
你写着 Android 的应用,却放到 Flyme 、 Miui 等系统上去运行,你能指望他完全兼容嘛?
|
2
Bown 2015-10-13 12:53:13 +08:00 1
Api Level 兼容保证的只是不会抛 NoSuchMethod 这类异常,然而还有大量奇奇怪怪的 bug 出现在各种第三方 ROM 上, MIUI 、 Flyme 坑了多少开发者
|
3
system OP 不同厂家机型不用考虑吗?
|
5
lincanbin 2015-10-13 12:56:40 +08:00 via Android 2
傻孩子,你没用过魅族吗?
|
6
system OP |
7
undownding 2015-10-13 13:07:48 +08:00 4
傻孩子,你跟个用 eclipse 写 Android 的较什么劲。。。
|
8
kaedea 2015-10-13 13:16:46 +08:00
>同事说:不同厂家只是界面不一样而已,没听说过还要兼容他们的机子
不怕国产机教你做人么 |
10
system OP @undownding 嗯!!!
|
11
learnshare 2015-10-13 13:28:32 +08:00 1
遵循官方指导,在 Nexus 上测试。这样基本上可以兼容主流机型。
|
12
nekoyaki 2015-10-13 13:35:42 +08:00 1
小米、魅族好多东西都要专门兼容。有时候三星也需要。
|
13
yexm0 2015-10-13 13:36:05 +08:00 via Android 1
看你做的啥软件咯,像浏览器这类的例如 2.3 年代开发的 uc7.9 ,到现在 6.0 了照样能正常使用。
|
14
wy315700 2015-10-13 13:37:27 +08:00 2
你除以 0 试试看会不会闪退
|
15
kx5d62Jn1J9MjoXP 2015-10-13 13:39:39 +08:00 1
基本上你同事是对的。
第三方 ROM 会有一些行为上的区别,但是一般不会有异常的 |
16
kx5d62Jn1J9MjoXP 2015-10-13 13:41:57 +08:00 1
@Xs0ul Google 的 API 国内的 app 也不会去用啊
|
19
jhdxr 2015-10-13 13:54:59 +08:00 1
你和没做过适配的人叫神马劲。。。就算是谷歌自己的亲儿子, google 自己的 API 也有 bug ,照样闪退啊
|
20
ibremn 2015-10-13 13:57:02 +08:00 1
你同事真的是在国内做安卓开发的吗。。
|
21
feicien 2015-10-13 14:05:05 +08:00 1
我在开发 Android 应用的时候基本不用考虑机型的
|
22
monsoon 2015-10-13 15:08:03 +08:00 2
我们觉得一些人回帖跟 LZ 的想要问的问题不一样......
安卓开发只用考虑 API 兼容就可以了: 我觉得这句话基本是对的, Android 的文档里的 API 都是公共的 API, 开发者只用考虑什么版本的 Android 的 API 有什么变化就可以了. 如果有 Android 发行商 魔改了公共的 API 部分实现, 这是这些开放商的问题. 我觉得 21L 说的对, 我开发 Android 的时候从来不考虑机型的, 只要原生通过了, 绝大部分机子都是没问题的. 很多人只是被 楼主 你的标题迷惑了, 因为你的标题本来就是错的, 楼主你是程序员的话, 就应该知道的. 你写程序的时候可以跟人保证没有 bug 吗, 比如说你一个很简单的网页应用没问题, 但是因为 硬盘 满了, 结果用户无法正常上传文件, bug 不就有了吗? 实际上很多个人的开发基本上不会为 小米、魅族和三星 做过什么特别的处理, 应用跑的没准比国产大牌应用跑的还好. |
23
monsoon 2015-10-13 15:17:32 +08:00 1
还有官方有发行厂商兼容的说明的 https://source.android.com/compatibility/overview.html
虽然我没了解过, 应该跟 Linux 的 POSIX 之类的比较接近. 当然如果你如果期望 完全兼容 这种话, 那么就毫无意义了. 程序开发或在这个世界没有 完美 或在 完全 这样绝对毫无偏差的 存在. 你在 windows 写的一个程序, 没准在 别人 的机子上就异常 (比如说他 安装了一些系统清理的软件), 你在某个 Linux 发行版本上写了一个程序, 也许明天就 broken 了(因为发行版本升级了依赖,引入了个 bug) |
24
KNOX 2015-10-13 15:42:51 +08:00 1
还在用 Eclipse ,懂了
|
25
zhenghuiy 2015-10-13 15:46:52 +08:00 1
闪退和异常只来自于兼容性?
|
27
allan1st 2015-10-13 16:05:32 +08:00 1
一般来说大多数的 fc 其实是自己没写好,没有注意到低版本, oos 了等。你同事说的其实有点道理,只是高估了国产手机修改手机 ROM 的底线。
吐槽 eclipse 的,你们没有发现 lz 也是用 eclipse 的么? |
28
twoyuan 2015-10-13 16:28:26 +08:00 1
|
31
honeycomb 2015-10-13 17:17:52 +08:00 1
|
32
monsoon 2015-10-13 17:33:17 +08:00 2
@allan1st
很多啊, 每个几十个也有个几百个, google issue 里找下很多的 https://code.google.com/p/android/issues/detail?id=188851&can=1&q=crash%20%20android%206.0&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars https://code.google.com/p/android/issues/detail?id=189119&can=1&q=RecyclerView%20Crash&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars 就是不用什么 API 都可以 crash. 用 Eclipse 有可能说明你同事菜, 或者说明你同事没有跟上 Android 开发的步伐, 但是这跟他的观点无关. |
33
jhdxr 2015-10-13 17:45:20 +08:00 1
@allan1st 上面已经有人给出很多例子了,我就不再重复了。。。另外 anr/fc 的确绝大多数是自己的锅,但 LZ 问的是闪退。。。系统的问题还是很多的。。。尤其是当你做的业务比较庞大的时候。。。
|
34
monsoon 2015-10-13 17:57:52 +08:00 1
如果你们厂商魔改导致 crash 例子的话, 当然很多
https://code.google.com/p/android/issues/detail?id=78377 https://code.google.com/p/android/issues/detail?id=78154 有直接被官方拒绝, 说这是厂商的锅的,让用户 workaround, 也有官方自己 workaround. 也有人作该机子对应的 Xposed 修复这个问题. 实际上很多开发并没有修过这些(估计很多人只遇到过其中的一部分), 或在知道并没有修, 或者在服务器看到了这个异常修一下. 或许很多大公司会真机测一下, 但是我并不认为这样的意义非常的大, 因为这些问题只是疑难杂症罢了. 算了, 总感觉我挺愚蠢的. 总之我想说的是 楼主的 标题是错误的, 完全兼容是不可能的. 但是我觉得很多开发者只用考虑 API 的兼容就算够了的. 总之我在想我这种自辩自答的意义何在...我太愚蠢了...总之把人生浪费在 miui 和 flyme 或者 touchwiz 上是毫无意义的. |
35
allan1st 2015-10-13 17:58:41 +08:00 1
@monsoon 我之前碰到的 bug 是不少,但真没有直接在 native 层面直接 crash 的。搜了下原来有很多,是我见识少了,谢谢。
|
36
little_cup 2015-10-13 22:05:20 +08:00 via Android 1
@allan1st 我前段时间才遇到一个,悬浮窗里的 view 使用了 android:elevation 属性会导致 6.0 真机 crash ,模拟器正常。
|
37
ericyl 2015-10-14 13:51:14 +08:00
之前做照片功能的时候,回传的 url 是放在回传的 intent.getData()中但有几款三星的就是放在 intent.getAction()中的,这种就是在碰到的时候才能慢慢调 BUG 了
|