您的位置:首页 > 移动开发 > Android开发

android签名机制(2)——如何签名

2013-11-16 17:51 507 查看
apk签名有几种方式:


1.源码编译签名

源码下编译的apk,系统会默认签名.


2.命令行签名

1>添加权限

很多应用会需要提升系统用户组权限,所以要在AndroidManifest.xml文件下添加

android:sharedUserId="android.uid.system" 。

2>在Eclipse中导出无签名的应用文件

在工程中:右键->Android Tools -> Export Unsigned Application Package导出应用

3>找出系统签名密钥

系统密钥为: platform.pk8和platform.x509.pem

路径: build\target\product\security

4>找出系统签名工具

工具为:signApk.jar

路径:/out/host/linux-x86/framework/ signApk.jar



5>开始签名

将第2、3、4步找到的无签名应用、platform.pk8、platform.x509.pem和signApk.jar放到同一文件夹下如F:\sign。

打开 dos 操作界面,定们到F:\sign,输入命令:

java -jar signapk.jar platform.x509.pem platform.pk8 **.apk ***.apk

(**.apk 为未签名应用 ***.apk 为签名之后应用)

笔者实际中做的一般都是系统级应用开发,一般都用这种签名,比较方便,推荐下





3.eclipse签名

eclipse run应用调试时,在/bin/*.apk下生成eclipse默认签名的apk,使用的签名密钥位于
C:\Documents and Settings\Administrator\.android\debug.keystore.
普通应用可以安装到设备中,但如果应用要获取系统用户组时,加上了 android:sharedUserId="android.uid.system",
则此种签名的应用则无效。会提示





在后面第3篇文章里有此问题的一种解决方法
android签名机制(3)——如何***签名



注:测试时可用此种方式直接run应用调试,但是发布时切忌不可用eclipse的默认签名run出的bin/*.apk,原因:
1)eclipse的默认debug签名有效期只有1年,并且不能再android market中上架。
2)debug.keystore在不同的机器上所生成的可能都不一样,当如果此debug.keysotre由于特殊原因丢失,那之前发的应用都无法更新、替换,是非常严重的问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: