ApkTool动态打包
引言:
APK在推广的时候可能会须要动态打包APK。比方公布到不同渠道的时候,须要在manifest文件里改动渠道信息。或者app在推广的时候。须要在apk包里面加上推广人信息等。
环境变量:
步骤:
- 下载Apk Tool工具包
最新版本号下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads
- 解包
将须要解压的apk文件(test.apk)、apktool.jar、apk相应的keystore(test.keystore)放到同一个目录下。然后cd到这个目录
输入解压命令:
java -jar apktool.jar d -f -s test.apk
运行命令后,你会发如今当前目录下生产一个test的目录。在此时你能够改动manifest配置文件,或者向raw、assets目录中加入一些文件
- 打包
运行完上面操作后,你须要又一次打包。输入以下的命令:
java -jar apktool.jar b test
运行完上面的操作后,生成的未签名的apk文件在 ./test/dist/ 文件夹下
- 签名
将 ./test/dist/ 文件夹下的apk文件签名。參考命令例如以下:
jarsigner -digestalg SHA1 -sigalg MD5withRSA -verbose -keystore test.keysotore -storepass keystore_password -keypass keypass_passworld -signedjar test_s.apk ./test/dist/test.apk test.alias
上面的签名參数仅供參考。你可能须要针对不同的情况做稍许的改变。
总结:
以上仅仅是一种打包方式,个人认为是比較快的一种方式。
ApkTool动态打包的更多相关文章
- libgdx学习记录19——图片动态打包PixmapPacker
libgdx中,opengl 1.x要求图片长宽必须为2的整次幂,一般有如下解决方法 1. 将opengl 1.x改为opengl 2.0.(libgdx 1.0版本后不支持1.x,当然不存在这个问题 ...
- vue+webpack多个项目共用组件动态打包单个项目
原文复制:https://www.jianshu.com/p/fa19a07b1496 修改了一些东西,因为sh脚本不能再window电脑执行,所以改成了node脚本.这是基于vue-cli2.0配置 ...
- apktool动态破解apk
那么今天我们就用另外一种方式来破解apk:动态方式,关于动态方式其实很广义的,因为动态方式相对于静态方式来说,难度大一点,但是他比静态方式高效点,能够针对更过的破解范围.当然动态方式很多,所以这里就分 ...
- 【转】Maven实战(三)---插件动态打包
原博文出于:http://blog.csdn.net/liutengteng130/article/details/41622013 感谢! maven把项目的构建划分为不同的生命周期(life ...
- maven的动态打包功能
对于maven而言,打包是其一个非常重要的功能,不仅仅是简单的编译打包的概念,其还通过各种插件支持各种灵活的打包策略.现举一个例子讲解如何动态实现一个web项目的打包: 需求: 现需要对一个web项目 ...
- SpringBoot 动态打包
配置pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...
- apktool重新打包错误
E:\apktool-install-windows-r05-ibot\apktool-install-windows-r05-ibot\.\test_apk_name\res\layout-larg ...
- Eclipse+APKTool动态调试APK
1. 所需工具 Eclipse. Apktool v2.0.6. 安卓SDK工具. 2. 重编译APK apktool d -d -o test test.apk 此时当前test目录下就是apkto ...
- idea maven 动态打包指定环境
jar pom.xml <!-- 指定文件id --> <profiles> <profile> <id>alpha</id> <pr ...
随机推荐
- Java免费开源数据库、Java嵌入式数据库、Java内存数据库
Java免费开源数据库.Java嵌入式数据库.Java内存数据库 http://blog.csdn.net/leiyinsu/article/details/8597680
- 如何让Activiti-Explorer使用sql server数据库
从官网下载的Activiti-explorer的war文件内部默认是使用h2内存数据库的,如果想改用其他的数据库来做持久化,比如sql server,需要做如下配置. 1)修改db.propertie ...
- easyui源码翻译1.32--Form(表单)
前言 使用$.fn.form.defaults重写默认值对象下载该插件翻译源码 form提供了各种方法来操作执行表单字段,比如:ajax提交, load, clear等等.当提交表单的时候可以调用va ...
- 【DataStructure In Python】Python模拟二叉树
使用Python模拟二叉树的基本操作,感觉写起来很别扭.最近做编译的优化,觉得拓扑排序这种东西比较强多.近期刷ACM,发现STL不会用实在太伤了.决定花点儿时间学习一下STL.Boost其实也很强大. ...
- Github是什么?看完你就了解一些了
要了解Github,我们首先要知道Git,Git是管理代码的工具,写代码不是件轻松的事儿,一个人写的时候已经不轻松了,一群人写就更不轻松了,但这世界上很多事都是怎么不轻松怎么来的,大部分人都会和别人一 ...
- Linux -- Ubuntu搭建java开发环境
Steps 1 Check to see if your Ubuntu Linux operating system architecture is 32-bit or 64-bit, open up ...
- BZOJ1334: [Baltic2008]Elect
1334: [Baltic2008]Elect Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 386 Solved: 201[Submit][Sta ...
- AHOI2009最小割
1797: [Ahoi2009]Mincut 最小割 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1072 Solved: 446[Submit] ...
- isIOS9
function isIOS9() { //获取固件版本 var getOsv = function () { var reg = /OS ((\d+_?){2,3})\s/; if (navigat ...
- InstallShield 一些事件说明
InstallShield 一些事件说明,和常量代码 大家可以把所有事件都点出来然后单步追踪就行了,我的经验是一般是从OnShowUI第一次显示UI界面开始,很容易就找到大家想处理的事件,另贴几个我发 ...