真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

android中如何實(shí)現(xiàn)二次打包完成apk多渠道打包的方法

這篇文章將為大家詳細(xì)講解有關(guān)android中如何實(shí)現(xiàn)二次打包完成apk多渠道打包的方法,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

作為一家“創(chuàng)意+整合+營(yíng)銷(xiāo)”的成都網(wǎng)站建設(shè)機(jī)構(gòu),我們?cè)跇I(yè)內(nèi)良好的客戶(hù)口碑。創(chuàng)新互聯(lián)提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、成都網(wǎng)站制作、創(chuàng)意表現(xiàn)、網(wǎng)頁(yè)制作、系統(tǒng)開(kāi)發(fā)以及后續(xù)網(wǎng)站營(yíng)銷(xiāo)運(yùn)營(yíng)等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營(yíng)模式與有效的網(wǎng)絡(luò)營(yíng)銷(xiāo)方法,創(chuàng)造更大的價(jià)值。

此打包方式一個(gè)渠道包只需要5秒左右,可實(shí)現(xiàn)快速打渠道包

對(duì)于為了在assets獲取渠道號(hào)來(lái)打渠道包的方法,其實(shí)很簡(jiǎn)單,你只要知道apk里面裝的什么東西,就會(huì)了

將apk用壓縮方式解壓,你會(huì)得到像

android中如何實(shí)現(xiàn)二次打包完成apk多渠道打包的方法

這樣的文件列表,其中就有assets文件夾;當(dāng)然前提條件是你在項(xiàng)目中必須創(chuàng)建assets文件夾。既然有了這個(gè)文件夾,安卓里面又能通過(guò)代碼獲取這個(gè)文件夾里面的文件,并讀取文件:

  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 "未知";
  }

那么接下來(lái)就只需要通過(guò)修改里面的文件,并重新打包,簽名來(lái)打渠道包了。

如何修改里面的文件,并打包簽名,我特地寫(xiě)了一個(gè)打包工具,通過(guò)java工程生成jar,通過(guò)命令行運(yùn)行jar讀取配置文件然后生成打包腳本,自動(dòng)運(yùn)行腳本進(jìn)行打包

介紹

在java工程中的入口是

main函數(shù),

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

以前一直不知道args是干嘛的,后來(lái)通過(guò)命令行傳入?yún)?shù),才知道args可以帶入命令行的參數(shù)

1.讀取配置文件:

通過(guò)文件的方式傳入要打的渠道包,及渠道包的名字,渠道號(hào)

讀文件操作很簡(jiǎn)單,就是通過(guò)流的形式,不多介紹,可以自行閱讀源碼

文件配置:

app_path=app-release_aligned_signed.apk;
keystore=ej_v3.jks;
keyAlias=ej_v3;
keyPassword=123456;
storePassword=123456;
contents=優(yōu)億,魅族;
apkname=youyi,meizu;

2.解壓apk文件

  1. 通過(guò)java代碼將apk解壓出來(lái)、

  2. 通過(guò)ZipFile來(lái)解壓文件

  3. 解壓完后刪除簽名文件

3.替換渠道號(hào)文件

獲取解壓后的assets路徑,并修改里面的渠道文件內(nèi)容,

//------修改內(nèi)容
        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.生成簽名腳本內(nèi)容

復(fù)制代碼 代碼如下:


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

6.運(yù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");
  }

關(guān)于“android中如何實(shí)現(xiàn)二次打包完成apk多渠道打包的方法”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。


當(dāng)前文章:android中如何實(shí)現(xiàn)二次打包完成apk多渠道打包的方法
文章位置:http://weahome.cn/article/gigdci.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部