Android开发中Ant命令编译和APK签名的一些心得
本文章麦子学院跟小伙伴们详细的分享一下关于Android Ant命令行编译和APK签名详解一些实现方法,这是一个朋友在自己做安卓开发时写的,希望对大家会有所帮助呀。
最近在做Android开发时,需要引用第三方的代码进项目,一般情况下,直接在Eclipse下设置需要导入的代码的编译输出为library即可,但是很多代码在Eclipse下编译会出现很多莫名其妙的错误。因而只能使用命令行方式对代码进行编译。具体方法如下:
1.安装编译用的Java,安装Android Platform-tools,安装Ant,设置好各种环境变量。部分Linux下Ant已经默认集成,Windows下需要自行安装。
2.使用Android工具更新代码的编译配置。
3.使用Ant工具进行编译,可编译Debug版和Release版本。
4.生成代码签名用的私钥,并对APK进行签名。
5.对APK文件进行对齐,对大文件APK有不错的效果。
以下是参考Bash代码,可自己需要更改,执行时,sudo bash XXX.sh即可
代码如下
# Setup Java Home
JAVA_HOME = "/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home"
# Setup android Home
ANDROID_HOME="~/android-sdk-macosx"
# Setup path
PATH = "$ANDROID_HOME/tools:$JAVA_HOME/bin:$PATH"
# Update current project
android update project --path .
#android update project --path ./Library/lib1
#android update project --path ./Library/lib2
# Remove keystore
rm -f product.keystore
# Make keystone
keytool -genkey -alias product.keystore -keyalg RSA -validity 40000
-keystore product.keystore -storepass password -keypass password
-dname "CN=Product OU=Android Team O=Organization L=Hongkong ST=Hongkong C=China"
# Clean
ant clean
# Remove ant.properties
rm -f ant.properties
# Make ant.properties
echo "key.store=product.keystore" > ant.properties
echo "key.alias=product.keystore" >> ant.properties
# Build apk
ant release
# Sign APK
# jarsigner -verbose -keystore product.keystore -signedjar
# bin/product_signed.apk bin/product-release-unsigned.apk product.keystore
# Zip align apk
# zipalign -v 4 bin/product_signed.apk bin/product_final.apk
说明:
更新Android的ant编译配置,如果代码的结构发生变更,请执行,如果代码中包含引用的第三方库代码,需要分别对这些代码进行更新。
代码如下
# Update current project
android update project --path .
#android update project --path ./Library/lib1
#android update project --path ./Library/lib2
生成签名用的Keystore文件,几个参数的说明
-genkey 生成秘钥证书
-alias 别名
-keyalg 秘钥的计算算法
-validity 有效期
-keystore 秘钥库文件路径
-storepass 秘钥库密码
-keypass 秘钥证书密码
-dname 发行者信息
CN= 发行者姓名 (个人姓名或产品名)
OU= 组织单元名 (团队名)
O= 组织机构名 (公司名)
L= 城市/地区
ST= 州/省
C= 国家代码
代码如下
# Make keystone
keytool -genkey -alias product.keystore -keyalg RSA -validity 40000
-keystore product.keystore -storepass password -keypass password
-www.maiziedu.com -keypass password
-dname "CN=Product OU=Android Team O=Organization L=Hongkong ST=Hongkong C=cn"
生成ant自动编译用的ant.properties文件,设置key.store和key.alias两个变量后,ant release时会自动对生成的APK签名和对齐
代码如下
echo "key.store=product.keystore" > ant.properties
echo "key.alias=product.keystore" >> ant.properties
手动对代码签名,几个参数的说明
-verbose 显示输出
-keystore keystore别名
-signedjar 签名apk文件,第一个参数为目标文件,第二个为未签名apk
代码如下
# Sign APK
jarsigner -verbose -keystore product.keystore -signedjar bin/product_signed.apk bin/product-release-unsigned.apk product.keystore
手动对APK进行对齐
代码如下
# Zip align apk
zipalign -v 4 bin/product_signed.apk bin/product_final.apk
转载于:https://www.cnblogs.com/maiziedu/p/4113014.html
Android开发中Ant命令编译和APK签名的一些心得相关推荐
- android+命令行编译,打包生成apk文件,Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包...
默认为debug mode,使用的签名文件在: $HOME/.android/debug.keystore 比如 C:\Users\chengcj1.android\debug.keystore 1. ...
- Android开发中adb命令的常用方法
Android的SDK中提供了很多有用的工具,在开发过程中如果能熟练使用这些工具,会让我们的开发事半功倍.adb是SDK提供的一个常用的命令行工具,全称为Android Debug Bridge,用于 ...
- android换台电脑打包签名,Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包 -电脑资料...
1. 默认为debug mode,使用的签名文件在: $HOME/.android/debug.keystore 2. Release Mode 签名: build.gradle:android {s ...
- 【CMake】Android Studio 中使用 CMake 编译单个 C++ 源文件 ( 常用的 CMake 命令解析 )
文章目录 一.Android Studio 中使用 CMake 编译单个 C++ 源文件 二.cmake_minimum_required 命令设置最小 CMake 版本 三.project 命令设置 ...
- Android开发中apk开启sdcard的读写权限
在android开发中内存一般分为硬件设备自带的存储空间以及扩展存储空间(sdcard),本文只对使用Android Studio开发程序时开启sdcard的读写权限进行说明. 主要步骤分为两步 ...
- android开发中遇到的问题汇总
android开发中遇到的问题汇总(五),android汇总127.ANDROID仿IOS时间_ANDROID仿IOS弹出提示框 http://dwtedx.com/itshare_297.html1 ...
- 在android开发中使用multdex的方法-IT蓝豹为你整理
在android开发中使用multdex的方法-IT蓝豹为你整理 Android系统在安装应用时,往往需要优化Dex,而由于处理工具DexOpt对id数目的限制,导致其处理的数目不能超过65536个, ...
- Android 开发常用ADB命令集合
Android开发常用ADB命令: 1. 安装apk adb install -r apk路径(注:-r表示覆盖) 2. 启动应用 adb shell am start -n package_name ...
- android最佳开发实现_在android开发中使用可访问性最佳做法
android最佳开发实现 As you know, accessibility is about building products that everyone can use easily and ...
- Android开发中的日常积累
欢迎Star,Fork https://github.com/lizhangqu/CoreLink 里面记录了开发过程中有用的东西,欢迎补充,不定时更新. Android 性能优化 Android内存 ...
最新文章
- 年入50万,程序员众生相
- Spring MVC拦截器示例
- oracle tsn文件,无法启动OracleOraDB10g_home1TSNListener服务
- 百度贴吧排名计算方式
- jieba分词_Jieba.el – 在Emacs中使用jieba中文分词
- 容器编排技术 -- Kubernetes 为 Namespace 设置最小和最大内存限制
- 《c++ const 详细总结》--转载
- 第4章字符串的实现-勘误
- apt-get install php5-redis,Ubuntu14-04安装redis和php5-redis扩展
- nginx: [error] invalid PID number问题处理
- 微信小程序引入阿里巴巴icon步骤及报错解决
- MKVToolNix v7.4.0 正式版
- 连点4次android版本,连点器极速版下载-连点器快速版v4.0.8 安卓版 - 极光下载站...
- 游戏修改服务器数据,修改游戏服务器数据的教程
- android kindle 无效文档,URL schemes 按官方文档设置无效
- Python数据分析与挖掘实战学习12
- 揭秘APP软件开发者百万富翁之路:造程序的工厂
- 软件项目管理:教你如何做好团队管理
- AutoGAN-Distiller: Searching to Compress Generative Adversarial Networks, ICML2020
- 浅析政务OA办公系统的关键功能
热门文章
- scala数组与java数组对比
- The “QtRunWork“ task returned false but did not log an error
- 马云怒赞的93年网红区块链工程师,教你如何用3年时间实现逆袭
- 微信小程序 --- 音乐的播放和控制
- 如何估算网站日承受最大访问PV
- PL/SQL数据类型
- server 2008 R2+IIS7.5安装cacti实验
- SpringContext扩展BeanFactory
- RuntimeException
- Python: names, values, assignment and mutability