注意

安装软件包管理器

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相关推荐

  1. android+命令行编译,打包生成apk文件,Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包...

    默认为debug mode,使用的签名文件在: $HOME/.android/debug.keystore 比如 C:\Users\chengcj1.android\debug.keystore 1. ...

  2. UE4 Windows环境下游戏打包基础教程(ios, windows, android)(UFE方式以及命令行方式)

    文章目录 环境 配置 一些会用到的路径 UFE打包 Windows Android IOS 命令行打包 注意事项 CMD指令 参数介绍 值得一看的参考 环境 Windows10 虚幻4.23.1 配置 ...

  3. android换台电脑打包签名,Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包 -电脑资料...

    1. 默认为debug mode,使用的签名文件在: $HOME/.android/debug.keystore 2. Release Mode 签名: build.gradle:android {s ...

  4. 安卓Android系统超级终端命令行大全

    Android系统超级终端命令集萃 free 1.作用 free命令用来显示内存的使用情况,使用权限是所有用户. 2.格式 free [-b|-k|-m] [-o] [-s delay] [-t] [ ...

  5. 转 安卓Android系统超级终端命令行大全 超详细介绍(六、七、八、九..)

    2019独角兽企业重金招聘Python工程师标准>>> Android系统在超级终端下必会的命令大全(六) kill 1.作用 kill命令用来中止一个进程. 2.格式 kill [ ...

  6. 在命令行中通过adb shell am broadcast发送广播通知以及Android的常用adb命令

    转载自:http://www.cnblogs.com/622698abc/archive/2013/06/11/3132306.html?utm_source=tuicool 通过命令行执行adb s ...

  7. Linux下编译build的命令,Linux命令行下编译Android NDK的示例代码

    这几天琢磨写一个Android的Runtime用来加速HTML5 Canvas,让GameBuilder+CanTK 不但开发速度快,运行速度也能接近原生应用.所以花了点时间研究Android NDK ...

  8. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )

    文章目录 一.Android 命令行中获取要调试的应用进程的 PID 二.进程注入调试进程内存的 so 库 一.Android 命令行中获取要调试的应用进程的 PID 前置博客 [Android 逆向 ...

  9. ionic1 打包过程 常用命令行

    ionic start myapp                                             myapp是项目名字 ionic start myapp --v2     ...

最新文章

  1. OpenDataSource,sql开放式数据源
  2. 构造先存储再计算的加法器电路
  3. 总结2020,起航2021,奔向腾讯,实现增长!
  4. laravel构造器的CURD
  5. Redis都不懂?就别去面试了!聊聊我的Redis新专栏「视频版」
  6. JavaScript基础内容
  7. Hadoop--MapReduce_Hadoop序列化
  8. P5169 xtq的异或和(FWT+线性基)
  9. iOS 14.5新功能:解锁iPhone更方便!
  10. HDU2107 Founding of HDU【序列处理+最大值】
  11. mac os+selenium2+chrome驱动+python3
  12. ElasticJob分布式调度,使用注册中心zookeeper开启动态定时任务附源码(三)
  13. VMware Fusion for Apple silicon
  14. 东莞:“风暴眼”中的世界工厂
  15. 我学会了学计算机,我学会了电脑打字
  16. 测测你的IQ加分析能力
  17. 【计算机视觉】张正友相机标定Calibration原理过程结果
  18. Unity 百度智能对话API
  19. java 全角_java 全角半角字符转换的方法实例
  20. 清北学堂培训2019.4.6

热门文章

  1. 虚拟机内存满之后怎么删除相应的垃圾数据
  2. 停简单电子优惠系统_宝马320车辆停在某地遥控上锁过一段时间车身会突然报警案例...
  3. nodejs安装时遇到的问题
  4. android系统重启系统,安卓系统不停重启怎么办
  5. Matlab的concur、repmat、kron、reshape函数介绍
  6. 数字频率、模拟频率、角频率的区别
  7. latex参考文献bib基本格式_LaTex中引用参考文献:BibTex使用方法简介
  8. android firewall apk,DroFireWall
  9. Linux Command Memo
  10. 爱她,就要让她幸福!