У меня возникла та же проблема с предупреждением из-за следующего в родительском объекте утилизатора:
android:animateLayoutChanges="true"
Если вы хотите сохранить анимацию, просто поместите утилизатор в другого родителя, как framelayout
. У меня это работало нормально, и анимация тоже играет хорошо.
Конечно, есть список википедии . Этот список - всего лишь список, а не сравнение, но одна из ссылок на странице, кажется, по крайней мере частично отвечает на ваш вопрос и (очень кратко) упоминает пару программ, которые вы перечислили.
Я использовал splint пару раз и нашел его слишком многословным : Я отключил большинство предупреждений. Я думаю, что этот инструмент может дать интересные результаты, если правильно аннотировать свой код. Без кода аннотации, этот инструмент не очень полезен.
Я иногда использую sparse и считаю его ценным инструментом. Это обеспечивает
оболочка для gcc, называемая "cgcc". В результате легко запустить
в программе, даже если она содержит много исходных файлов ( экспорт
CC = cgcc
и вуаля). Эта программа лучше всего работает, если вы анализируете
Исходный код ядра.
Кстати, я также регулярно использую pmccabe. pmccabe - это не статический анализатор: вычисляет цикломатическую сложность. Это может вам помочь найти самые сложные функции в вашей программе. Эти функции вероятно, будет подвержено ошибкам и будет сложно проверить.
Использование -Wall должно быть само собой разумеющимся для каждого разработчика c. Кроме того, может быть хорошей идеей дополнительное использование -Wextra.
Splint может найти другие потенциальные слабые места в вашем приложении, но в большинстве случаев (!) Он выдает ложные предупреждения, поэтому вы должны действительно понимать, что означает шина, с каким предупреждением и в большинстве случаев вам нужно вставить аннотации типа / out / или / unused / в свой код, чтобы шина не кричала на вас. Используя шину, вы должны отфильтровать предупреждения, которые для вас не важны, в противном случае вы потратите слишком много времени на анализ и просмотр большого количества сообщений.
Обратите внимание, что эти инструменты выполняют только статическую проверку кода. Для поиска утечек памяти во время выполнения следует использовать valgrind.