android 代码签名apk,[Android]混淆代码后生成带签名的apk
Android從2.3的SDK開始,將ProGuard混淆代碼的功能加入了進來。
我們可以從android sdk的tools目錄下看到有一個proguard目錄。說明具有了代碼混淆的功能。
至于如何進行代碼的混淆。我們需要做的很簡單:
1、在用eclipse生成的android工程中都有一個project.properties文件,我們需要在該文件中增加下面一行代碼:
proguard.config=proguard.cfg
如圖所示:
2、寫混淆腳本proguard.cfg
我測試用的混淆腳本非常簡單,只加了優化功能。如圖所示:
我們可以看到混淆android代碼非常容易,但是需要注意的是:在eclipse下通過Run執行來生成的bin目錄下的apk文件并沒有被混淆,只有通過加入證書發布的apk才會混淆。
下面,我們來看看如何打包簽名apk。
1、生成keystore;
在生成簽名apk前,我們需要keystore,這個keystore可以用jdk下的keytool工具生成。
在cmd下,用命令行生成keystore如圖所示:
按照上圖中的命令,輸入需要輸入的內容。
其中,-alias android.keystore是生成的keystore別名;
-keyalg RSA是加密和數字簽名的算法;
-validity 20000是有效天數
最后,會在jdk的bin目錄下生成android.keystore文件。(這是因為keytool命令在jdk的bin目錄下,當然,這個可以通過環境變量來設置)。
2、用keystore生成簽名apk。
我們有了keystore,就可以生成簽名apk了。
Eclipse中,右鍵需要簽名的工程->Android tools->export signed application package...
這時會出現以下對話框:
點擊下一步:
鍵入密碼,點擊Next:
鍵入密碼,再次點擊Next:
最后,點擊Finish即可。
這時會在jdk的bin目錄下生成帶簽名的apk。
下面是將我在github上的androidexample工程混淆了,效果如下:
最后,我們看運行混淆后的輸出文件,在工程中會有生成的proguard文件夾,里面的文件具體內容是:
dump.txt
描述.apk包中所有class文件的內部結構。
mapping.txt
列出了源代碼與混淆后的類,方法和屬性名字之間的映射。這個文件對于在構建之后得到的bug報告是有用的,因為它把混淆的堆棧跟蹤信息反翻譯為源代碼中的類,方法和成員名字。
seeds.txt
列出那些未混淆的類和成員。
usage.txt
列出從.apk中剝離的代碼。
這些文件放在以下目錄中:
l/bin/proguard當你使用Ant時
l/proguard當你使用Eclipse時
總結
以上是生活随笔為你收集整理的android 代码签名apk,[Android]混淆代码后生成带签名的apk的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dnf试炼硬币怎么用 地下城与勇士
- 下一篇: android 序列化 json,and