2015-12-21 114 views
0

有沒有簡單的方法來處理這個問題,而不是更改軟件包名稱。例如:我有以下10個軟件包名稱,我希望僅混淆其中的一個,並保留其他軟件包的其餘部分。Android混淆程序

  • com.myOrg.myApp.pkgNameA
  • com.myOrg.myApp.pkgNameB
  • com.myOrg.myApp.pkgNameC
  • com.myOrg.myApp.pkgNameD
  • com.myOrg。 myApp.pkgNameE
  • com.myOrg.myApp.pkgNameF
  • com.myOrg.myApp.pkgNameG
  • com.myOrg.myApp.pkgNameH
  • com.myOrg.myApp.pkgNameI
  • com.myOrg.myApp.pkgNameJ

我想混淆 「com.myOrg.myApp.pkgNameA」,離開了其他包原樣。我目前在我的proguard文件中列出了下載軟件包B-J以避免混淆它。如果我把「com.myOrg.myApp.**{*;}」這個也不混淆「com.myOrg.myApp.pkgNameA」。

我proguard相關文件的部分:

-keep class com.myOrg.myApp.pkgNameB.** { *; } 
-keep class com.myOrg.myApp.pkgNameC.** { *; } 
-keep class com.myOrg.myApp.pkgNameD.** { *; } 
-keep class com.myOrg.myApp.pkgNameE.** { *; } 
-keep class com.myOrg.myApp.pkgNameF.** { *; } 
-keep class com.myOrg.myApp.pkgNameG.** { *; } 
-keep class com.myOrg.myApp.pkgNameH.** { *; } 
-keep class com.myOrg.myApp.pkgNameI.** { *; } 
-keep class com.myOrg.myApp.pkgNameJ.** { *; } 

有沒有簡單的方法來讓proguard的文件知道要保留所有的包,除了一個需要被混淆?

回答

0

你可以在類名上使用否定運算符嗎?

-keep class !com.myOrg.myApp.pkgNameA.** { *; }