如何提交程序到Android Market
注意事项:
★所有提交到Market的程序必须经过签名。未经签名的程序不能安装。
★你可以使用个人证书去签名程序,不一定要经证书机构授权。
★用Debug版本证书签名的程序将不能发布。
★在安装程序时会检测签名证书是否过期。如果程序在安装后证书过期,程序也能正常使用。
★你可以使用keytool和Jarsigner产生密钥并签名你的程序。
★你的程序在签名后还需要使用zipalign去优化。
建议:
★用同一密钥签名所有程序,以保证程序的无缝升级。
★证书的有效期最好在25年以上。发布到Market的程序中证书有效期必须在2033年10月22日以后。
如何签名:
方法一,利用Eclipse的Android签名插件:
在 Eclipse中Package Explorer里选择要编译的工程,File->Export, 打开Android文件夹,选择Export Android Application,一步一步完成向导即可。这样程序就会编译,签名,优化,可以直接发布到Market了。
方法二,使用JDK证书工具:
1、获取合适的私有密钥
通过Keytool去产生私有密钥。Keytool在JDK/bin目录里(比如C:\Program Files\Java\jdk1.6.0_20\bin)。
┏━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┓
┃ Keytool参数 ┃ 描述 ┃
┣━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━┫
┃-genkey ┃ 生成公钥和私钥 ┃
┣━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━┫
┃-v ┃ 输出详细信息 ┃
┣━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━┫
┃-keystore <keystore-name>.keystore ┃ 生成的keystore文件名 ┃
┣━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━┫
┃-alias <alias name> ┃ 此密钥的别名。只保留前8位字符 ┃
┣━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━┫
┃-keyalg <alg> ┃ 加密算法。支持DSA和RSA ┃
┣━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━┫
┃-dname <name> ┃ 用于描述此密钥的创建者信息。如果没有提 ┃
┃ ┃ 供,Jarsigner会提示你输入这些信息 ┃
┣━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━┫
┃-validity <valdays> ┃ 密钥有效期,按天数。最好>10000 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━┛
例如:keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -validity 10000
更多关于keytool的信息:http://java.sun.com/j2se/1.5.0/docs/tooldocs/#security
2、编译Release版本程序
在release状态下程序是未经签名的。在Eclipse中导出未经签名的release版本apk文件。在Package Explorer中找到要编译的工程,右击选择Android Tools->Export Unsigned Application Package
3、用私有密钥签名
通过Jarsigner来使用私有密钥签名。
例如:jarsigner -verbose -keystore my-release-key.keystore my_application.apk alias_name
4、验证已签名程序:jarsigner -verify my_signed.apk
优化APK文件
通过zipalign来优化apk文件。Zipalign可以在Andorid SDK/tools目录下找到。
例如:zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk
your_project_name-unaligned.apk是输入,your_project_name.apk是输出。如果要覆盖已有文件,需要加上-f参数
添加版本信息
主要有两方面,一个是程序的版本号,另外一个是程序中要求的系统API版本号。二者都需要在AndroidManifest.xml中设定。
程序版本号
Android:versionCode: int类型,只能是整数。别的程序在调用时要用到,最终用户无法看到。
Android:versionName: 字符串类型。就是给最终用户看的。
程序要求的系统API版本号
Android:minSdkVersion: 要执行此程序需要的最低的系统API版本
Android:targetSdkVersion: 此程序设计时的目标系统API版本
Android:maxSdkVersion: 此程序设计时支持的最高的系统API版本
准备发布
发布前的检查列表:
在考虑发布程序之前
1. 在真实设备上进行完整的测试
2. 考虑在程序中添加最终用户许可协议
3. 在程序中添加图标和标题
4. 关闭并清理log和debug信息
在进行最后的编译之前
5. 添加版本号
6. 获取合适的密钥
7. 如果用到了Mapview元素,请注册Maps API key
在程序编译完成后
8. 对程序进行签名
9. 测试编译好的程序
发布程序到Android Market
1. 注册账号:http://market.android.com/publish
2. 在提交程序之前,必须确保程序符合Android Market 服务器的要求:
(1) 对程序签名的私有密钥有效期必须在2033年10月22日之后。
(2) 程序中必须设定了android:versionCode和android:versionName。前者用于程序的更新,后者会展示给最终用户。
(3) 在程序的manifest中必须定义了android:icon和android:label。
详细解决方案
怎么提交程序到Android Market
热度:78 发布时间:2016-05-01 16:32:48.0
相关解决方案
- android 读取byte[]中的元素解决方案
- android 标题栏兑现方式
- android 中Activity向BroadcastReceiver发送数据,该怎么解决
- Android 4.0 为什么模拟器老是提示小弟我谷歌拼音输入法已停止
- android:getSharedPreferences() 这是哪个类的方法解决思路
- android 怎么判断一个程序是否联网
- android 大量数据按周分组,该如何解决
- android RadioButton如何设置默认选中
- ksoap2-android-这个包,连接webService怎么设置超时
- android 怎么重新设置锚点
- android UI界面设计解决方案
- android 图片对象获取的有关问题
- android 怎么调用淘宝支付宝接口
- Android 沿袭InputMethodService自定义输入法
- android 关于服务连接的疑义
- android 两个activity如何通信
- android 怎么实现对view的放大和缩小
- android 教程解决方法
- android ID,该如何处理
- 准备复习2-3个月,看java+android,请问有经验者,怎么看效果最好》
- android UI线程与AsyncTask的有关问题
- android(java)中的java.net能不能和c#的system.net.sockets进行tcp通信,该如何解决
- android ListView 中的onItemClick Intent 没法跳转
- android(java) 中文乱码的有关问题
- c#c++,android,ios(iphone),php,java视屏课程 散分
- android Post文件到ASP.NET的有关问题,能收到参数收不到文件
- RIM 替 Android 开发者提供免费的 PlayBook!2月13日前
- android 动态设立控件高度
- Android test project 编译方法
- android -相机使用教程(1)解决方法