Для первой части я предлагаю вам проверить этот вопрос: Игра для Android продолжает хакаться .Он не касается непосредственно ProGuard, но дает некоторые идеи о том, как уменьшить пиратство.
Во второй части, я боюсь, нет, это не совсем возможно, так как это простые XML-файлы.Что вы можете сделать, это уменьшить использование ресурсов и создать логику непосредственно в Java .Это снизит доступ к вашему коду тремя способами:
(1), очевидно, он показывает менее легко читаемый код XML
(2), он создает гораздо более длинные файлы smali,для начала непросто: учтите, что переменные в файле smali не имеют имен, но имеют номера и используются несколько раз, что делает их еще более трудными для понимания.V1 может быть сначала TextView, а затем int, а затем частным статическим методом.
(3) это уменьшает использование шестнадцатеричных идентификаторов, которые очень легко найти в файле smali, используя таблицу из public.xml.
Когда я переносил каркас TouchWiz на некоторые пользовательские ПЗУЯ даже сделал небольшое Java-приложение для автоматизации распознавания идентификаторов (пост xda-developers здесь ), чтобы вы могли представить, как легко им следовать.