編輯:關於Android編程
1、國內應用市場繁多,上線的apk應用需要知道自己在哪個渠道下載的; 2、簡直是急速啊:5M的apk,1秒種能打300個; 3、因為是急速,可以做網頁下載時動態打渠道包功能(如:分享apk給好友,好友下載打開apk後直接計算准確的分享量);
利用的是Zip文件“可以添加comment(摘要)”的數據結構特點,在文件的末尾寫入任意數據,而不用重新解壓zip文件(apk文件就是zip文件格式); 所以該工具不需要對apk文件解壓縮和重新簽名即可完成多渠道自動打包,高效速度快,無兼容性問題; 另外美團的適配渠道包方案(不同的渠道嵌入不同的SDK): 美團Android自動化之旅—適配渠道包(Gradle flavor解決內嵌第三方SDK適配)(http://tech.meituan.com/mt-apk-adaptation.html)
友盟(https://github.com/umeng/umeng-muti-channel-build-tool) 打包:解壓apk文件 -> 替換AndroidManifest.xml中的meta-data -> 壓縮apk文件 -> 簽名 讀取渠道號:直接通過Android的API讀取meta-data 特點:需要解壓縮、壓縮、重簽名耗費時間較多,重簽名會導致apk包在運行時有兼容性問題; 美團(http://tech.meituan.com/mt-apk-packaging.html) 打包:解壓apk文件 -> META-INF目錄下創建一個以渠道號為文件名的空文件 -> 壓縮apk文件 讀取渠道號:解壓已安裝的data/app/.apk -> 讀取以渠道號為文件名的空文件的文件名 特點:比友盟高效點,只有解壓縮和壓縮,沒有簽名,兼容性也比較好,但是讀取渠道號需要解壓縮apk,速度比較慢; 我自己 打包:直接寫入渠道號到apk文件的末尾 讀取渠道號:直接讀取data/app/ .apk文件末尾的渠道號 特點:沒有解壓縮、壓縮、重簽名,沒有兼容性問題,速度最快;寫入的渠道號數據支持加密,安全可靠;
由於速度極快,我還可以作為服務器端下載apk時動態寫入“特定數據”,用戶下載到apk後安裝啟動,讀取“特定數據”完成特定的操作; 如:加好友功能,下載前寫入用戶ID,用戶下載後啟動apk,讀取寫入的用戶ID,完成加好友操作,用戶體驗大大提升,沒有斷裂感; 當然,也可以寫入JSON數據,想做什麼就做什麼;
1、命令行使用說明: 用法:java -jar MCPTool.jar [-path] [arg] [-contents] [arg] [-password] [arg] -path APK文件路徑 -outdir 輸出路徑(可選),默認輸出到APK文件同一目錄 -contents 寫入內容集合,多個內容之間用“;”分割,如:googleplay;m360; 當沒有“-contents”參數時輸出已有文件中的content -password 加密密鑰(可選),長度8位以上,如果沒有該參數,不加密 -version 顯示版本號 例如: 寫入:java -jar MCPTool.jar -path D:/test.apk -outdir ./ -contents googleplay;m360; -password 12345678 讀取:java -jar MCPTool.jar -path D:/test.apk -password 12345678 2、Android代碼中讀取寫入的渠道號: 導入MCPTool.jar中的MCPTool類,MCPTool.getChannelId(context, mcptoolPassword, defValue)讀出寫入的渠道號; 3、jenkins、hudson、ant使用說明: 請看MultiChannelPackageTool\build-ant\MCPTool\build.xml文件; 4、Windows下bat腳本運行說明: 拖拽文件即可完成多渠道打包:MultiChannelPackageTool\build-ant\MCPTool\MCPTool.bat; 拖拽文件檢查渠道號是否寫入成功:MultiChannelPackageTool\build-ant\MCPTool\MCPTool-check.bat; 上面2個bat文件中有密碼,可以自行修改;
V1.1 20150829 更新內容 修復Android5.0及以上系統不能安裝打出的渠道包問題(校驗apk文件的comment數據的長度) V1.0 20141216 更新內容 創建項目
Copyright (C) 2014 [email protected] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
源碼下載地址:https://github.com/seven456/MultiChannelPackageTool
仿微信右上角彈出框1、利用popwindow實現2、popwindow的位置居於右上角新建,彈出popwindow:/** 彈popwindow **/ tv = (T
計步器(Pedometer)整個項目的源代碼,感興趣的朋友可以下載來看看(記得幫小弟在github打個星~) https://github.com/2967
前言?android5.X新增的一個控件Toolbar,這個控件比ActionBar更加自由,可控,由於以前的ActionBar的靈活性比較差,所以google逐漸使用T
搭建JAVA開發環境根據操作系統分為x86或x64位的,下載jdk1.8以上的版本,本機安裝時的java版本:jdk-8u45-windows-x64.exe配置JAVA