Как посмотреть код программы на Андроид

Изучая android разработку, мне хотелось что-нибудь создать, но идей не было. Я сделал одну уже программу для чтения исходных кодов, но алгоритм там был ужасный и я забросил проект. Но несколько дней назад я решил опять что-нибудь написать, тем более что оформил подписку на packpub и посмотрел как создавать custom ui для android.

До этого, несколько лет назад, я читал книгу по ui на русском языке и там очень много текста было о том, как создавать свой ui. Я не смог тогда понять. Первая программа для чтения исходных кодов была на textview и я парсил код и делал из него html теги. Это оказался не лучший вариант. Почитав книгу, я понял что всего то надо наследоваться от одного виджета и переопределить несколько функций.

Так я приступил к новой версии программы с нуля.

У меня появилась идея сделать текст с тенями, смотрелось бы классно, но я не нашел доступной функции по работе с тенью, но нашел blur (размытие). Это выглядит очень классно. Будто ты смотришь на священный текст. Каждое слово позиционируется отдельно.

Как ПОСМОТРЕТЬ код страницы с андроида

Когда мы смещаем экран вверх, то при смещении алгоритм находит тот текст, который ещё в поле зрения экрана и при отрисовке начинает рисовать сразу с позиции, где видно текст на экране и заканчивает рисовать, когда позиция уходит за экран. Имеется окно настройки программы, вот оно. На ней сразу видно как измениться внешний вид программы.

Также я подумывал над тем, как сделать вкладки и тоже придумал. Вкладки можно прокручивать горизонтально, потому что они находятся в горизонтальном scroll view. Вот как выглядит главное окно с открытыми вкладками.

Пока что программа поддерживает только пять языка: C,C++,C#,JAVA,JS. Думаю над тем, чтобы добавить ещё поддержку других языков. Может быть другие языки будут доступны как платные опционально, а может бесплатно. Хотелось бы, что код радовал глаз, и с такой программой ещё и хочется больше читать код других программ.

Источник: habr.com

Как исследовать приложение для Android

Ashraff Hathibelagal

Ashraff Hathibelagal Last updated Apr 1, 2016

Read Time: 7 min

Общеизвестно, что приложения для Android распространяются в виде файлов пакетов Android Application, или файлов APK для краткости. Тем не менее, большинство людей смотрит на APK как черный ящик и понятия не имеет, как оно создано или что внутри него. Даже у большинства разработчиков приложений есть только поверхностное понимание анатомии APK. В интегрированных средах разработки, таких как Android Studio, требуется всего один щелчок, чтобы преобразовать проект Android в APK.

Как посмотреть HTML- код (скрипт) на странице сайта в андроид телефоне.

В этом уроке мы рассмотрим приложение для Android. Другими словами, мы собираемся открыть APK и посмотреть его содержимое. Кроме того, поскольку APK является двоичным файлом, предназначенным только для чтения машинами, я также расскажу вам о нескольких инструментах, которые вы можете использовать для перевода его содержимого в более удобочитаемую форму.

Читайте также:
Что означает понятие диалоговый характер программы информатика

Предпосылки

Чтобы следовать, вам нужно:

  • последняя версия Android SDK
  • Android-устройство или эмулятор под управлением Android 4.4 или выше

1. Зачем заглядывать внутрь в APK?

Многие люди делают это из чистого любопытства. Другие пользуются возможностью прямого доступа к изображениям, звукам и другим активам своих любимых игр или приложений. Однако есть более важные причины, по которым вы хотели бы заглянуть внутрь APK.

Обучение

Если вы только начали изучать разработку приложений для Android, вы можете многому научиться, просматривая APK-файлы популярных приложений или приложений, созданных профессионалами. Например, просмотрев файлы макета XML приложения, которые хорошо смотрятся на нескольких размерах экрана, вы можете улучшить свои собственные навыки создания макета.

Безопасность

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

2. Как создается APK?

Не так много можно узнать из APK без базового понимания того, как он создается. Фактически, наиболее важные инструменты, используемые для анализа APK, также являются инструментами, используемыми для его создания.

Проекты Android состоят в основном из исходного кода Java, XML-макетов, метаданных XML и активов, таких как изображения, видео и звуки. Прежде чем операционная система Android сможет использовать все эти файлы, их необходимо преобразовать в форму, которую она понимает. Это преобразование включает в себя множество промежуточных задач, которые обычно называются процессом сборки Android. Конечным результатом процесса сборки является APK или пакет приложений для Android.

В проектах Android Studio Android-плагин для Gradle обрабатывает все промежуточные задачи процесса сборки.

Одной из первых важных задач является создание файла с именем R.java. Это файл, который позволяет разработчикам легко получать доступ к макету проекта и ресурсам в своем Java-коде с помощью числовых констант. Для создания файла используется инструмент под названием aapt, который является коротким для Android Asset Packaging Tool. Инструмент также преобразует все ресурсы XML вместе с файлом манифеста проекта в двоичный формат.

Все файлы Java, включая R.java, затем преобразуются в файлы классов с использованием компилятора Java. Как вы уже знаете, файлы классов состоят из байт-кода, который может быть интерпретирован механизмом выполнения Java. Однако Android использует специальный тип Android runtime (ART), который оптимизирован для мобильных устройств. Поэтому, как только все файлы классов были сгенерированы, инструмент, который называется dx, используется для перевода байт-кода в байт-код Dalvik, формат, который понимает ART.

После обработки ресурсов и файлов Java они помещаются в файл архива, который очень похож на файл JAR. Затем архивный файл подписывается с использованием закрытого ключа, который принадлежит разработчику приложения. Эти две операции выполняются плагином Gradle без использования каких-либо внешних инструментов. Ключ разработчика, однако, получен из хранилища ключей, управляемого keytool.

Наконец, c файлом архива делается несколько оптимизаций с использованием инструмента zipalign, чтобы убедиться, что память, которую приложение потребляет во время работы, сведена к минимуму. На данный момент архивный файл является допустимым APK, который может использоваться операционной системой Android.

Читайте также:
В чем суть программа принципа работы компьютера

3. Анализ содержания APK

Теперь, когда вы понимаете, как файлы APK создаются и используются, давайте откроем их и посмотрим на его содержимое. В этом уроке мы используем APK приложения под названием Sample Soft Keyboard, которое предварительно устанавливается на эмулятор Android. Однако, если вы предпочитаете использовать физическое устройство, вы можете так же легко использовать APK любого приложения, которое вы установили на нем.

Шаг 1: Перенос APK на компьютер

Чтобы проверить содержимое APK, вы должны перенести его с эмулятора на свой компьютер. Прежде чем вы это сделаете, вам нужно знать имя пакета и абсолютный путь APK. Используйте adb , чтобы открыть сеанс оболочки на вашем эмуляторе.

adb shell

Когда вы увидите приглашение оболочки, используйте команду pm list , чтобы отобразить имена пакетов для всех установленных приложений.

pm list packages

Название пакета приложения, которое нас интересует, это com.example.android.softkeyboard. Вы должны увидеть его в списке. Передав имя пакета команде pm path , вы можете определить абсолютный путь APK.

pm path com.example.android.softkeyboard

Вывод команды выше выглядит следующим образом:

package:/data/app/SoftKeyboard/SoftKeyboard.apk

Теперь, когда вы знаете свой путь, вы можете выйти из оболочки и перенести APK на свой компьютер с помощью команды adb pull . Приведенная ниже команда передает его в каталог вашего компьютера /tmp:

adb pull /data/app/SoftKeyboard/SoftKeyboard.apk /tmp

Шаг 2: Извлечение содержимого APK

Ранее в этом уроке вы узнали, что APK — это ни что иное, как сжатый файл архива. Это означает, что вы можете использовать менеджер архива по умолчанию для своей операционной системы. Если вы используете Windows, вы можете сначала изменить расширение файла с .apk на .zip. После извлечения содержимого APK вы должны иметь возможность видеть файлы внутри APK.

Contents of APK

Если вы разработчик приложений, многие файлы в APK должны выглядеть знакомыми. Однако, помимо изображений в папке res, файлы находятся в формате, с которым вы не можете работать без помощи нескольких инструментов.

Шаг 3: Расшифровка двоичных файлов XML

Android SDK включает в себя все инструменты, необходимые для анализа содержимого APK. Вы узнали ранее, что aapt используется для упаковки ресурсов XML во время процесса сборки. Он также может использоваться для чтения большого количества информации из APK.

Например, вы можете использовать опцию dump xmltre e для чтения содержимого любого двоичного XML-файла в APK. Вот как вы можете прочитать файл макета с именем res/layout/input.xml:

aapt dump xmltree /tmp/SoftKeyboard.apk res/layout/input.xml

Результат должен выглядеть примерно так:

N: android=http://schemas.android.com/apk/res/android
E: com.example.android.softkeyboard.LatinKeyboardView (line=21)
A: android:layout_width(0x010100f4)=(type 0x10)0xffffffff
A: android:layout_height(0x010100f5)=(type 0x10)0xfffffffe
A: android:layout_alignParentBottom(0x0101018e)=(type 0x12)0xffffffff

Это не XML, но благодаря отступу и ярлыкам, например N для пространства имен, E для элемента и атрибуту A, вы должны быть в состоянии прочитать его.

Шаг 4: Расшифровка строк

На предыдущем шаге вы видели, что дешифрованный XML имеет шестнадцатеричные числа вместо строк. Эти числа являются ссылками на строки в файле с именем resources.arsc, который представляет собой таблицу ресурсов приложения.

Вы можете использовать параметр dump resources для aapt для просмотра таблицы ресурсов. Вот как:

aapt dump —values resources /tmp/SoftKeyboard.apk

Читайте также:
Как установить программу клиент

Из вывода команды вы можете определить точные значения строк, используемых в приложении. Вот запись для одного из шестнадцатеричных чисел в XML:

resource 0x7f080000 com.example.android.softkeyboard:id/keyboard: t=0x12 d=0x00000000 (s=0x0008 r=0x00)

Шаг 5: Разборка Dalvik Bytecode

Наиболее важным файлом в APK является class.dex. Это файл, который используется во время работы приложения Android во время запуска приложения. Он содержит байт-код Dalvik, сгенерированный во время процесса сборки.

Разбрав этот файл, вы можете получить информацию о классах Java, используемых в приложении. Для этого вы можете использовать инструмент, называемый dexdump. С помощью следующей команды вы можете перенаправить вывод файла dexdump в файл, который может быть открыт любым текстовым редактором.

dexdump -d /tmp/classes.dex > /tmp/classes.dasm

Если вы откроете classes.dasm, вы увидите, что у него есть сотни строк низкоуровневого кода, который выглядит так:

Disassembled Low Level Instructions

Излишне говорить, что это очень сложно. К счастью, вы можете изменить выходной формат dexdump в XML с помощью опции -l . С помощью следующей команды вы можете перенаправить свой вывод в файл, который можно открыть в браузере.

dexdump -d -l xml /tmp/classes.dex > /tmp/classes.xml

Объем информации, доступной в формате XML, меньше, но дает вам представление о классах Java, методах и полях, присутствующих в приложении.

Disassembled Code in XML

Заключение

В этом уроке вы узнали, как создается APK и что он содержит. Вы также узнали, как использовать инструменты, доступные в Android SDK, для расшифровки содержимого файлов APK. Документации об этих инструментах не так много, но поскольку все они с открытым исходным кодом, вы можете попробовать прочитать их подробный код с комментариями, чтобы узнать о них больше.

Если вы ищете что-то более простое в использовании, вы можете попробовать использовать популярные сторонние инструменты, такие как dex2jar, который генерирует более читаемый дизассемблированный код или JADX, декомпилятор, который может генерировать Java-код.

Источник: code.tutsplus.com

7. Как посмотреть исходный код android приложения? Декомпиляция .apk файла (реверс инжиниринг)

Чтобы увидеть исходный java код приложения android, его нужно декомпилировать. В этом видео вы узнаете, как декомпилировать .apk файл прямо на вашем андроид-смартфоне, без использования настольного компьютера.

Поделиться

Виталий Непочатов

Обучающие видео-уроки по разработке приложений и игр для Android. Подпишитесь на наш канал, чтобы не пропустить новые уроки — обновление еженедельно! Мы поможем любому новичку стать продвинутым разработчиком андроид-приложений!

Последние сообщения

5 полезных сервисов для бесплатного образования и поиска работы

5 полезных сервисов для бесплатного образования и поиска работы

127 полезных и бесплатных онлайн академий

127 полезных и бесплатных онлайн академий

Ресурсы для objective-C программистов

Ресурсы для objective-C программистов

‘ data-modal-addimage=’
Изображение
‘ data-modal-quote=’
Добавить цитату
Отправить Отмена
‘ data-modal-preview=’
‘ data-modal-sub=’

‘ data-post_id=»301308″ data-user_id=»0″ data-is_need_logged=»1″ data-lang=»en» data-decom_comment_single_translate=» комментарий» data-decom_comment_twice_translate=» комментария» data-decom_comment_plural_translate=» комментариев» data-multiple_vote=»1″ data-text_lang_comment_deleted=’Комментарий удален’ data-text_lang_edited=»Отредактировано в» data-text_lang_delete=»Удалить» data-text_lang_not_zero=»Поле не NULL» data-text_lang_required=»Это обязательное поле.» data-text_lang_checked=»Отметьте один из пунктов» data-text_lang_completed=»Операция завершена» data-text_lang_items_deleted=»Объекты были удалены» data-text_lang_close=»Закрыть» data-text_lang_loading=»Загрузка. «>

УГМК СТРОИТ

Advertisement

МЫ РЕКОМЕНДУЕМ

→ CAREERBOX.RU – ПРОЕКТ: “КАРЬЕРА В КАРМАНЕ” → YOUTUBE.COM – ВИДЕОБЛОГ “ВРЕМЯ ВПЕРЕД!” → SMMBOX.COM – ОТЛОЖЕННЫЙ ПОСТИНГ И ПОИСК КОНТЕНТА

КАТЕГОРИИ

  • База знаний
  • Дизайн
  • Искусственный интеллект
  • Карьерное развитие
  • Лучшие работодатели
  • Маркетинг
  • Образование
  • Подготовка к экзаменам
  • Полезные сервисы и сайты
  • Портфолио и резюме
  • Профессиональные стандарты
  • Профориентация
  • Работа
  • Работа на компьютере
  • Разработка
  • Саморазвитие
  • Собеседование
  • Стажировки
  • Фриланс
  • Языки

Источник: academiait.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru