學Android必須懂的

學習Android開發不得不會的東西。如果這些你不會想學會或者留一個印象,方便以後快速開發。每一個問題都是開發中遇到的實際問題。但是問題不是一篇博客一個人就能徹底解決得,如果你感覺文章對你有所幫助,請你把你遇到的問題反饋給我。如果符合我會更新到這篇博客上,謝謝。(QQ:1441289873)

一、代碼混淆

Android代碼混淆

現在的App上線前肯定都需要代碼混淆的,那麼代碼混淆到底有什麼用呢?難道只是讓代碼在反編譯的時候看不懂?接下來看:

ProGuard是一個混淆代碼的開源項目,它的主要作用是混淆代碼,還包括以下4個功能:
1.壓縮(Shrink):檢測並移除代碼中無用的類、字段、方法和特性(Attribute);
2.優化(Optimize):對字節碼進行優化,移除無用的指令;
3.混淆(Obfuscate):使用a,b,c,d這樣簡短而無意義的名稱,對類、字段和方法進行重命名;
4.預檢(Preveirfy):在Java平臺上對處理後的代碼進行預檢,確保加載的class文件是可執行的。

但是我們還應該看到以下幾點問題的存在:

  • 代碼混淆和編譯成.so的安全性都是相對的,都是增加了破解的難度。
  • 有的人破解是需要了解其代碼的 代碼混淆可能會讓別人花費更多時間,但是有的破解是不需要看其源碼的,比如在一個apk裏面嵌入廣告,只需要找到啓動廣告和放入廣告代碼和xml註冊廣告權限就可以了。
  • android的4大組件不允許被混淆 這就是一個很大的問題,對於反編譯的人來說這就是入口。

開啓代碼混淆只需兩步:
1.在proguard-rules.pro中配置混淆

2.在appd的build.Gradle裏,將minifyEnabled設置爲true

就可以了,如果想了解混淆的各種具體配置請訪問:https://www.jianshu.com/p/e19cc5194a31

二、查看混淆後的Log

在項目上線前,要進行代碼混淆,同時我們也會使用一些工具來換取用戶使用App的情況,通過一些第三方統計,或者捕獲異常上傳到服務器。代碼被混淆了怎麼查看Log打印的問題呢?很簡單在你的SDK裏就有自帶工具來查看。具體路徑在下面:

D:\sdk\tools\proguard\bin

就是在你的SDK目錄下的tools裏proguard的bin下

就是proguardgui.bat它了,如果你打不開的話,也不用去百度怎麼辦了,直接下載一個新的才3.7M。

下載鏈接

打開後肯定先是黑窗口,然後就是這樣,如果不一樣,就不知道了,我是重新下載的。

只截屏了一點

1.點擊“ReTrace”;
2.點擊“Browse”,選中項目工程下..../app/build/outputs/mapping/normal/mapping.txt;
3.將錯誤日誌中複製粘貼到“Obfuscated stack trace”下的內容區域中;
4.點擊右下角“ReTrace!”,即可定位錯誤代碼。

圖是偷的!!!

三、升級AS以前的庫下載問題

不知道從AndroiStudio多少版本開始就出現了,jcenter庫下載失敗。今天我也遇到了花了好長時間才解決掉。

我附一個地址是阿里的鏡像網站比其他快。

http://maven.aliyun.com/mvn/view

把你下不下來得庫的地址附上去就行了

列如:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章