2013-05-21 3 views
0

Так что я унаследовал довольно большой Android-проект. Я пытаюсь вытащить части приложения, которые больше не нужны. Проблема в том, что я ничего не могу удалить, что не вызывает сотни ошибок компиляции. Каждый класс ссылается на столько других классов, что почти невозможно удалить что-либо. Например, если я удалю класс Activiy, все другие действия в проекте получат ошибки.Зависимости от Java/Android

Это неправильная практика? Я никогда не думал об этом раньше. Очевидно, что некоторым классам необходимо ссылаться на другие классы (Контроллеры -> Виды), но не до такой степени, что каждый класс переплетается, правильно?

+0

Это, вероятно, не достаточно конкретный вопрос для SO в его нынешнем виде. Ваша первая задача, если вы серьезно относитесь к очистке, вероятно, заключалась бы в документировании конкретных зависимостей, а затем классифицировала бы их как оправданные vs refactorable. Но будьте осторожны, перезагружая один кирпичный поворот, ведущий к перестройке всей стены - если это предусмотрено, по крайней мере, используйте текущую версию, чтобы разработать документ требуемой функциональности, который мог бы привести к теоретически более чистому дизайну. –

+0

Да, это плохая практика, независимо от языка или платформы. Ничего особенного для Android. Единственная причина, по которой действие должно иметь зависимость от другой активности, - это если она запрашивает навигацию через Intent. Вы можете переместить эту зависимость (создание намерения) в отдельный класс, чтобы никакая активность не ссылалась на другую. – GreyBeardedGeek

+0

Или если он * расширяет * другой подкласс Activity ... –

ответ

1

Отъезд proguard. Вы можете настроить его таким образом, чтобы компилировались только используемые классы.

«Он сжимает, оптимизирует и обфускает ваш код, удаляя неиспользуемый код и переименовывая классы, поля и методы с семантически неясными именами. В результате получается меньший размер .apk-файла, который сложнее перестроить».

http://developer.android.com/tools/help/proguard.html

+0

Да, для скомпилированного результата - и, возможно, у него могут быть отчеты, которые дают вам полезный анализ зависимостей. Но он не будет напрямую решать проблемы чтения/ремонтопригодности исходного кода. –

+0

Это уменьшит размер apk, но ничего не сделает для улучшения обслуживания приложения, которое, я считаю, является тем, что просит OP. – GreyBeardedGeek

Смежные вопросы