当前位置:首页 > 开发 > 行业应用 > 正文

Android开发中别忽视这些事

发表于: 2014-10-29   作者:aoyouzi   来源:转载   浏览次数:
摘要: 除了技术上要不断提高,在一些细节上面也要注意到,稍不留意,就可能自己给自己挖了个坑,然后,就把自己埋了……看看下边,有木有中枪的,中枪的都注意啦! 一、谨慎选择包名 包名 (Package Name) 就相当于一款应用在户口本上登记的名字,是系统用来区分不同应用的字段。重复的包名会被认为是同一款应用,不能同时安装在一个系统里。一般来说,包名建议使用域名反序。比如豌

除了技术上要不断提高,在一些细节上面也要注意到,稍不留意,就可能自己给自己挖了个坑,然后,就把自己埋了……看看下边,有木有中枪的,中枪的都注意啦!

一、谨慎选择包名

包名 (Package Name) 就相当于一款应用在户口本上登记的名字,是系统用来区分不同应用的字段。重复的包名会被认为是同一款应用,不能同时安装在一个系统里。一般来说,包名建议使用域名反序。比如豌豆荚的网站域名是www.wandoujia.com,那么豌豆荚的一系列 Android 应用的包名就是 com.wandoujia.***。这种约定俗成的办法可以最大程度地避免撞名的事故。

 

案例一

 

某个手机 ERP 客户端的开发者,在开发应用时使用了 Adobe 的工具,同时也参考了 Adobe 的官方教程,从而将应用命名为 air.Main 这样的通用包名,跟另一个游戏重名了。于是,在升级的过程中就产生了混乱……所以取名要慎重啊!

 

案例二

 

还有个开发者,不知为何给几个不同的应用都使用了同一个包名。于是“com.hexin.qs.app.android”这个包名,对应了申国万 银证券中信建投手机证券联讯证券手机炒股等好几个完全不同的应用。带来的后果就是,用户不能在手机上同时安装这几个应用,而且在升级过程中 也容易从一个应用升级到另一个应用上。所以,不能给好几个孩子取同一个名字啊!

 

二、一款应用只应该有一个签名

签名文件就相当于开发者的“身份证,我们平时生活中应该只有一张身份证,那么在手机里也一样,签名也应该是唯一的。而且因为签名的加密机制,使复制和伪造签名变得几乎不可能。因为,应用包一旦被破解,签名也会损坏,黑客会签另一个名

 

如果一个应用使用了不同的签名,那么对于用户来说,可能会造成应用无法升级,因为 Android 系统会在升级应用的过程中比对签名,不同的签名无法升级。如果用户选择强制升级的话,因为签名不同,所以需要先卸载旧版再安装新版,那么之前存在本地的应用数据、游戏记录等也会直接丢失。

 

案例一

 

就好像我们会不小心弄丢身份证,开发者也会不小心弄丢签名文件。我们曾遇到过四五例类似的例子,开发者找上门来说要求更换签名,原来是因为工程师离职把签名文件带走了,老板要不回来了,只好把原来的签名也全都改一遍。所以签名文件要保管好啊!

 

案例二

 

我们曾经统计过,网游“我叫 MT”在各大市场上一共有 48 种不同的签名。据我叫 MT”的开发者说,他们是通过不同的签名来区分不同的渠道的,而一共放出过多少种签名难以统计。这么多个不同的签名文件,除了自己管理起来非常麻烦之外, 也给用户的升级过程带来了困扰,一不小心升级到了不同签名的版本上,游戏记录就全部丢失了。

 

Android 签名机制的目的是为了检验应用是否被人更改过,二次打包重新上传市场的。而不是为了让你区分渠道的。那么正常来说应该用什么方法来区分渠道呢?请看下一条。

 

三、使用 xml 配置文件来区分渠道

一般来说,我们在 Android manifest 文件中使用 meta-data 来区分渠道。例如:

1

<meta-data android:name=“CHANNEL”android:value=“wandoujia”/>

每次正式打包完成后,修改 android:value,再重新打包即可生成一个新的渠道包,所以:

不要再用签名来区分渠道了!这里给大家推荐个渠道监测的工具:http://www.ijiami.cn/Channels,可以去检测下应用在各大市场上的下载量、版本、渠道等情况,一旦市场上有盗版的,会提醒你,这时候你就该头疼了。被破解了,怎么办,别担心,这里有解决办法http://www.ijiami.cn/appprotect_mobile_games

 

四、正确填写版本号

在 Android 应用中,有两个参数与版本号相关。其中,version Name 表示版本名称,是字符串,version Code 表示版本号,是整型数字。

 

一般来说,用户直观看到的是 version Name,所以这里应该填写形似“4.15.1”这样的版本号。而真正用来判断新版本旧版本的参数是 version Code。在应用发布第一个版本的时候,version Code 应该填1,然后每次发布的时候都递增,这样才是以规范的格式告诉各大市场你的应用的更新程度。

 

有的开发者在 version Code 上非常随意,这个版本发布的时候碰上结婚纪念日,于是用老婆的生日当 version Code;下个版本发布的时候运气不太好,于是用自己的幸运数字当作 version Code……这样在用户看来的结果就是,明明从官网安装了最新的 2.2.0 版本,可是各大市场却提醒升级到 2.1.3 版本,越升级版本号越小了。

 

以上四件小事,虽然都比较琐碎,而且没什么技术含量,但却是很多入门的 Android 开发者容易忽略的问题。希望本文能帮助广大开发者,在写出好应用的同时,避免这些给应用带来不必要的损失。

 

 

from   http://dangxinlu6790.iteye.com/blog/2149066

Android开发中别忽视这些事

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
12月4日,博客评论和实盘日志 都 提到一个值得注意的市场信号,那就是美圆很可能突破长期下降趋势,
2009年10月28日,北京,VMware Virtualization Forum 2009。惠普是VMware的合作伙伴,也是本届虚拟
原文: SQL开发中容易忽视的一些小地方(二) 目的:继上一篇:SQL开发中容易忽视的一些小地方(一) 总结SQ
原文: SQL开发中容易忽视的一些小地方( 三) 目的:这篇文章我想说说我在工作中关于in和union all 的
原文: SQL开发中容易忽视的一些小地方(四) 本篇我想针对网上一些对于非聚集索引使用场合的某些说法进
原文: SQL开发中容易忽视的一些小地方(二) 目的:继上一篇:SQL开发中容易忽视的一些小地方(一) 总结SQ
原文: SQL开发中容易忽视的一些小地方( 三) 目的:这篇文章我想说说我在工作中关于in和union all 的
原文: SQL开发中容易忽视的一些小地方(四) 本篇我想针对网上一些对于非聚集索引使用场合的某些说法进
原文: SQL开发中容易忽视的一些小地方(六) 本文主旨:条件列上的索引对数据库delete操作的影响。 事
本文主旨:条件列上的索引对数据库delete操作的影响。 事由:今天在博客园北京俱乐部MSN群中和网友
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号