关于Android数字签名
2016-07-01 18:52
330 查看
Android通过数字签名来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定最终用户可以安装哪些应用程序。
这个数字签名由应用程序的作者完成,并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。
数字签名的两种模式
我们都知道Android系统不会安装运行任何一款未经数字签名的apk程序,无论是在模拟器上还是在实际的物理设备上。所以我们会有一个疑问,为何在日常开发过程中我没有进行任何签名的操作,程序都会在模拟器和真机上运行?下面我们来讲讲
APK程序的两种模式: 调试模式(debug mode)和发布模式(release mode)
1. 调试模式(debug mode) : 在调试模式下, ADT会自动的使用debug密钥为应用程序签名,因此我们可以直接运行程序。
debug密钥: 一个名为debug.keystore的文件
存放位置 : C:\Users\Xiaopeng\.android\debug.keystore Xiaopeng对应替换为自己操作系统的用户名
两个风险:
debug签名的应用程序有这样两个风险:
1)debug签名的应用程序不能在Android Market上架销售,它会强制你使用自己的签名;
2)debug.keystore在不同的机器上所生成的可能都不一样,就意味着如果你换了机器进行apk版本升级,那么将会出现上面那种程序不能覆盖安装的问题。
不要小视这个问题,如果你开发的程序只有你自己使用,当然无所谓,卸载再安装就可以了。但要是你的软件有很多使用客户,这就是大问题了,就相当于软件不具备升级功能!
所以一定要有自己的数字证书来签名;
2. 发布模式(release mode) : 当要发布程序时,开发者就需要使用自己的数字证书给apk包签名
使用自己的数字证书给APK签名的两种方法:
(1)通过DOS命令来对APK签名。
(2)使用ADT Export Wizard进行签名
注意:
这个数字签名由应用程序的作者完成,并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。
数字签名的两种模式
我们都知道Android系统不会安装运行任何一款未经数字签名的apk程序,无论是在模拟器上还是在实际的物理设备上。所以我们会有一个疑问,为何在日常开发过程中我没有进行任何签名的操作,程序都会在模拟器和真机上运行?下面我们来讲讲
APK程序的两种模式: 调试模式(debug mode)和发布模式(release mode)
1. 调试模式(debug mode) : 在调试模式下, ADT会自动的使用debug密钥为应用程序签名,因此我们可以直接运行程序。
debug密钥: 一个名为debug.keystore的文件
存放位置 : C:\Users\Xiaopeng\.android\debug.keystore Xiaopeng对应替换为自己操作系统的用户名
两个风险:
debug签名的应用程序有这样两个风险:
1)debug签名的应用程序不能在Android Market上架销售,它会强制你使用自己的签名;
2)debug.keystore在不同的机器上所生成的可能都不一样,就意味着如果你换了机器进行apk版本升级,那么将会出现上面那种程序不能覆盖安装的问题。
不要小视这个问题,如果你开发的程序只有你自己使用,当然无所谓,卸载再安装就可以了。但要是你的软件有很多使用客户,这就是大问题了,就相当于软件不具备升级功能!
所以一定要有自己的数字证书来签名;
2. 发布模式(release mode) : 当要发布程序时,开发者就需要使用自己的数字证书给apk包签名
使用自己的数字证书给APK签名的两种方法:
(1)通过DOS命令来对APK签名。
(2)使用ADT Export Wizard进行签名
注意:
发布一个Android程序必须要使用一个合适的私钥生成的数字证书来给程序签名,而不能使用adt插件或者ant工具生成的调试证书来发布。
相关文章推荐
- ndk编译android的lame库
- android登录注册关于判断账号密码为空时不崩溃
- Android 应用开发的耗电量控制
- android 中如何限制 EditText 最大输入字符数
- [置顶] Android开发之反射与注解
- 【Android---项目中】TextView设置字体样式及粗细
- android源码中&运算符的妙用
- 在Android Studio进行“简单配置”单元测试(Android Junit)
- Android java传递int类型数据给C
- android xml布局文件中使用RelativeLayout,明明有这个id,却提示找不到---->解决办法
- Android - Bmob 读取存储数据
- android xml布局文件中使用RelativeLayout,明明有这个id,却提示找不到---->解决办法
- Android 的 Notification 使用总结
- Android开发笔记——图片缓存、手势及OOM分析
- Android编译系统详解(三)
- android recyclerView Binary XML file line #7: Error inflating class android.support.v7.widget.Recycl
- Android Crush之Native Crush分析
- Android编译系统详解(二)
- Suggestion: add 'tools:replace="android:icon"' to element
- android-----事件分发机制测试系列(四)