Nella mia applicazione sono presenti più classi che forniscono i metodi public static void main(String[] args)
. Questi metodi sono richiesti solo durante lo sviluppo/test e mi piacerebbe che ProGuard li rimuovesse (ma solo questi metodi, non le intere classi circostanti). Ho provato a utilizzare -assumenosideeffects
, ma sembra che ciò influenzi solo le chiamate ai metodi, non i metodi stessi. Come posso forzare Proguard a rimuovere l'intero metodo main()
nonostante siano public
e static
?Come forzare ProGuard a rimuovere il metodo statico pubblico?
6
A
risposta
0
ProGuard ha bisogno di semi per determinare quali classi/metodi devono essere mantenuti. Verranno inoltre mantenuti tutti i riferimenti a questi semi.
L'opzione -assumenosideeffects
viene utilizzata per rimuovere le chiamate effettive ai metodi il cui risultato non è utilizzato in alcun modo, ma non significa necessariamente che il metodo stesso sia stato rimosso.
Nel tuo caso specifico, probabilmente hai una regola che mantiene tutti i metodi public static void main(String[])
in quanto sarebbe il seme standard per un'applicazione java.
È possibile analizzare il motivo per cui uno specifico metodo/classe viene mantenuto utilizzando l'opzione -whyareyoukeeping
.
Problemi correlati
- 1. C++ Accesso al membro statico privato dal metodo statico pubblico?
- 2. pubblico statico vs pubblico statico - c'è una differenza?
- 3. Accesso al metodo java statico pubblico da scala
- 4. Non è possibile utilizzare un metodo statico pubblico?
- 5. GetType a metodo statico
- 6. Scala: Specifica il metodo pubblico prevalente metodo
- 7. Costruttore pubblico e costruttore statico
- 8. Classe sigillata - Perché rimuovere il Costruttore pubblico?
- 9. Metodo statico e metodo non statico
- 10. Scala: finale statico pubblico in una classe
- 11. Come chiamare il metodo statico in PowerShell
- 12. programmazione verificare se il metodo è pubblico
- 13. Un modo per forzare le classi ad avere un campo finale statico pubblico in Java?
- 14. Dove dovrei posizionare il vuoto statico pubblico Main?
- 15. In che modo Rails distribuisce il contenuto statico al pubblico?
- 16. come creare una finestra di messaggio nel metodo statico pubblico vuoto
- 17. Come posso adattare correttamente questo metodo "pubblico"?
- 18. Posso forzare il compilatore a ottimizzare un metodo specifico?
- 19. Il metodo statico in PHP ha qualche differenza con il metodo non statico?
- 20. Il metodo statico richiede un'istanza nulla, il metodo non statico richiede un'istanza non null
- 21. abilita proguard solo per rimuovere il codice inutilizzato
- 22. python3: verificare se il metodo è statico
- 23. Come posso forzare l'ereditazione delle classi per implementare un metodo statico in C#?
- 24. Il metodo non statico richiede un obiettivo?
- 25. metodo statico e ricorsione?
- 26. metodo statico con codice predefinito statico?
- 27. Chiamare il metodo statico su una classe?
- 28. Come accedere a primavera ApplicationContext nel metodo statico junit @BeforeClass?
- 29. Come posso forzare il GDB a smontare?
- 30. Come forzare il dizionario Python a ridursi?
non esiste un'ottimizzazione che rimuove già i metodi non utilizzati? –
Certo che c'è, se si attiva la riduzione del codice inutilizzato viene rimosso. Ma il punto è che non si può dire con certezza se un metodo 'public static' è inutilizzato, perché potrebbe essere usato al di fuori del proprio codice. Ecco perché ho bisogno di forzare la rimozione in qualche modo. – sschuberth
penso che ciò che proguard ti dà sia la possibilità di escludere funzioni e classi da essere modificati da esso, quindi non puoi usarlo sulle funzioni che desideri che non tocchino? –