您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何理解apk反編譯和重新打包,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
最近用anysdk接android,接入有點小麻煩,不過確實帶來了很大的便利,接入新渠道只需要設置參數就可以了,唯一要注意的就是,發布的時候把debugMode關閉。
不過android下面的anysdk有個問題,就是所有渠道必須用同一套資源,然后使用母包生成渠道包,包之間無法做差異化,這與我們項目有點矛盾。要解決這個問題,能想到的有兩個辦法:
母包就將某個渠道的最終資源弄進去,再生成渠道包,這個確實可行,但是實在太麻煩,不好維護,而且使anysdk帶來的便利大大降低。
一次性生成所有渠道包,再用apktool等工具反編譯,把差異化文件添加進去,再重新簽名。
反編譯倒是沒問題,遇到了一個問題:需要額外下載一個apktool.jar。沒想到重簽名卡了好久,因為網上說的命令都是jarsigner -verbose -keystore xx.keystore -signedjar -pkg.apk pkg1.apk xx.keystore,也沒講每個參數什么意思,用的時候總是出錯,搞了好久才成功。
下面將命令解釋如下:
jarsigner:jdk下的一個工具,后綴exe
-verbose:輸出詳細信息
-keystore:秘鑰文件
-signedjar:簽名文件,第一個參數為簽名后的文件,相當于輸出文件,第二個為未簽名文件,輸入文件。開始搞反了,以為第一個是輸入,第二個輸出,被坑了一把。
最后一個參數,是keystore的alias名,網上說的真是誤人子弟,放兩個keystore文件名有何意義,是吧。
所以正確的命令應該是:jarsigner -verbose -keystore xx.keystore -signedjar output.apk input.apk alias
關于如何理解apk反編譯和重新打包就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。