android 打包 命令行,命令行打包 Android APK
注意
安装软件包管理器
MAC 电脑
Windows 电脑
cmd.exe 中安装
PowerShell.exe 中安装
安装 JDK8
Mac os
Windows
安装 Gradle
Mac os
Windows
安装 Android SDK
Mac os
Windows
安装 androd build-tools
构建调试 APK
构建发布版本 APK
生层私钥
配置Gradle来构建应用
不使用 Gradle 配置使用命令行
构建未签名的 apk
使用 zipalign 对齐未签名的 APK
通过 apksigner 使用您的私钥为 APK 签名
验证签名
环境变量的配置
Mac
Windows
查看 APK 签名命令
注意
版本的不同,安装目录也会有所变化。
安装软件包管理器
MAC 电脑
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Windows 电脑
cmd.exe 中安装
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command " [System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
PowerShell.exe 中安装
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
安装 JDK8
Mac os
brew tap adoptopenjdk/openjdk
brew cask install adoptopenjdk8
Windows
choco install jdk8
安装 Gradle
Mac os
brew install gradle
安装路径:/usr/local/Cellar/gradle/5.0/bin
Windows
choco install gradle
安装路径:C:\ProgramData\chocolatey\lib-bkp\gradle\tools\gradle-6.3\bin
安装 Android SDK
这里会提示安装 jdk,可以跳过安装jkd。
Mac os
brew cask install android-sdk
安装路径:/usr/local/Caskroom/android-sdk
Windows
choco install android-sdk
安装路径:C:\Android\android-sdk
安装 androd build-tools
windows sdkmanager 在路径 C:\Android\android-sdk\tools\bin 中。
mac sdkmanager 在路径 /usr/local/Caskroom/android-sdk/4333796/tools 中。
sdkmanager "platforms;android-28"
或指定详细版本:
sdkmanager "build-tools;29.0.1"
Windows 安装路径:C:\Android\android-sdk\build-tools\29.0.1
Mac 安装路径: /usr/local/Caskroom/android-sdk/4333796/build-tools/29.0.1
构建调试 APK
在此之前你需要修改 local.properties 文件中的 sdk 路径。
请打开命令行,然后转到项目的根目录:
gradlew assembleDebug
将在 project_name/module_name/build/outputs/apk/ 中创建一个名为 module_name-debug.apk 的 APK。 该文件已使用调试密钥进行签名并使用 zipalign 对齐,因此您可以立即将其安装到设备上。
构建 APK 并立即在运行的模拟器或连接的设备上安装:
gradlew installDebug
构建发布版本 APK
在此之前你需要修改 local.properties 文件中的 sdk 路径。
生层私钥
keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias
生成一个名为 my-release-key.jks 的密钥库文件,并将其保存在当前目录中。
配置Gradle来构建应用
android {
...
defaultConfig { ... }
signingConfigs {
release {
// You need to specify either an absolute path or include the
// keystore file in the same directory as the build.gradle file.
storeFile file("my-release-key.jks")
storePassword "password"
keyAlias "my-alias"
keyPassword "password"
}
}
buildTypes {
release {
signingConfig signingConfigs.release
debuggable false
zipAlignEnabled true
shrinkResources true
minifyEnabled true
...
}
}
}
构建 apk:
gradlew assembleRelease
当您通过调用 Gradle 任务来构建您的应用时,Gradle 会为您的应用签名(并运行 zipalign)。
不使用 Gradle 配置使用命令行
下面使用的 zipalign apksigner 在 build-tools 目录下。
构建未签名的 apk
gradlew assembleRelease
使用 zipalign 对齐未签名的 APK
zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
zipalign 可以确保所有未压缩数据的开头均相对于文件开头执行特定的字节对齐,从而减少应用占用的 RAM 量。
通过 apksigner 使用您的私钥为 APK 签名
apksigner sign --ks my-release-key.jks --out my-app-release.apk my-app-unsigned-aligned.apk
用存储在单个密钥库文件 my-release-key.jks 中的私钥和证书为 APK 签名后,将以 my-app-release.apk 的形式输出已签名的 APK。
验证签名
apksigner verify my-app-release.apk
环境变量的配置
Mac
在 ~/.bash_profile(如果使用iterm则是~/.zshrc)文件中添加:
export ANDROID_HOME=/usr/local/Caskroom/android-sdk
export PATH=$PATH:$ANDROID_HOME/4333796/tools
export PATH=$PATH:$ANDROID_HOME/4333796/build-tools/29.0.1
export GRADLE_HOME=/usr/local/Cellar/gradle
export PATH=$GRADLE_HOME/5.0/bin
Windows
C:\Android\android-sdk\tools\bin
C:\Android\android-sdk\build-tools\29.0.1
C:\ProgramData\chocolatey\lib-bkp\gradle\tools\gradle-6.3\bin
查看 APK 签名命令
keytool -list -printcert -jarfile app-relase-.apk
android 打包 命令行,命令行打包 Android APK相关推荐
- android+命令行编译,打包生成apk文件,Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包...
默认为debug mode,使用的签名文件在: $HOME/.android/debug.keystore 比如 C:\Users\chengcj1.android\debug.keystore 1. ...
- UE4 Windows环境下游戏打包基础教程(ios, windows, android)(UFE方式以及命令行方式)
文章目录 环境 配置 一些会用到的路径 UFE打包 Windows Android IOS 命令行打包 注意事项 CMD指令 参数介绍 值得一看的参考 环境 Windows10 虚幻4.23.1 配置 ...
- android换台电脑打包签名,Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包 -电脑资料...
1. 默认为debug mode,使用的签名文件在: $HOME/.android/debug.keystore 2. Release Mode 签名: build.gradle:android {s ...
- 安卓Android系统超级终端命令行大全
Android系统超级终端命令集萃 free 1.作用 free命令用来显示内存的使用情况,使用权限是所有用户. 2.格式 free [-b|-k|-m] [-o] [-s delay] [-t] [ ...
- 转 安卓Android系统超级终端命令行大全 超详细介绍(六、七、八、九..)
2019独角兽企业重金招聘Python工程师标准>>> Android系统在超级终端下必会的命令大全(六) kill 1.作用 kill命令用来中止一个进程. 2.格式 kill [ ...
- 在命令行中通过adb shell am broadcast发送广播通知以及Android的常用adb命令
转载自:http://www.cnblogs.com/622698abc/archive/2013/06/11/3132306.html?utm_source=tuicool 通过命令行执行adb s ...
- Linux下编译build的命令,Linux命令行下编译Android NDK的示例代码
这几天琢磨写一个Android的Runtime用来加速HTML5 Canvas,让GameBuilder+CanTK 不但开发速度快,运行速度也能接近原生应用.所以花了点时间研究Android NDK ...
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )
文章目录 一.Android 命令行中获取要调试的应用进程的 PID 二.进程注入调试进程内存的 so 库 一.Android 命令行中获取要调试的应用进程的 PID 前置博客 [Android 逆向 ...
- ionic1 打包过程 常用命令行
ionic start myapp myapp是项目名字 ionic start myapp --v2 ...
最新文章
- OpenDataSource,sql开放式数据源
- 构造先存储再计算的加法器电路
- 总结2020,起航2021,奔向腾讯,实现增长!
- laravel构造器的CURD
- Redis都不懂?就别去面试了!聊聊我的Redis新专栏「视频版」
- JavaScript基础内容
- Hadoop--MapReduce_Hadoop序列化
- P5169 xtq的异或和(FWT+线性基)
- iOS 14.5新功能:解锁iPhone更方便!
- HDU2107 Founding of HDU【序列处理+最大值】
- mac os+selenium2+chrome驱动+python3
- ElasticJob分布式调度,使用注册中心zookeeper开启动态定时任务附源码(三)
- VMware Fusion for Apple silicon
- 东莞:“风暴眼”中的世界工厂
- 我学会了学计算机,我学会了电脑打字
- 测测你的IQ加分析能力
- 【计算机视觉】张正友相机标定Calibration原理过程结果
- Unity 百度智能对话API
- java 全角_java 全角半角字符转换的方法实例
- 清北学堂培训2019.4.6
热门文章
- 虚拟机内存满之后怎么删除相应的垃圾数据
- 停简单电子优惠系统_宝马320车辆停在某地遥控上锁过一段时间车身会突然报警案例...
- nodejs安装时遇到的问题
- android系统重启系统,安卓系统不停重启怎么办
- Matlab的concur、repmat、kron、reshape函数介绍
- 数字频率、模拟频率、角频率的区别
- latex参考文献bib基本格式_LaTex中引用参考文献:BibTex使用方法简介
- android firewall apk,DroFireWall
- Linux Command Memo
- 爱她,就要让她幸福!