返回顶部
首页 > 资讯 > 精选 >android中如何实现二次打包完成apk多渠道打包的方法
  • 867
分享到

android中如何实现二次打包完成apk多渠道打包的方法

android 2023-05-30 18:05:36 867人浏览 八月长安
摘要

这篇文章将为大家详细讲解有关Android中如何实现二次打包完成apk多渠道打包的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。此打包方式一个渠道包只需要5秒左右,可实现快速打渠道包对于为了在asse

这篇文章将为大家详细讲解有关Android中如何实现二次打包完成apk多渠道打包的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

此打包方式一个渠道包只需要5秒左右,可实现快速打渠道包

对于为了在assets获取渠道号来打渠道包的方法,其实很简单,你只要知道apk里面装的什么东西,就会了

将apk用压缩方式解压,你会得到像

android中如何实现二次打包完成apk多渠道打包的方法

这样的文件列表,其中就有assets文件夹;当然前提条件是你在项目中必须创建assets文件夹。既然有了这个文件夹,安卓里面又能通过代码获取这个文件夹里面的文件,并读取文件:

  private static String getChannel(Context context){    try {      InputStream in = context.getAssets().open("qudao.txt");      int size = in.available();      byte[] buffer = new byte[size];      in.read(buffer);      in.close();      String txt = new String(buffer, "utf-8");      Log.d("qudaobiaoji:",txt);      return txt;    } catch (ioException e) {      e.printStackTrace();    }    return "未知";  }

那么接下来就只需要通过修改里面的文件,并重新打包,签名来打渠道包了。

如何修改里面的文件,并打包签名,我特地写了一个打包工具,通过java工程生成jar,通过命令行运行jar读取配置文件然后生成打包脚本,自动运行脚本进行打包

介绍

在java工程中的入口是

main函数,

 public static void main(String[] args) {}

以前一直不知道args是干嘛的,后来通过命令行传入参数,才知道args可以带入命令行的参数

1.读取配置文件:

通过文件的方式传入要打的渠道包,及渠道包的名字,渠道号

读文件操作很简单,就是通过流的形式,不多介绍,可以自行阅读源码

文件配置:

app_path=app-release_aligned_signed.apk;keystore=ej_v3.jks;keyAlias=ej_v3;keyPassWord=123456;storePassword=123456;contents=优亿,魅族;apkname=youyi,meizu;

2.解压apk文件

  1. 通过java代码将apk解压出来、

  2. 通过ZipFile来解压文件

  3. 解压完后删除签名文件

3.替换渠道号文件

获取解压后的assets路径,并修改里面的渠道文件内容,

//------修改内容        String content = contents[i];        String apkn = apkNames[i];        buffer.setLength(0);        String path = buffer            .append(prefixName).append(ZipUtil.UPDATE_PATH_NAME).toString();        System.out.println("path:"+path);        br = new BufferedReader(new InputStreamReader(new FileInputStream(path),"UTF-8"));        while ((br.readLine()) != null) {          osw = new OutputStreamWriter(new FileOutputStream(path),"UTF-8");          osw.write(content, 0, content.length());          osw.flush();        }

4.重新压缩生成.apk文件,此文件是未签名文件

ZipUtil.compress(prefixName,targetPath+"\\"+unsing+"\\"+apkn+"_unsin.apk");

5.生成签名脚本内容

复制代码 代码如下:


batStr+="jarsigner -verbose -keystore "+keystore+" -signedjar "+targetPath+"\\"+sing+"\\"+apkn+"_sin.apk "+targetPath+"\\"+unsing+"\\"+apkn+"_unsin.apk"+" "+keyAlias+"\n";

运行签名脚本

  public static void runbat(String batName) {    String cmd = "cmd /c start "+ batName;// pass    try {      Process ps = Runtime.getRuntime().exec(cmd);      ps.waitFor();    } catch (IOException ioe) {      ioe.printStackTrace();    }    catch (InterruptedException e) {      // TODO Auto-generated catch block      e.printStackTrace();    }    System.out.println("child thread donn");  }

关于“android中如何实现二次打包完成apk多渠道打包的方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: android中如何实现二次打包完成apk多渠道打包的方法

本文链接: https://lsjlt.com/news/220385.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • android中如何实现二次打包完成apk多渠道打包的方法
    这篇文章将为大家详细讲解有关android中如何实现二次打包完成apk多渠道打包的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。此打包方式一个渠道包只需要5秒左右,可实现快速打渠道包对于为了在asse...
    99+
    2023-05-30
    android
  • Android 开发--多渠道打包实现
    文章目录背景多渠道是什么为什么要做多渠道打包多渠道打包原理怎么实现渠道信息的统计打包实现清单配置文件添加 meta-data 标签密钥生成签名配置创建风味维度与 Product 风味风味配置项的一些优化使用 gradle 的build ta...
    99+
    2022-06-06
    多渠道打包 Android
  • Android多渠道打包时获取当前渠道的方法
    作为Android app,发布多个分发平台是常规操作。然后,有时由于个渠道面对的用户不同,或平台审核标准不同,需要在各渠道使用不同的业务逻辑,这就需要根据渠道使用选择差异化代...
    99+
    2022-06-06
    方法 Android
  • Android 通过productFlavors实现多渠道打包方法示例
    目录正文创建productFlavors渠道包参数配置正文 在日常开发中,可能会遇到同一份代码,需要根据运营需求打出不同包名、不同图标、不同名称的Apk,发布到不同的渠道中。And...
    99+
    2023-02-12
    Android productFlavors多渠道打包 Android productFlavors
  • Android中怎么实现多渠道打包功能
    这期内容当中小编将会给大家带来有关Android中怎么实现多渠道打包功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.生成签名文件点击 Build -> Generate Signed APK:...
    99+
    2023-05-30
    android
  • Android使用Walle实现多渠道打包功能的实现示例
    目录介绍使用对应的属性:可使用以下变量:介绍 Walle(瓦力)是Android Signature V2 Scheme签名下的新一代渠道包打包神器。 瓦力通过在Apk中的APK S...
    99+
    2024-04-02
  • Android编程实现webview将网页打包成apk的方法
    本文实例讲述了Android编程实现webview将网页打包成apk的方法。分享给大家供大家参考,具体如下:功能非常简单,而且乍一看没什么特别大的用处,因为实际上就是浏览器而已。。。但如果说网页一开始就是针对手机开发的呢?是不是可以将and...
    99+
    2023-05-30
    android webview apk
  • AndroidStudio Gradle基于友盟的多渠道打包方法
    AndroidStudio由于使用了gradle的进行项目构建,使我们开发app方便很多,今天我就给大家列出几点是用gradle的方便之处。一、AndroidStudio Gradle第三依赖统一管理二、AndroidStudio Grad...
    99+
    2023-05-30
    多渠道打包 gr roi
  • 史上最方便的Android多渠道打包方式--CV就行
    找到项目中的build.gradle 找到位置CV就行 apply plugin: 'com.android.application' def releaseTime() ...
    99+
    2022-06-06
    Android
  • 怎么在Android中利用Walle实现一个多渠道打包功能
    怎么在Android中利用Walle实现一个多渠道打包功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Android是什么Android是一种基于Linux内核的自由及开...
    99+
    2023-06-14
  • Android 7.0中新签名对多渠道打包的影响详解
    老签名多渠道打包原理 前言 由于Android7.0发布了新的签名机制,加强了签名的加固,导致在新的签名机制下无法通过美团式的方式再继续打多渠道包了。不过在说新的签名机制对打...
    99+
    2022-06-06
    多渠道打包 Android
  • Android Studio 超级简单的打包生成apk的方法
    本文介绍了Android Studio 超级简单的打包生成apk,分享给大家,也给自己留个笔记。为什么要打包:apk文件就是一个包,打包就是要生成apk文件,有了apk别人才能安装使用。打包分debug版和release包,通常所说的打包指...
    99+
    2023-05-30
    android studio apk
  • html5游戏移植到android并打包成apk的方法
    这篇文章主要介绍“html5游戏移植到android并打包成apk的方法”,在日常操作中,相信很多人在html5游戏移植到android并打包成apk的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用...
    99+
    2024-04-02
  • IDEA集成Docker实现打包的方法
    目录步骤1:修改docker服务配置文件步骤2:IDEA工具配置连接Docker步骤3:使用 docker-maven-plugin插件 ,实现自动化部署步骤4:打包自动化,自动化部...
    99+
    2024-04-02
  • java使用main方法如何实现打包成jar
    java使用main方法如何实现打包成jar?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。java打包成jarjar -cvf [jar包的名字] [需要打包的文件]...
    99+
    2023-05-31
    java jar main方法
  • webpack3.X中如何实现多页面打包
    这篇文章将为大家详细讲解有关webpack3.X中如何实现多页面打包,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。单页面打包我们知道要打包单页面的方法,很简单,配置入口,...
    99+
    2024-04-02
  • Python二维码生成器,如何实现响应式打包?
    Python作为一种高效、易学且免费的编程语言,已经成为了人们日常工作中不可或缺的一部分。而随着二维码的应用越来越广泛,开发一个Python二维码生成器也成为了很多人的需求。在这篇文章中,我们将会介绍如何实现一个响应式打包的Python二...
    99+
    2023-08-13
    二维码 响应 打包
  • Webpack实现多页面打包的方法步骤
    目录1. 多页面应用(MPA)概念2. 多页面打包基本思路3. 多页面打包通用方案4. 多页面打包实现1. 多页面应用(MPA)概念 单页面在开发时会把所有的业务放在一个大的入口里面...
    99+
    2023-01-09
    Webpack 多页面打包 webpack打包多页面
  • Java实现多文件压缩打包的方法
    本文实例讲述了Java实现多文件压缩打包的方法。分享给大家供大家参考,具体如下:package com.biao.test;import java.io.File;import java.io.FileInputStream;import ...
    99+
    2023-05-31
    java 文件 压缩
  • Android APK 签名打包原理分析(三)【静默安装的实现方案】
    背景 小编目前从事的系统定制类工作,有客户提出了,需要后台“静默安装”他们的app,也就是悄无声息的安装,而且特别强调,不可以跳出任何安装引导页面,他们的app下载完成之后,后台调用公开的androi...
    99+
    2023-09-06
    android java 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作