Android 命令行打包和签名
使用命令行方式进行签名需要JDK中的两个命令行工具:keytool.exe和jarsigner.exe。可按如下两步对apk文件进行签名:
1.
# keytool -genkey -v -keystore key.pem -alias aliasname -keyalg RSA -validity 3000
其中androidguy-release.keystore表示要生成的密钥文件名,可以是任意合法的文件名。androidguy表示密钥的别名,后面对apk文件签名时需要用到。RSA表示密钥算法。30000表示签名的有效天数。
2.
#jarsigner -verbose -keystore key.pem test.apk aliasname
key文件需要放在当前目录,否则会找不到。
3.
编译工程中的源文件
#javac $(PROJECT_PATH)\*.java -classpath $(SDK_PATH)\platform\$(SDK_VERSION)\android.jar -d $(PROJECT_PATH)\bin\classes\
cd$(PROJECT_PATH)\bin\classes\
jar cvf test.jar *.*
cd..
dx --dex --output=classes.dex$(PROJECT_PATH)\bin\classes\aimoxiu.jar //这句命令把刚才的jar包转换成android手机能够运行的dex文件
第三步可以省略,工程编译完后,会产生一个classes.dex,不必用命令行行生成。
4.
aapt p -f -S$(PROJECT_PATH)\res -I $(SDK_PATH)\platforms\android-17\android.jar -A $(PROJECT_PATH)\assets -M AndroidManifest.xml -F test.apk
5.
aapt add test.apk classes.dex //这句命令把前面生成的classes.dex文件压缩到apk文件,最终生成可运行的apk应用程序
Android 命令行打包和签名的更多相关文章
- android 7.0 多渠道打包 - 美团开源工具Walle 命令行打包
在Android 7.0(Nougat)推出了新的应用签名方案APK Signature Scheme v2后,之前快速生成渠道包的方式(美团Android自动化之旅-生成渠道包)已经行不通了,对此美 ...
- Android系列之Android 命令行手动编译打包详解
Android 命令行手动编译打包过程图 [详细步骤]: 1使用aapt生成R.java类文件: 例: E:\androidDev\android-sdk-windows2.2\tools> ...
- Android命令行播放MP3音乐
/*************************************************************************** * Android命令行播放MP3音乐 * 说 ...
- mac下使用命令行打包出现bash gradle command not found的解决方案
命令行打包的时候出现 bash gradle command not found这个问题,主要是因为gradle环境丢失.需要重新配置gradle的环境变量. 1. gradle路径的查找 然后gra ...
- android 命令行安装apk
有两种方式可以在android模拟器或真机上使用命令行安装apk 一种是使用adb install命令,网上通常是这种方式 另一种是通过android提供的命令,pm install. 需要先进入an ...
- Android 命令行模拟按键
/***************************************************************************** * Android 命令行模拟按键 * 说 ...
- Android 命令行编译、打包生成apk文件
一.搭建搭建环境 1. 安装JDK 和 Android SDK 2. 配置环境变量 D:\android-sdk-windows\tools C:\Program Files\Java\jdk1. ...
- [原] Android自动打包之命令行打包
Android自动打包流程详细图: 总结为以下几个步骤: 1. 生成R文件 2. Java代码编译成class文件 3. class文件生成dex文件 4. 打包资源 5. 生成apk 6. 创建密匙 ...
- android 命令行签名apk文件
签名apk 1.将apk格式改为zip格式包,然后删除原来apk里面的META-INF文件夹,之后改回apk文件格式 2.cmd命令行: jarsigner -verbose -keystore C: ...
随机推荐
- 利用JDK动态代理机制实现简单拦截器
利用JDK动态代理机制实现简单的多层拦截器 首先JDK动态代理是基于接口实现的,所以我们先定义一个接口 public interface Executer { public Object execut ...
- R语言实战实现基于用户的简单的推荐系统(数量较少)
R语言实战实现基于用户的简单的推荐系统(数量较少) a<-c(1,1,1,1,2,2,2,2,3,3,3,4,4,4,5,5,5,5,6,6,7,7) b<-c(1,2,3,4,2,3,4 ...
- 关于datatable导出execl
导出主要考虑响应流的问题 curContext.Response.ContentType = "application/vnd.ms-excel"; curContext.Resp ...
- 【转】Hibernate系列学习之(二) 多对一、一对一、一对多、多对多的配置方法
hihernate一对多关联映射(单向Classes----->Student) 一对多关联映射利用了多对一关联映射原理 多对一关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是多指向 ...
- oracle jar
关于oracle 11g jdbc驱动 的jar包 (2012-11-21 11:17:41)转载▼ 标签: 杂谈 分类:java学习 oracle11的jdbc\lib下没有classer12.ja ...
- Centos下查看和修改网卡Mac地址
linux/Centos下查看网卡Mac地址,输入命令: #ifconfig -a eth0 Link encap:Ethernet HWaddr 00:e4:56:2E:D8:20 00:e4:56 ...
- IFrame实现的无刷新(仿ajax效果)...
前台代码: <iframe style="display:none;" name="gg"></iframe> <form act ...
- 使用Base SDK 6.1编译的APP在iOS7的设备上运行,NavigationBar覆盖view的解决办法
if (__IPHONE_OS_VERSION_MAX_ALLOWED <= __IPHONE_6_1) { self.navigationController.navigationBar.tr ...
- ftp命令行工具如何 连接 非标准21端口(其他端口)的ftp服务器
windows: step1:ftp命令进入ftp交互环境 step2:ftp>open ip空格port 然后...
- CentOS下yum安装PHP,配置php-fpm服务
yum list installed | grep php 先删除已有的php版本 ,执行下面的命令删除php yum remove php-common 然后像安装那样问你是否继续的,输入yes即可 ...