java服务器动态打包apk 代码,可以动态吧一些数据写入raw文件里面,然后,自动使用签名,打包代码为可以安装的apk包

使用这种方式可以 很好实现 用户推广包的制作

public static void getAppUrl(Long uid1, long uid2, long uid3,long uid4,long uid5,
   DaoBaoOnErrorListener listener) throws IOException {    //uid1.。。。推广用户的id号。
  OutputStreamWriter osw = null;
  Process process = null;
  try {
   String path = "D:\\Java\\apktool\\apktool";   //apktool的路径
   String appPath = "D:\\myeclipse_workplace\\.metadata\\.me_tcat7\\webapps\\MyMoney\\apk\\";  //需要打包的apk的地址
   File file = new File(path);

process = Runtime.getRuntime().exec(
     "cmd.exe /c apktool d " + appPath + "app.apk " + appPath
       + "app", null, file);  //这个命令,先解压apk包
   if (process.waitFor() != 0) {
    // listener.onErrorListener("解压失败");
   }
   String targetPath = appPath + "\\app\\res\\raw\\id.txt";   //解压后的raw下面的文本文件路径,我们把id写里面,apk安装后,从里面取出,写入服务器,用户和推广用户绑定
   String content = uid1 + "," + uid2 + "," + uid3+","+uid4+","+uid5;
   osw = new OutputStreamWriter(new FileOutputStream(targetPath));
   osw.write(content, 0, content.length());
   osw.flush();  //把推广用户id写入文本里面去

process = Runtime.getRuntime().exec(
     "cmd.exe /c apktool b " + appPath + "app " + appPath
       + "dabao.apk", null, file);
   if (process.waitFor() != 0) {
    listener.onErrorListener("打包失败");
    return;
   }
   String jdkBinPath = "D:\\Java\\jdk1.7.0_67\\bin";   //jdk路径
   File bin = new File(jdkBinPath);
   String cmd1 = "cmd.exe /c jarsigner -keystore D:\\Java\\qianming\\my.keystore -storepass 123456 -signedjar D:\\myeclipse_workplace\\.metadata\\.me_tcat7\\webapps\\MyMoney\\apk\\";  // 含有秘钥地址和密码
   String cmd2 = uid1 + ".apk";
   String cmd3 = " -digestalg SHA1 -sigalg MD5withRSA D:\\myeclipse_workplace\\.metadata\\.me_tcat7\\webapps\\MyMoney\\apk\\dabao.apk  my.keystore";
   process = Runtime.getRuntime().exec(cmd1 + cmd2 + cmd3, null, bin);
   if (process.waitFor() != 0) {
    listener.onErrorListener("签名失败");
    return;
   }
  } catch (Exception e) {
   e.printStackTrace();
   listener.onErrorListener("打包失败");
  } finally {
   osw.close();
  }
  listener.onSuccess();
 }

package com.hck.dabao;

public interface DaoBaoOnErrorListener {
  public void onErrorListener(String errorString);
  public void onSuccess();
}

我的网站的 apk,就是用这个方式动态打包产生的: http://androidyuanma.com/downApp?uid=1



java服务器动态打包apk相关推荐

  1. uniapp使用unipush推送及java后台推送代码(含本地打包apk使用unipush推送)

    你懂的,又是项目用到了,作为程序猿义无反顾需要定时 "进化" ,硬头皮去写,虽然曾经作为android开发者写了很多的推送,但是uniapp的推送也是有所差异的,记录一下,以后留用 ...

  2. Unity(十四)Unity配置打包APK环境Android和Java

    吐槽:换了电脑,配置Unity打包环境又花费了大量时间.特此记录下来 (文末提供云盘文件) 以下分三部分说明配置完就可以正常打包APK了,/*第一次打包建议仔细看完*/ 1. Android环境配置 ...

  3. android服务器打包jar,Android Studio打包apk,aar,jar包方法

    文本我们将讲解android studio打包apk,aar,jar包的相关知识.apk包就是android系统的安装包,这里没什么好说的,aar包是android中独有的类库包,而jar包是java ...

  4. HTML一键打包APK工具(安卓应用APP)

    工具简介 "HMTL一键打包APK工具"可以把本地HTML项目或者网站打包为一个安卓应用APK文件,无需编写任何代码,支持在安卓设备上安装运行. 打包工具群:429338543 下 ...

  5. Python 后台基于 PackerNg 格式动态生成 APK 渠道包

    2019独角兽企业重金招聘Python工程师标准>>> 本文代码的原理基于 git@github.com:mcxiaoke/packer-ng-plugin.git 项目. 该项目用 ...

  6. HTML/网站一键打包APK工具(html网页打包安卓APP应用)

    工具简介 "HMTL一键打包APK工具"可以把网站打包为一个安卓应用APK文件,无需编写任何代码,支持在安卓设备上安装运行. 线上地址: 点击进入页面 历史更新 1.4.5 (20 ...

  7. AndroidStudio 动态调试apk(release版)

    今天教大家如何用AndroidStudio去动态调试已经上线的apk文件(类似我们开发的时候去debug调试代码块效果),这就是逆向的时候用的比较平凡的一种手段,而要更好的了解怎么去动态调试apk这里 ...

  8. 设计模式总结——代理模式以及java的动态代理

    定义 给目标对象一个代理对象,并由代理对象控制对目标对象的引用.联想到生活中就像是海外代购 既然是代理,就说明他要做的事情要比你直接去做要做的多,这就联系到了方法的增强,也就联系到了AOP,面向切面. ...

  9. cocos2d-x3.0rc打包apk遇到的一些问题记录

    下载cocos2d-x3.0rc后根据官方教程进行环境配置等等一系列过程没有遇到什么问题 打包apk时出现一些问题: 按照官方教程cmd下运行cocos run -p android -m relea ...

  10. Java服务器热部署的实现原理

    [本文转载于Java服务器热部署的实现原理] 今天发现早年在大象笔记中写的一篇笔记,之前放在ijavaboy上的,现在它已经访问不了了.前几天又有同事在讨论这个问题.这里拿来分享一下. 在web应用开 ...

最新文章

  1. html+服务器控件语法,HtmlForm 服务器控件声明性语法
  2. 软件架构:5种你应该知道的模式
  3. otn系统中常用的电层_WDM与OTN浅谈
  4. 蚂蚁金服“定损宝”现身AI顶级会议NeurIPS
  5. ASP.NET MVC4(Razor)从客户端中检测到有潜在危险的 Request.Form 值
  6. PMP试题 | 每日一练,快速提分 7.5
  7. Nginx面试题整理
  8. java全栈工程师简历,全栈工程师:全栈JavaScript简介
  9. AWS云上混沌工程实践之启动篇
  10. 如何在Mac电脑上打开终端
  11. 【常用表】常用泰勒公式与常用等价
  12. 共享文件计算机和设备拒绝访问,“拒绝访问”共享文件解决方法
  13. YS_20190822_图像_Matlab_04
  14. 人生=亲情+爱情+金钱+理想+友情?
  15. 华为的用人标准有6条,经典并熟记
  16. SpringBoot+Vue项目实现高校学生健康打卡系统
  17. 重温数据结构(C语言版)(第二版)
  18. iptables知识点总结
  19. 笔记本linux蓝牙驱动怎么安装程序,如何安装蓝牙设备的驱动程序
  20. 迁移学习——综述文献

热门文章

  1. asp中的session使用方法详解
  2. 如何避免IE浏览器自动升级到版本11
  3. 【音频处理】WAV 文件格式分析 ( 逐个字节解析文件头 | 相关字段的计算公式 )
  4. 求101到200之间的素数
  5. 视频基本知识  AD转换和YUV,cb cr基本知识
  6. TrueType字体结构
  7. p6spy监测mysql_JDBC数据库访问操作的动态监测 之 p6spy
  8. xx排排网数据加密(js逆向)
  9. 多媒体计算机相关知识,多媒体基础知识题库
  10. matlab常用函数解释,MATLAB常用函数总结