Тренинг от Google: создание программ под Android



страница1/5
Дата07.12.2017
Размер0.78 Mb.
  1   2   3   4   5
http://android-shark.ru/google-otkryvaet-uchebnyj-kurs-programmirovanija-pod-android/
Тренинг от Google: создание программ под Android
Под флагом Google стартовал обучающий курс для разработчиков приложений под Android. Тренинг представляет собой линейку уроков (часть которых еще находится в стадии разработки), освещающую разнообразные детали программирования под Android.

Среди уже доступных широкому кругу пользователей имеются: уроки по обмену различной информацией, в том числе мультимедиа, персонализация приложения, уроки, связанные с дизайном конструктивного пользовательского интерфейса. Помимо этого, рассматриваются специфические темы, связанные с оптимизацией расхода батареи, монетизацией приложений и важные моменты в создании корпоративных приложений (повышение уровня безопасности).


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

Следите за информацией на нашем сайте!



http://android-shark.ru/hirurgiya-android-vvedenie-v-reverse-engineering/
Анатомия Android: что же такое reverse engineering?
На первый взгляд может показаться, что программирование под Android и обратная разработка под него – две совершенно не соприкасающиеся сферы. Но это не совсем так. Зачастую, разрабатывая программы под Android необходимо обращаться к знаниям reverse engineering, и, наоборот, второе немыслимо без первого. К тому же, обратная разработка может послужить началом в создании чего-то уникального.
Понятие обратной разработки
Комплекс методов и приемов для изучения работы приложения – это и есть определение обратной разработки в самом общем его виде. Нас в области данного понятия будут интересовать APK-файлы (Android Package – архивные исполняемые файлы-приложения под Android, имеют формат .apk), запускающиеся в виртуальной машине Dalvik, одной из составляющей Google Android OS.
В контексте нашего изучения рассчитывается, что объект – это некая машина, алгоритмов и программ работы которой мы не знаем и можем наблюдать лишь за её поведением. Получить все компоненты мозаики при таком раскладе, тем не менее, обычно удается при анализе данных входа-выхода. Однако, для Android можно выбрать и другой способ – получение исходного кода приложения. В нашем случае этот процесс будет вполне выполним, несмотря на нередкие трудности в получении этого кода. Для этого существует множество методов, среди которых, к примеру, можно выделить обфускацию.


-------------------------------------------------------------------------------------------------------------------

Обфускация (англ. obfuscate — делать неочевидным, запутанным, сбивать с толку) – приведение исходного кода программы к виду, сохраняющему её функциональность, но затрудняющему анализ и понимание алгоритмов работы.

---------------------------------------------------------------------------------------------------------------------
Принципиальная необходимость reverse engineering на этапе разработки
Очень часто обратная разработка применяется к взлому приложений или же детальному изучению вирусов. Главные же моменты, которые будут интересовать нас:

  • первое и самое важное – изучение алгоритмов работы других программ для воссоздания протоколов и для создания дополнений и клиентов в постороннем ПО;

  • немножко неприятный, но полезный момент – копирование исходного когда из сторонних проектов в свой.

В новых статьях рассмотрим способы получения доступа к коду APK-файлов с наглядными примерами.



http://android-shark.ru/hirurgiya-android-potroshim-apk/
Анатомия Android: изучаем APK-файлы.
Итак, настало время «разобрать по косточкам» APK, или Android package, файлы. Принципиальные моменты:

  • APK-файлы являются архивными и исполняемыми,

  • Важно! Запомните, файлы данного формата – это обычные архивы, которые можно распаковать любым архиватором, они не шифруются!


Процесс распаковки APK-файлов
Стартовым моментом для обратной разработки является именно распаковка APK-файлов и самым эффективным и простым способом превращения APK-файла в обычный архив служит изменение расширения APK на ZIP и последующее извлечение его с помощью нехитрых архиваторов.
Рассмотрим наглядный пример. Для этого возьмем программу из open-source Vanilla music player. Кстати, проводить подобные опыты потрошения приложений лучше всего именно на таких программах, находящихся в свободном доступе. Обусловлено это элементарным отсутствием кодов защиты внутренностей приложений. Вернемся к нашему приложению:


Все, что мы здесь видим – стандартные файлы и папки, присутствующие в каждом архиве. Пройдемся по каждому компоненту.
Начинка APK-файлов
Директории:
1. Assets.
Данная папка не часто, но встречается внутри приложений. Что же это такое? Ресурсы, или «активы», только без идентификаторов. Чтобы получить доступ к файлам, нужно использовать класс AssetManager. Нас эта папка особо интересовать не будет, но самые любознательные могут в ней покопаться, вдруг отыщется что-нибудь интересное.

2. META-INF
Данная папка состоит полностью из метаданных, открываемых текстовым редактором. Метаданные – если просто, это сведения о данных. Вот некоторые из них:

  • MANIFEST.MF – файл манифеста с данными об APK-архиве (версия стандарта JAR, по которой создан APK, контрольные суммы SHA-1 и пути к файлам, а так же многое другое),

  • Файл с расширением SF – пути к ресурсам и их контрольные суммы.


3. res
В данной папке находятся все ресурсы приложения, разнесенные по различным директориям. Обычно каждой подпапке присваивается название под тип ресурса, который в ней лежит (к примеру, drawable – изображения и иконки, используемые в программе).

К слову, во взятом приложении Vanilla music player (по-сути, что первое попалось, то и было загружено), которое является бесплатным, в ресурсах оказалась «интересная» папка raw с конфигурациями sms-биллинга. Среди них был и файл списка коротких номеров smsc.txt:




Мораль сей басни такова: всегда скачивайте приложения для Android с официальных ресурсов.
Вот мы и добрались до самих файлов:
1. resources.arsc
Скомпонованный XML-файл, состоящий из данных о ресурсах, задействованных в приложении, и о строковых переменных. Открыть его можно текстовым редактором.
2. AndroidManifest.xml
Файл манифеста, который содержит в себе сведения об отображаемом пользователю названии приложения, необходимой версии OS, название пакета, библиотеки и права, необходимые программе, а также путь к иконке и название запускаемого класса. Данные являются важными для правильного функционирования приложения в Android.

Чтобы прочесть данный файл, необходимы утилиты apktool или AXMLPrinter2 (о них подробнее в следующем уроке).


3. classes.dex
Самая интересная часть приложения. Classes.dex – главная составляющая APK, в которой и находится программный код, выполняемый в Dalvik VM.
Изначально пишется программа на Java (получаем файлы .class), затем собираем полученные файлы утилитой Dx в модуль с одноименным разрешением – DEX, обрабатываемый виртуальной машиной. Вскрыть модуль можно программой dex2jar. В итоге, чтобы получить понятный и читабельный java-код, необходимо полученный комплект .class декомпилировать утилитой типа jad.
Данный процесс, если все операции проведены правильно, позволяет удачно «перевернуть» приложение под Android. Подробнее обо всём этом – в следующих статьях.
http://android-shark.ru/hirurgiya-android-ispolzuem-apktool-dlya-obratnoy-razrabotki-prilozheniy-android/


Поделитесь с Вашими друзьями:
  1   2   3   4   5


База данных защищена авторским правом ©grazit.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал