android应用开发中的兼容性问题整理

上传人:第*** 文档编号:32455159 上传时间:2018-02-11 格式:DOC 页数:13 大小:347KB
返回 下载 相关 举报
android应用开发中的兼容性问题整理_第1页
第1页 / 共13页
android应用开发中的兼容性问题整理_第2页
第2页 / 共13页
android应用开发中的兼容性问题整理_第3页
第3页 / 共13页
android应用开发中的兼容性问题整理_第4页
第4页 / 共13页
android应用开发中的兼容性问题整理_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《android应用开发中的兼容性问题整理》由会员分享,可在线阅读,更多相关《android应用开发中的兼容性问题整理(13页珍藏版)》请在金锄头文库上搜索。

1、Android 应用开发兼容性问题整理(仅供内部使用)Android 应用开发兼容性问题整理Android 应用开发兼容性问题整理目录1 案例描述 .22 案例分析 .22.1 解决兼容性问题的利器 .22.2 Dialog.setMessage(String str) .32.3 不要用 AutoCompleteBox 组件 .42.4 快捷方式 .52.5 Android 类库中 .InetAddress 的差异 .82.6 手机厂商兼容性评分 .93 总结 .10Android 应用开发兼容性问题整理模板编号: 模板版本:V1.0Beta1.0 第 1 页 共 13 页关键词:Andro

2、id,兼容性问题摘 要:Google 的战略造成 Android 生态系统的混乱,混乱给 Android 应用开发带来阻力,本案例总结了几个本人工作中遇到的 Android 兼容性问题,提供一些解决思路,避免浪费时间。由于本人工作是 Android 的应用开发,本案例不讨论硬件方面的问题。Android 应用开发兼容性问题整理模板编号: 模板版本:V1.0Beta1.0 第 2 页 共 13 页1 案例描述Android 应用开发的同学,在工作中一定会经常遇到这样的场景:测试人员拿着手机,气势汹汹的过来, “这个 bug 刚改好,怎么又有了?”,开发的同学皱起眉头找原因,同样的程序在三星手机上

3、策马奔腾,却在魅族手机上折戟沉沙。 做 web 开发的尤其做前端的同学,都知道各浏览器之间存在兼容性问题。Android 应用开发中同样存在令人头疼的兼容性问题,如鬼魅一般如影随形,隐匿在开发的各个角落。本篇案例,就以本人艰苦卓绝的一年 Android 应用开发经验为基础,整理出一些 Android 兼容性问题。希望能够为开发人员提供一些解决思路,少走弯路。需求人员可以以此为参照,在做需求的时候避免一些兼容性问题频发的地方,不要折腾。测试人员也可以阅读此案例,做好测试Android 应用的思想准备。在案例最后,也会总结一下几个厂商的手机在兼容性上的表现,需求、开发、测试人员在做 Android

4、 应用相关工作的时候 ,多加注意。2 案例分析2.1 解决兼容性问题的利器Android 操作系统由于 Google 的开源推广,惨遭各大手机生产厂商修改折腾,同一版本号的 Android 系统在不同的手机上会出现差别。再者,Android 一出世便身负重任,版本更新的速度非常快,这也导致了不同 Android 版本会有差别。甚者,同一家手机厂商推出不同型号的手机采用不同的 Android 系统版本、是否修改 Android 源码,都会引起应用程序的一些表现差异。所以,我们在碰到了兼容性问题的时候,找寻的直接原因要从系统版本、手机厂商、手机型号等方面入手。幸好,Android api 提供的

5、android.os.Build 类能够为我们提供这些信息,从而根据这些信息对应用程序做适当的处理。下面列举了,android.os.Build 类中比较常用的静态成员变量。android.os.Build.MANUFACTURER :生产厂商android.os.Build.MODEL :设备名android.os.Build.VERSION.SDK:sdk 版本号android.os.Build.VERSION.SDK_INT : sdk 版本号,int 类型Android 应用开发兼容性问题整理模板编号: 模板版本:V1.0Beta1.0 第 3 页 共 13 页2.2 Dialog.s

6、etMessage(String str)贴代码:public void openVersionDialog(final Context context, final String message,String fileName, String fileSize)AlertDialog.Builder dialog = new AlertDialog.Builder(context);dialog.setTitle(context.getString(R.string.new_version);String msg = context.getString(R.string.version_in

7、fo) + message+ context.getString(R.string.install_package, fileSize);dialog.setMessage(msg); dialog.create();dialog.show();上面的代码,是为了进行一个弹出框提示,同样的代码,不同手机上dialog.setMessage(msg)的表现不同。图 2-2-1 Meizu 手机 图 2-2-2 Philips 手机对于 dialog.setMessage(msg)的处理,Meizu 手机中的字段是居中对齐的,而目前测试到别的厂商的手机都是左对齐,三星、Philips、Htc 都是

8、左对齐。如果开发人员被要求修改Android 应用开发兼容性问题整理模板编号: 模板版本:V1.0Beta1.0 第 4 页 共 13 页Meizu 手机的表现,有两种解决思路。一种思路是:通过 android.os.Build.MANUFACTURER 判断是否是 Meizu 手机,如果是 Meizu 手机则不用 dialog.setMessage(String msg)方法,而创建一个显示文字的 view,然后用 dialog.setView(View layout)方法。第二种思路是不采用dialog.setMessage(String msg)方法,全部采用 dialog.setVie

9、w(View layout)方法。第三种思路则不用 Dialog 类,弹出框采用自定义 Activity。2.3 不要用 AutoCompleteBox 组件大家在平时上网的时候,都会有这样的经历,在 Baidu 的搜索框中,输入字符串,Baidu 会弹出一个下拉框,下拉框中有跟你输入的字符串相联系的一些字符串。这在 web 中是一个常见的应用,你输入一个字符,页面发送 ajax 请求给后端,后端经过处理,返回相关的字符串,然后显示在前端页面。那么有人,就会问,能不能把这种应用搬到手机应用上。答案是可以的,而且 Google 也给我们提供这样的组件。但只能说,这人有联想,但没经验。2.2 中介

10、绍的问题,目前测试只 Meizu 手机出现,如果是 AutoCompleteBox 组件,则多种手机会出现不同的症状。图 2-3-1 AutoCompleteBox 示例如图 2-3-1,AutoCompleteBox 组件包括 text box、drop-down、selection adapter 三个部分。图中,adapter 中有四个 Item,Item 中可以设置背景图片。单独的一个 AutoCompleteBox 组件感觉不错,但在实际的测试中,同一代码在不同的机型会出现各种差异,这些差异存在于组件的不同的地方。例如:1)Item 与 selection adapter 左边框、右

11、边框的距离。2)只有一个 Item 时, selection adapter 的上下边框遮住一个 Item。3)selection adapter 的边框与 drop-down 边框Android 应用开发兼容性问题整理模板编号: 模板版本:V1.0Beta1.0 第 5 页 共 13 页的距离。4)text box 的位置表现影响到当软件盘弹出时 drop-down 是在 text box 的上方还是下方,如图 2-3-2。5)如果 Item 中有背景图片,那么背景图片的透明度可能引起别的问题。解决这些问题,是耗费时间精力体力的,组件的每个属性都要试,据测试修改的经验,越老版本的系统、越老型

12、号的手机问题越多。这里就不一一贴图,往事不堪回首。所以,在应用中,快刀斩乱麻,大胆去之。图 2-3-2 drop-down 在上方的 AutoCompleteBox2.4 快捷方式应用程序有了创建快捷方式的功能,经常有人抱怨自己手机上出现多个桌面图标。且听本人娓娓道来。不同于 iOS,Android 操作系统在安装一个软件安装包的时候,并不会为软件包创建桌面快捷方式,要实现创建桌面快捷方式的功能,只能在程序安装成功后第一次运行的时候创建快捷方式。而且,Android 系统是允许系统启动后选择桌面的,区别于其他系统在启动后是默认桌面,这也就导致了 qq 桌面、91 桌面等各种桌面应用的丛生。再者,Android 的开源性,某些自称国际品牌的手机厂商标新立异,不仅修改桌面,而且修改与桌面相关的 java 类。1) 添加桌面快捷方式的代码:/添加当前应用的桌面快捷方式public static void addShortcut(Context context, int iconId, int appId, Class target, Android 应用开发兼容性问题整理模板编号: 模板版本:V1.0Beta1.0 第 6 页 共 13 页boolean many) Intent addIntent = new Intent(com.andr

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号