`

Android开发中别忽视这些事

阅读更多

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

一、谨慎选择包名

包名 (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开发工作记录表.txt

    平时开发工作中遇到开发的问题,自己记录下来方便工作的开发,android记录表,希望对平时开发新人员来说有帮助的作用,也许合适,也是不太适合,如果下载了没有帮助选择忽视,有帮助的话就最好。

    Android应用不可忽视的安全问题.pdf

    Android应用不可忽视的安全问题.pdf

    Android 课表设计.doc

    Android应用程序的多样化对人们快速获取资讯以及方便人们的生活起着不可忽视的作用,近年来Android得到了社会更多的认同和应用,本文主要概述了Android系统的体系结构,Android应用程序的开发环境和使用JAVA语言开发...

    Dart开发Android应用Sky.zip

    Sky 项目使用网页开发语言 Dart 开发原生 Android 应用,强调应用的运行速度和与 Web 的高度集成。Javascript 已经有 20 年的历史,有很多理念已经跟不上时代,编程体验也很差,因此 Chrome V8 引擎团队开发了 ...

    基于Android系统的课程管理系统设计与实现.doc

    近年来Android得到了社会更多的认同和应用,本文主要概述了Android系统的体系结构,Android应用程序的开发环境和用JAVA语言开发基于Android系统的课程管理系统中的一些技术实现方法,这些技术包括:基于Android系统...

    基于Android的大学课程及日记的管理.doc

    世界上一些知名的移动设备生产厂商对于Android智能机的开发热情也日益提高,Android系统的使用人群正在急速提升,Android应用程序的多样化对人们快速获取资讯以及方便人们的生活起着不可忽视的作用,近年来Android...

    百套毕设之-Android(正文+开题+演示+源码)基于Android病人吃药提醒app

    在我国老龄化不断发展过程中,老年人由于视力、听力、记忆力下降,导致漏服、误服药品的事件时有发生,已成为一个不可忽视的社会问题。经过对国内外老年人医疗辅助APP的分析,运用系统化、模块化的分析方法和手段,...

    Android性能优化之被忽视的优化点

    Android性能优化之被忽视的优化点本篇文章就博主本人的理解来讲述一些在Android开发中可以优化的地方ArrayList和Vector都是内部以数组实现的List,它们两唯一的区别就是对多线程的支持,ArrayList是线程不安全的,而...

    Android开发工程中集成mob短信验证码功能的方法

    那么下面就简单讲一下如何在自己的工程里集成mob的短信功能,其实整个流程并不复杂,只是个人觉得mob的官方文档有点小乱,官方Demo也有点小复杂,同时有一些细节地方容易被忽视,也会导致一些问题。 PS:太喜欢mob的...

    论文研究-移动应用程序内存泄露机制分析与检测方案设计.pdf

    Android开发已经成为移动开发热门领域,Android应用程序中内存使用的问题却经常容易被忽视,部分开发者对Java垃圾回收机制认识模糊,使得内存泄漏成为Android应用开发中十分隐秘但又确实存在的应用安全问题,对内存...

    kotlin开发技巧和常见问题.docx

    在Android开发中,可能出现与Java互操作时的兼容性问题,比如注解差异、资源引用等。 协程异常处理: 使用Kotlin协程时,需要正确处理挂起函数中的异常,否则可能导致异常丢失或程序意外行为。 编译配置问题: ...

    微信公众平台应用开发实战-完整扫描版

    本书是微信公众平台应用开发领域的经典著作,作者是腾讯公司的资深软件开发工程师,而且是微信公众平台应用开发的先驱者之一。本书全面介绍了微信公众平台应用开发所需的各项技术,系统解读了微信公众平台开放的API...

    深入浅析Android坐标系统

    很多人可能不屑一顾Android的坐标系,但是如果你想彻底学会自定义控件,我想说了解Android各种坐标系及一些API的坐标含义绝对算一个小而不可忽视的技能;所谓Android自定义View那几大主要onXXX()方法的重写实质其实...

    Cannot find AVD system path. Please define ANDROID_SDK_ROOT 这个问题不一定出在路径配置上

    就比如昨天她查遍教程也没解决这个报错,而我已经2年没动Android开发了,不得不细细排查。网上有很多点击量很大的答案,都是说其然,不说其所以然。我一直强调最重要的是:我们要学到分析问题的能力,而不是记住一个...

    Android应用 坐标系详细介绍

    Android 应用坐标系详解:  由于最近做Android项目需要用...很多人可能不屑一顾Android的坐标系,但是如果你想彻底学会自定义控件,我想说了解Android各种坐标系及一些API的坐标含义绝对算一个小而不可忽视的技能;

    Android状态栏白底黑字的示例代码

    这状态栏布局和图标挺像Android,但是这白底黑字Android设计规范里可没有啊,于是我们开发的时候果断忽视这个状态栏了(当时大部分用户还都是Android 4.4)。 结果设计师拿着测试版过来问,你们安卓这个状态栏颜色...

    quark-engine:Android恶意软件(分析|评分系统)

    忽视混淆的Android恶意软件计分系统 Quark-Engine也与捆绑在一起。 一个值得信赖的实用工具,可用来增强您的恶意软件反向工程。为什么选择夸克? Android恶意软件分析引擎并不是一个新故事。 每个防病毒公司都有自己...

    new-relic-android-monitor:使用 New Relic 进行监控并在您的 Apdex 达到阈值时收到令人难以置信的令人不安的警报

    新遗物android显示器 你已经在使用 New Relic 了吗? 那太棒了! 它的邮件和警报很棒。 但是……你我都知道,有时,他们会被忽视。 我们设法创建了这个很棒的应用程序来监控您的 New Relic 应用程序 Apdex 和 ...

    leetcode安卓-SoftwareDevelopmentResources:一个获取iOS、Web、Android等学习资源的地方,以满足

    leetcode安卓软件开发资源 为您的软件开发需求获取 iOS、Web、Android ...中被忽视的部分的日志。 每周更新 iOS 和 macOS 开发的深入指南。 Advanced Swift 的合著者 Swift 风格指南 了解 Xcode 的变化。 i

Global site tag (gtag.js) - Google Analytics