搞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 开发者容易忽略的问题。希望本文能帮助广大开发者,在写出好应用的同时,避免这些“坑”给应用带来不必要的损失。
相关推荐
《Android底层开发技术实战详解》是一本面向Android底层开发者的专业书籍,旨在深入...通过阅读和实践书中的内容,开发者能够更好地应对Android开发中的各种挑战,为构建高效、稳定、安全的Android应用打下坚实基础。
在Android开发中,首先需要理解的是Android SDK(Software Development Kit),它是开发Android应用的基础工具集,包含了编译、调试以及模拟器等必备组件。读者需要学会如何下载、安装并配置SDK,以便进行后续的开发...
随着应用功能的增加,数据存储与管理成为Android开发中不可忽视的一部分。Android提供了一些轻量级的数据存储方式,如SharedPreferences用于存储少量数据,SQLite数据库用于存储结构化数据,以及文件存储等。 ...
作者何晓杰,作为一名资深软件工程师和移动行业研究者,深入探讨了Android开发过程中的关键点,以及如何利用Android的优势,同时克服其潜在的挑战。 ### Android的发展历程与特性 自G1手机的发布,标志着Android...
书中会详细讲解这两种语言在Android开发中的应用,包括基本语法、面向对象特性、异常处理等,并对比两者的差异,让读者可以根据项目需求选择合适的语言。 Android应用程序的核心是四大组件:Activity(活动)、...
此外,性能优化、内存管理以及兼容性测试也是Android开发中不可忽视的部分。 通过【Android开发入门与实战的代码】,你将逐步掌握如何从零开始构建一个完整的Android应用,同时理解背后的原理和技术。随着经验的...
最后,性能优化是Android开发中不可忽视的部分。包括内存管理、UI流畅性、后台服务的合理调度等。使用Android Profiler工具可以帮助定位性能瓶颈,进行调优。 总的来说,"Android开发权威指南 案例源码"涵盖了...
资源管理是Android开发中不可忽视的部分。Android应用可以包含各种资源,如字符串、图片、颜色、样式等,这些资源可以通过R类引用,并且可以在不同语言和屏幕尺寸下自动适配。 AndroidManifest.xml文件是应用的配置...
同时,权限管理也是Android开发中不可忽视的部分,随着Android版本的更新,权限模型也在不断演变,开发者需要了解并适配不同的权限策略。 最后,为了确保应用程序的性能和用户体验,你需要学习如何进行性能优化,...
Android开发涉及的知识点非常广泛,主要包括操作系统的基本概念、系统架构、开发环境搭建、编程基础、界面设计、数据存储、网络通信、多媒体应用、设备硬件控制等。下面将详细介绍一些核心的知识点。 首先,Android...
### android开发新浪微博客户端完整攻略 #### 一、项目概述与准备 在当今移动互联网时代,社交媒体客户端成为人们日常生活中不可或缺的一部分。本篇文章旨在为Android初学者提供一份详尽的指南,教你如何从零开始...
首先,Android开发的基础在于对Java或Kotlin语言的理解。Java作为Android平台的传统编程语言,为开发者提供了强大的面向对象编程能力。而Kotlin,作为Google官方推荐的现代Android开发语言,以其简洁、安全和互操作...
在Android平台上进行局域网聊天应用的开发是一项有趣且实用的技术挑战。"android局域网聊天开发代码"项目,如其名所示,提供了一个类似飞秋(FeiQ)的实现,供开发者学习和研究。飞秋是一款广受欢迎的局域网即时通讯...
7. **安全性**:在Android开发中,数据安全和用户隐私保护不容忽视。手册涵盖敏感信息加密、权限控制、防止反编译等方面,提醒开发者在开发过程中考虑安全问题。 8. **持续集成与自动化**:随着项目规模的扩大,...
此外,性能优化是Android开发中不可忽视的一环。手册中会涵盖内存管理、UI流畅度、电量消耗等方面,提醒开发者避免内存泄漏,合理使用异步操作,减少不必要的计算和绘制,提高应用的运行效率。 最后,测试和版本...
此外,权限管理也是Android开发中不可忽视的一部分,随着Android系统的版本更新,权限管理机制也在不断变化,学习如何在运行时动态请求权限是现代Android开发的必备技能。 最后,书籍可能还会涵盖测试、调试技巧、...
### 阿里巴巴Android开发手册关键知识点解析 #### 一、引言 《阿里巴巴Android开发手册》旨在汇集阿里巴巴集团旗下各个Android开发团队的经验与智慧,包括但不限于淘宝、天猫、闲鱼、钉钉等知名应用程序的开发实践...
在Android开发中,以下几个关键技术是不容忽视的: 1. **环境搭建**:Android Studio是Android开发的主要集成开发环境,包含了必要的SDK工具,用于编写、调试和构建应用程序。源码中可能包含了设置项目结构、配置 ...
《Android开发_高焕堂讲义》是一份深入讲解Android应用开发的专业教程,由知名讲师高焕堂编撰。这份讲义以其清晰的思路和全面的内容,为学习者提供了宝贵的资源,帮助他们理解和掌握Android开发的核心技术。 在...
Android开发是当今移动应用开发领域中的重要组成部分,广泛应用于智能手机、平板电脑以及其他智能设备。这份“android开发必备教程.rar”压缩包包含两本电子书,分别是《深入浅出Android--Google手持设备应用程序...