android apk 签名

来源:互联网 发布:哈根纽翠斯 知乎 编辑:程序博客网 时间:2024/05/21 14:46

1. 通过java自带的keytool工具,创建release版的keystore
Java代码 复制代码
  1. keytool -genkey -v -keystore keystore_name.keystore    
  2. -alias alias_name -keyalg RSA -validity 10000  
[java] view plaincopyprint?
  1. keytool -genkey -v -keystore keystore_name.keystore   
  2. -alias alias_name -keyalg RSA -validity 10000  



keystore_name.keystore:要创建的release版keystore的文件名
alias_name:别名?取个好记点的名字吧,后面还要用到的
-keyalg RSA:通过RSA算法生成
-validity 10000:有效期,单位是天

如果java环境配置正常,输入命令后会出现下列信息
Enter keystore password:(keystore的密码)
Re-enter new password:(确认keystore的密码)
What is your first and last name?
  [Unknown]:  (姓名,用自己喜欢的名字吧,不知道会显示在哪里)
What is the name of your organizational unit?
  [Unknown]:  (组织单位)
What is the name of your organization?
  [Unknown]:  (组织,不知道和上面那个有什么区别)
What is the name of your City or Locality?
  [Unknown]:  (城市)
What is the name of your State or Province?
  [Unknown]:  (州,省,县)
What is the two-letter country code for this unit?
  [Unknown]:  CN
Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN correct?
  [no]:  yes (确认输入的信息)

Generating 1,024 bit RSA key pair and self-signed certificate (SHA1withRSA) with
a validity of 10,000 days
        for: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN
Enter key password for <alias_name>
        (RETURN if same as keystore password):(alias的密码,如果和keytore密码一致,直接回车)
Re-enter new password:(确认alias的密码)
[Storing my-release-key.keystore]

2. 创建release版的apk文件
在Eclipse中,右键要发布的项目,依次选择Android Tool -> Export Signed Application Package...
然后就是step-by-step了,选择刚才生成的release版keystore,输入密码,选择alias,输入alias密码,生成release版的apk。


网上说经过以上操作,会取消log输出,测试发现还有log输出;

解决方法:这个跟android没有关系。java 虚拟器本身的问题。 java和c++不同没有预处理和micro,所以debug和release的编译时无法改变log逻辑。

所以只能用如下做法(这个我倒是在java项目中常用,总以为android有framework上的优越机制:))

final static boolean DEBUG_LOG = false;

if(DEBUG_LOG)
{
    Log.i("..............");
}

因为编译器本身有优化,所以在DEBUG_LOG=true时, if代码段将会忽略不会编译。


0 0
原创粉丝点击