Android多渠道打包工具:apptools

下载地址:https://github.com/wubo/apptools



支持跨平台、命令行、多渠道、平均6秒打一个包

  1. 多种打包方式

    添加assets打包方式 解决360等加固不能再打包问题

    使用java -cp命令可选择打包方式

    java -cp apptools.jar com.leo.app.Main(AndroidManifest打包方式)

    java -cp apptools.jar com.leo.app.CMain(assets打包方式)

    java -jar apptools.jar 默认assets打包方式

  2. 环境要求

    • Java SDK
    • Android SDK
    3.打包流程 ======== 1.设置当前process 的环境变量,保证 apktool 可以正常工作
    2.执行 apktool d --no-src -f xxxx.apk temp 拆解apk
    3.替换 AndroidManifest.xml 中的 channelFlag字符为指定渠道
    4.执行 apktool b temp unsigned.apk 重新打包apk
    5.执行 jarsigner 生成签名后的 apk 文件
    6.执行 zipAlign 生成对齐优化后的 apk 文件
    7.回到 3 替换新的渠道
    8.完成打包

4.工程目录结构

源码:

├apktool

  ├src

  ├bin

  ├.classpath

  ├.project

  ├linux

  ├macosx

  ├windows

  ├map.properties

命令行:

├pro java -jar apptools.jar

  ├apptools.jar

  ├linux

  ├macosx

  ├windows

  ├map.properties

5.使用教程

1.配置map.properties

2.更改自己要打包项目的AndroidManifest.xml(可参考apps demo)中的渠道号字符替换为map.properties中配置的channelFlag
指定字符 打好包后放到map.properties配置的指定路径

3.执行命令行:java -jar apptools.jar 或者 java -jar apptools.jar google,baidu,yyh

6.注意事项

1.如果您的电脑以前使用过apktool工具请删除工具生成老的framework.jar 路径(windows平台):
c:\Documents and Settings\%current user%\apktool\framework*

2.请尽量避免java与android环境变量存在空格

3.不支持jar包中包含有资源文件的apk项目,受apktool工具本身功能限制(如有jar包源码,可尝试把源码建立成Android项目,把资源放进assets以Android方式加载打包成jar. android模式的jar中有assets资源,打包时会自动把assets合并进项目)

4.如出现aapt命令问题,请解决环境变量入径问题 如:Android SDK Tools 版本为22时需在Android SDK Manager中安装Android SDK Build-tools 然后添加路径%ANDROID_SDK_HOME%\build-tools\17.0.0;到Path

2020年,一文点破跨平台开发框架现状

多年来,跨平台移动开发已经获得了最流行软件开发趋势之一的声誉。这并不令人意外,因为采用跨平台开发技术使得软件工程师使用同一代码就能为不同平台构建应用程序,从而节省时间、金钱以及不必要的工作。

发布于:2天以前  |  33次阅读  |  详细内容 »

unicode编码在Android中的应用

Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。

发布于:1月以前  |  201次阅读  |  详细内容 »

Android动态权限详解

很多App在首次启动时一通弹窗,申请各式各样的权限。后来苹果为改善用户体验,在App Store审核时要求App必须在使用前一刻才能申请权限,有效改善了此类问题。比如一款直播App,当你启动App时并不需要相机、录音权限,等到你开播时才需要申请这两个权限。这一场景,其实就类似今天要提到的Android动态授权。

发布于:1月以前  |  214次阅读  |  详细内容 »

百度App网络深度优化系列《三》弱网优化

网络优化解决的核心问题有三个,第一是安全问题,我们在系列《一》DNS优化进行了详细的讲解。第二是速度问题,我们在系列《二》连接优化也做了详细的介绍。第三是弱网问题,它是网络优化中最为复杂且需要反复验证和分析的问题,我们的系列《三》弱网优化就是要深入探讨这个问题。

发布于:1月以前  |  233次阅读  |  详细内容 »

百度App网络深度优化系列《二》连接优化

在系列《一》里大家了解到网络优化一般会首选优化DNS,而接下来的HTTP协议成为优化的重点,一般优化者会选择协议切换,合并请求,精简数据包大小等手段来对HTTP协议进行优化,严谨的说这都不属于网络优化的范畴。

发布于:1月以前  |  219次阅读  |  详细内容 »

百度App网络深度优化系列《一》DNS优化

网络优化是客户端几大技术方向中公认的一个深度领域,所以百度App给大家带来网络深度优化系列文章,其中包含系列《一》DNS优化,系列《二》连接优化,系列《三》弱网优化,希望对大家在网络方向的学习和实践有所帮助。

发布于:1月以前  |  250次阅读  |  详细内容 »

最多阅读

简化Android的UI开发 6月以前  |  164800次阅读
Google Enjarify:可代替dex2jar的dex反编译 1年以前  |  2140次阅读
Android设计与开发工作流 6月以前  |  2081次阅读
Android多渠道打包工具:apptools 1年以前  |  1842次阅读
Android权限 - 第一篇 1年以前  |  1816次阅读
Google Java编程风格规范(中文版) 1年以前  |  1786次阅读
Stetho 1年以前  |  1725次阅读
Android UI基本技术点 1年以前  |  1707次阅读
30分钟搭建一个android的私有Maven仓库 1年以前  |  1626次阅读
2015 Google IO带来的新 Android 开发工具 1年以前  |  1619次阅读
你应该知道的布局和属性 1年以前  |  1571次阅读
Gradle小知识#3:任务的顺序 1年以前  |  1561次阅读
听FackBook工程师讲*Custom ViewGroups* 1年以前  |  1561次阅读
MVP在Android平台上的应用 1年以前  |  1550次阅读