Android应用签名打包

自学Android应用开发也有半年多了,其间也写了很多具有一定功能的小Demo。最近想把自己写的一些功能比较完善的应用放到应用市场上,也算是对自己这半年来学习的一次小总结。

问题来了,之前一直都是用自己手机做的测试,应用证书也是用的eclipse自动生成的调试证书,如何生成自己的证书呢,网上查了相关资料后,记下来,供大家参考。

首先,签名的作用是什么?

说白了就相当于开发者的数字身份证,即使两个应用包名和类名都一样,Android系统仍可以通过签名的不同来区分两个不同的应用。

数字签名的特点

  • 所有的应用都是有签名的,没有不存在签名的应用,即使是你的直接用eclipse生成的应用,也是被打了一个调试证书的应用;
  • 证书不需要权威机构认证,任何开发者都可以自己生成证书;
  • 我们测试应用时,eclipse会自动为应用打上一个调试证书;
  • 每个证书都是有期限的,但是只有在应用安装时才会检查证书期限;
  • 正式发布应用时,不能使用调试证书,必须用自己的私钥给应用生成一个合适的数字证书。

数字签名生成的方法:

一、使用eclipse自带的工具生成证书和签名APK

  1. 右键你需要打包的项目—〉Android Tools—〉Export Signed Application Package(Export Unsigned Application Package生成的是未签名APK)
  2. 点击下一步
  3. 选择使用已有的证书或者新生一个证书
  4. 把该填的信息填上,最后设置生成APK文件的位置,点击确定后,经过签名的APK文件就生成了

二、使用JDK自带工具利用命令行生成证书

JDK自带两个证书生成工具keytool和jarsigner,这两个工具在JDK安装目录下

keytool 是个密钥和证书管理工具。jarsigner 工具利用密钥仓库中的信息来产生或校验 Java 存档 (JAR) 文件的数字签名

下面是命令行:

  1. keytool -genkey -keystore keystorename.keystore -keyalg RSA -validity 1000 -alias keystorename.keystore 回车
  2. Enter keystore password:输入你的密码   回车
  3. Re-enter new password:重复密码  回车
  4. What is your first and last name?  输入名字  回车
  5. What is the name of your organizational unit? 输入你的组织单位的名字  回车
  6. What is the name of your organization? 输入组织名称  回车
  7. What is the name of your City or Locality? 输入你所在城市的名字  回车
  8. What is the name of your State or Province? 输入你所在省份的名字  回车
  9. What is the two-letter country code for this unit? 输入国家的两字母代码(中国是CN)
  10. 确认信息:Y代表是,N代表否
  11. 最后再确认密码两遍,回车,证书就生成了

参数说明:

    -genkey    产生证书文件 
    -keystore  指定密钥库的.keystore文件中 
    -keyalg     指定密钥的算法

    -validity    为证书有效天数,这里我们写的是1000天。  
    -alias       产生别名   

特别注意:

  1. 在输入密码时没有回显,只管输入就可以了,密码长度必须大于6位,切忌需要记下来后面还要用;
  2. CN(Common Name - 名字与姓氏):其实这个“名字与姓氏”应该是域名,比如说localhost或是blog.devep.net之类的。输成了姓名,和真正运行的时候域名不符,会出问题。浏览器访问时,弹出一个对话框,提示“安全证书上的名称无效,或者与站点名称不匹配”,用户选择继续还是可以浏览网页。但是用http client写程序访问的时候,会抛出类似于“javax.servlet.ServletException: HTTPS hostname wrong: should be ”的异常。
  3. 在用keytool生成数字证书时必须保证:-keystore androidapp.keystore -alias androidapp.keystore 两者名称必须相同。否则下一步签名时会出现错误:jarsigner: 找不到 androidapp.keystore 的证书链。androidapp.keystore 必须引用包含专用密钥和相应的公共密钥证书链的有效密钥库密钥条目。

三、用命令行为APK文件签名

 首先,你必须先有一个未签名的APK和数字证书,未签名APK文件和证书生成方法上面已经介绍过,下面开始:

jarsigner -verbose -keystore my.keystore -signedjar Application_unsigned.apk Application_signed.apk my.keystore  回车

输入密钥口令

等待信息输出完成,在项目应目录下就能看到已签名的安装包了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像识别技术在病虫害检测应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统,可以是移动应用、网页服务或集成到智能农业设备。 7. **实时监测**:在实际应用,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测应用将越来越广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值