需求
要求
①通过java代码实现apk的生成。
②根据用户要求,修改Android项目的MainActivity.java,再打包生成apk。
③项目部署到服务器上,服务器用的是CentOS。
解决思路
思路
①准备一个批处理文件(.sh文件),文件中书写打包apk的相关命令。
②编写一段java程序,用于调用该批处理文件。
③批处理文件执行后,调用gradle,对Android 项目进行打包。
(至于修改MainActivity.java,我的做法:创建一个新的MainActivity.java文件,再写入用户的相关数据,保存文件即可。)
环境准备
服务器上配置好相关环境,需要有Gradle、Android项目、批处理文件等,JDK必须是1.8及以上的版本。
以下是各部分的介绍。
Gradle
需要在服务器上配置Gradle,使之成为全局变量。
具体可参考本人的博客
Linux下安装配置Gradle
Android 项目
将该项目打包成apk
批处理文件
在文件中填写相关打包命令。
命令分3个部分
①进入到Android项目所在目录,如cd /mnt/Android/Demo
②清除上次的打包结果,如gradle clean
③打包命令,如gradle assembleDebug。这部分必须有。
综上所述,可得到以下命令
cd /mnt/Android/Demo && gradle clean && gradle assembleDebug
JDK
JDK必须是1.8及以上。用低版本的去调用批处理文件,会报错。
补充
生成Apk的相关命令
生成1个debug版本的apk
gradle assembleDebug
生成1个release版本的apk
gradle assembleRelease
生成1个debug版本的apk和1个release版本的apk
gradle assemble
建议从实际出发,只生成一个需要的apk版本,减少等待时间。
Android Studio
抛去上述的环境准备,可以直接安装一个Android Studio。
在Android Studio上新建一个项目,
然后在Android Studio的Terminal中输入上文提到的打包命令,查看打包效果。
如此一来,只要稍微配置下Gradle即可。
这里可能涉及到无图形界面的Linux系统,如CentOS,如何安装Android Studio。
我的方法是先安一个桌面(如GNOME),通过桌面去安装Android Studio。
具体可参考本人的博客
CentOS下载安装GNOME
想要release且签名的apk
gradle assembleRelease用于生成Release版本的apk。
但在未经过任何配置的情况下,生成的是没有签名的apk,即app-release-unsigned.apk。
那么如何生成一个release且签名的apk呢?
可参考本人的博客
Gradle命令生成签名的apk
至于其中的秘钥文件,可参考本人以下博客的第7点
查看文本的第七点