Android — Посоветуйте андроид декомпилятор


Содержание
Цукерберг рекомендует:  Топ 10 CodePen сниппетов недели

Декомпиляция APK-файлов онлайн

Недавно я рассказывал как с помощью бесплатных онлайн сервисов проверить Android приложения на вирусы (проверить APK-файл). Сегодня мы продолжим тему APK-файлов, и я вам покажу как декомпилировать APK файл онлайн.

Но для начала, для тех кто не в курсе, я расскажу, что такое декомпиляция APK и декомпиляция в целом, и в каких случаях это может понадобиться. Кодерам, IT-шникам и другим компьютерным гикам читать следующую главу категорический не рекомендуется! Сразу переходите к обзору онлайн-сервисов.

Декомпиляция APK онлайн

  • Предисловие
  • Что такое декомпиляция
  • Декомпилятор APK файлов онлайн
    • Онлайн сервис APK Decompilers
    • Онлайн сервис Javadecompilers
    • Онлайн сервис APK-Deguard
  • Выводы

Что такое декомпилятор или процесс декомпиляции?

Декомпилятор пытается перевести скомпилированный бинарный файл обратно в некое подобие исходного кода. Качество данной операции напрямую зависит от особенностей языка программирования исходника.

Для языка программирования Java существует большое количество декомпиляторов. Байт-код Java содержит много информации. Это облегчает декомпилятору восстанавливать изначальный код до состояния, пригодного к повторной компиляции.

Декомпиляция APK

Как вы знаете, Андроид-приложения как правило пишут на Java. С момента выхода самой первой версии Андроид перед программистами стояла задача — не только компилировать из файлов Java в APK файл для установки его в Android-устройство, но и произвести обратное действие, т.е. декомпилировать файл APK.

Зачем нужна декомпиляция APK-файла?

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

Большинству нужно именно просмотреть содержимое и для того чтобы это сделать на компьютере нужно установить много различных инструментов. Требуется наличие установленной Java-машины, Android SDK и таких инструментов как: JavaDecompiler, dex2jar и т.д. На самом деле это хоть и сложная, но самая правильная дорога, увы требующая от пользователя некоторых знаний и навыков, ну и конечно возни.

Можно ли декомпилировать Андроид-приложение как-нибудь проще?

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

Декомпиляция APK онлайн с Javadecompilers

Начнем наш обзор с онлайн сервиса Javadecompilers. Данный инструмент основан на оффлайн версии декомпилятора Jadx.

1. Заходим на сайт Javadecompilers нажимаем кнопку «Обзор» и выбираем необходимое приложение.

2. Нажимаем на кнопку «Upload and Decompile».

3. Через несколько минут (в зависимости от размера приложения) будет отображен результат, который можно скачать на компьютер нажав на кнопку «Save».

4. Вы также можете просмотреть все файлы находящиеся в директориях и скачать каждый по отдельности.

Кроме этого на сайте есть и другие инструменты. В целом сайт очень даже неплох. Однозначно в закладки!

Декомпиляция APK онлайн с APK-Deguard

Еще один интересный онлайн сервис называется APK-Deguard. Работает по тому же принципу. Заходим, загружаем на сайт необходимый файл и нажимаем на кнопку «Upload».

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

Онлайн-сервис APK-Deguard, как и предыдущий сайт, позволяет скачать исходники. В формате txt, zip и apk.

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

Цукерберг рекомендует:  Обучение - Разработка карточной игры

Декомпилятор APK Decompilers

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

По функционалу уступает предыдущим. Позволяет скачать исходники на компьютер без возможности просмотра директорий и файлов на сайте.

Выводы

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

На этом все. Сегодня вы узнали больше о строении и декомпиляции APK файлов. Я уверен вам понадобиться эта информация и эти навыки для защиты от вредоносных программ при установке подозрительных приложений на Android.

Компилятор C++ для Andro >13.10.2011, 17:00. Просмотров 62271. Ответов 16

13.10.2011, 17:00

Компилятор C++ Android
Помогите пожалуйста найти компилятор c++ android.

Компилятор (Visual C++ 6.0) в плохой совместимости с Windows 7. Посоветуйте другой компилятор
Здравствуйте! Я недавно начал заниматься С++, но мой компилятор (Visual C++ 6.0) в плохой.


Компилятор для C
Компилятор для C под XP. Какой посоветуете? Нужен для обучения. Microsoft Quick C — хороший?

Компилятор для C++
Здравствуйте, подскажите пожалуйста, где взять компилятор для C++? Нужно что-то вроде «csc.exe».

Компилятор для C++
Подскажите компилятор C++. с поодержкой всех возможностей шаблонов (желательно с редактором) Не.

Эффективный компилятор под Andro > android, arm, assembler, c++

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

Вместо 1 и 4 команд надо было MOV R2, #0xFFF

Первая команда совем не нужна

И так весь код. У другого нативного ПО также. Около трети команд можно вообще выкинуть. Отсальная часть крайне неоптимальна.

Что это было ? Заговор производителей с разрабами ? Может, я туплю и так надо ?

Ты посмотри ещё код Linux-дров! :D

А ты уверен, что они писали на асме, а не на си например? Ну а там компилятор собрал как умеет.

Не надо было. Могли быть разные причины для генерации такого кода. Все больше ядер и памяти нужно из-за тяжести высокоуровневой архитектуры.

тоже видел такое в дизасме. подтверждаю, что если весь мусор выкинуть и/или поменять на правильные инструкции — все продолжает работать, и ускоряется. но насчет причины общей тормознутости ты не прав. все дело в жабе и напрочь кривой архитектуре. ибо даже с -O0 сишный код (даже вот так криво откомпилированный) типично в разы быстрее жабы.

Замеры скорости в студию. Иначе это разговор ни о чём.

ибо даже с -O0 сишный код (даже вот так криво откомпилированный) типично в разы быстрее жабы.

Даже на сильно оптимизированных задачах.

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

Другое дело, что этого может быть мало.

Есть нормальный компилятор — IAR. Но никому ведь не надо это. Нам халявы надо, и побооольше.

А если C++ использует объекты, и не в стеке, а в хипе, то Java будет в разы быстрее: http://www.balancer.ru/tech/forum/2008/08/t63003—proizvoditelnost-yazykov-ob.

Если из кода убрать часть команд не меняя логику, он станет работать быстрее в любом случае

Не в любом. Возможны тормоза на отсутствии выравнивания. Компиляторы нередко NOP подсовывают для оптимизации скорости выборки.

Скорее всего на си и писали. Меня это удивляет на фоне заявлений, что C/C++ компилторы генерируют код эффективней, чем мог бы это сделать человек на асме.

А, вы драйверы на С++ пишете. Понимаю. Да нет проблем, только зачем вы стебаетесь над кодом Линукс дров ?

Машина в принципе не работает эффективнее человека. Она делает это быстрее.

Не в любом. Возможны тормоза на отсутствии выравнивания

Тормозов на отсутсвии выравнивая нет со времён прошлого века. Современные системы, либо вырабатывают на невыровненном коде исключение, либо им пофиг, молотят одинаково как выровненный, так и невыровненный код.

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

Весь мир делится на тех кто уже пытался перехитрить компилятор руками и на тех кто пишет посты на лоре :)

Меня это удивляет на фоне заявлений, что C/C++ компилторы генерируют код эффективней, чем мог бы это сделать человек на асме.

Многие пытались, не вышло. Тут нужно очень много проводить замеров и хорошо разбираться в предмете.

Машина в принципе не работает эффективнее человека.

В этом утверждении вообще логики нет.

не может быть такой команды, операнд слишком длинный

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

Что же такого эффективного в индивидуальных случаях, производительность на которых даже не с чем померить потому что они индивидуальны :)

Потому что все люди разные. Компиляторы разрабатывают умные дядьки. А вот оптимизацией занимаются все кому не лень.

Впрочем, конкретно с arm я не удивлюсь если компилеры серьёзно косячат. А вот с x86 можно почитать очень много историй как люди пытались превзойти компилер. Получается редко. Да, tailgunner ?

Почему ? И там и там 12 бит:
0xFF0: 111111110000
0xFFF: 111111111111

Я говорил не конкретно о компиляторах, а вообще о применении техники.

Ну это понятно, что всегда можно найти человека глупее машины.

в первом случае работает за счет barrel shift. 12 бит много, должно быть 8.

«Неоптимальна» это чем-то материальным типа тестов подтверждается ? Армовский асм не знаю, но для 86-го


Посадили JAVA-мартышек за C и вот что вышло.

Сплошные goto? :D

Кстати, в свете последних российских событий… Должен ли адепт ЛММ писать спагетти-код?

всегда можно найти человека глупее машины.

Вот что мне в тебе не нравится так это периодические перегибы. Ты даешь какие-то очень странные ответы. Вот и сейчас ты пишешь что «при желании можно найти дурака». А речь-то идёт об одной из сложнейших областей — оптимизации компиляторов. Тут дураками будет 99.9% лора. Причём, для каждого проца свои оптимизации. То что работает для Intel может затупить на AMD, например. Поэтому и существуют всякие -march и куча других флагов. И надо быть Сильвией чтобы хотя бы приблизительно понимать как это всё вместе работает.

1/2 это как раз набежавшие округлённые «разы» — средне один к двум. Для С vs Java на том-же сайте типичное отношение 1/3 в пользу С.

впрочем, это к теме не относится.

а к теме — если из asm листинга для arm, выкинуть или заменить на первый взгляд бессмысленные команды, то может или перестать работать или начать тормозить. На то он и arm :)

Если из кода убрать часть команд не меняя логику, он станет работать быстрее в любом случае

Это все проблемы gcc, увы. У шланга говорят на выхлопе лучше, но не намного.

вообще-то вполне набегают, или вы труЪ настолько, что не ходите по собственным ссылкам?

деточка, ты же треснешь.

С этим я и не спорил. Я только сказал, что разбирающийся в данной конкретной области человек сможет оптимизировать лучше, чем компилятор. Другое дело, что иногда область больше, чем способна вместить память человека.

xor ax,ax
dec ax
вместо mov ax,FFFFh
очень даже оптимально.

Было 25 лет назад. Прикинь, на дворе 2013-й год. 1993-й год, когда выпустили Pentium, давно прошёл. Прошёл.

Только когда «два ореха — это куча».

Как уже выше сказали, 0xfff не является допустимой константой. А 0xf000000f, например, вполне.

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

По оптимизации IAR на ARM-ах или эквивалентен GCC или часто проигрывает.

эффективнее man intel c++ compiler

Было 25 лет назад. Прикинь, на дворе 2013-й год.

А точно на x86 сегодня загрузка константы — это два такта (или один такт на распараллеливании)?

Те которые стороние или те которые в самом ядре?

И надо жрать фенилбут киллограмами чтобы хотя бы приблизительно понимать как это всё вместе работает.

Машина умеет только повторять заданную программу. Она не адаптивна

Как там в начале 20-го века у вас дела? Первые работы по нейросетям опубликовали уже, или пока нет?

Машина в принципе не работает эффективнее человека.

Системы автонаведения и промышленные роботы вынуждены с вами не согласиться.

А точно на x86 сегодня загрузка константы — это два такта

На x86 сегодня команды потактово считают только съехавшие с катушек полностью ретрограды и нахватавшиеся интернета идиоты. Суперскалярная архитектура. Подъём ! Нет ни одного справочника с растактовкой на процессор выше Пентиума и не может быть.

не может быть такой команды, операнд слишком длинный

О! Я даже не обратил внимание :)

Не знаю, что такое куча в бытовом смысле. Я знаю что такое «множество». Два ореха — это множество.

А вообще-то, разница в 4! раза — это мягко говоря, до. ну вы поняли.

Elapsed secs Code

C++ g++ 5.98 6.00 185,560 648 0% 1% 1% 100%

Java 7 23.29 23.30 557,404 1284 0% 0% 0% 100%

И это при: 648 байт кода на плюсах против 1284 байт кода на Яве.

Да даже разница в 2 раза — это просто песец какие тормоза. Т.е. считайте, при такой разнице, стоимость вашего смартфона уменьшилась на четверть, а то и на треть (ведь вы заплатили за мощный процессор, не так ли?), только благодаря дятлам-программерам.

Она ещё на Pentium появилась. И там xor&dec был всё ещё выгоднее прямой загрузки констант. Кстати, было это не 25 лет назад, а 15.

Как я понимаю, по сегодняшним растактовкам (суперскалярная архитектура ни разу от них не избавляет) у тебя данных нет, одна вера?

Первые работы по нейросетям опубликовали уже, или пока нет?

Нейросети сами по себе не работают. Их обучают на конкретных примерах, и они неспособны самостоятельно принимать решения в трудных вопросах. Экспертные системы — это просто способ упростить рутинную работу специалистов, решая простейшие задачи и давая специалистам время заниматься сложными (которые в будущем перейдут этим же системам).


30 шикарных инструментов, чтобы писать под Andro >
    Подборки, 21 июля 2020 в 10:39

Ниже перечислены инструменты, использование которых делает разработку приложений под Andro >

FlowUp

Поможет отслеживать общую производительность приложения и лучше понимать значения различных ключевых метрик продуктивности, таких как FPS (frames per second — кадры в секунду), использование памяти, загрузка центрального процессора, использование диска и многие другие показатели уже выпущенного в продакшн приложения.

UPD По состоянию на февраль 2020 года сервис не доступен.

Stetho

Мощная платформа с открытым кодом для отладки приложений под Android, разработанная Facebook. Этот инструмент делает отладку нативных Android-приложений такой же простой, как отладка веб-страниц с использованием Chrome Developer Tools, и помогает с легкостью осуществлять различные действия, например, просмотреть полную иерархию View, проверить базу данных SQLite, отследить сетевую активность и прочее.

JRebel для Android

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

Gradle Please

Если вы используете Gradle в качестве системы сборки в Android Studio, то можете добавить любую стороннюю библиотеку в свой проект всего лишь одной строкой кода. Но как вам получить эту строку быстро и просто? Вот здесь-то и приходит на помощь этот милый маленький инструмент.

Android Asset Studio

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

LeakCanary

Мощный инструмент для обнаружения утечек памяти, разработанный Square. Установленный однажды, он будет автоматически запускаться, присылая вам уведомления о каждом случае утечки памяти в вашем приложении с полным отслеживанием стека.

DryRun

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

Slides Code Highlighter

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

InstaBug

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

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

Android Debug Database

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

Source Tree

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

GenyMotion

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

Android Wifi ADB

С этим маленьким, но удаленьким инструментом вы можете запускать приложение из Android Studio на девайсе, используя WiFi. Для этого не нужно держать девайс подключенным кабелем к компьютеру. Вы можете наслаждаться опытом беспроводной разработки и тестирования приложений.

FindBugs

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

Drawable Optimizer

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

Scalpel

Этот инновационный инструмент предоставляет вам визуальную репрезентацию 3D-макета всего приложения целиком. Новичкам это может показаться особенно вдохновляющим, поскольку открывает абсолютно новую перспективу восприятия своих макетов.

BlockCanary

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

NimbleDroid

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

Methods Count

Кто же не любит добавить каких-нибудь вкусных библиотек в проект, улучшив его функциональность? Однако при этом все время приходится думать о пресловутой проблеме предела количества методов в 65536. Для этого может пригодиться этот чудесный инструмент, дающий ясное представление о количестве методов, которое каждая библиотека привносит в ваше приложение.

UPD По состоянию на февраль 2020 года сервис не доступен.


Android Tool for Mac

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

DevKnox

Внутри наших приложений прячутся несколько слабых звеньев безопасности, о которых мы чаще всего даже не подозреваем, и может потребоваться довольно много опыта и усилий для того, чтобы понять различные критичные аспекты безопасности и делать пуленепробиваемые приложения. Но этот отличный инструмент может помочь вам выявлять дефекты системы безопасности так же просто, как использовать спеллчекер в вашей IDE.

JSONSchema2POJO

Все мы встречались с такими случаями, когда у нас есть JSON и мы хотим сделать из него аналогичный java-объект. Это довольно скучно и занимает много времени, и тут-то вам и поможет этот крутой инструмент. Все, что вам нужно сделать, — вставить ваш JSON, и инструмент автоматически сгенерирует вам все POJO-классы.

ADB IDEA

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

Key Promoter

Мы все знаем, насколько полезны и быстры шорткаты, но существует так много комбинаций для такого большого количества действий, что их все так сложно запомнить… Именно в этот момент на сцену выходит этот прекрасный плагин, делая игру с сочетаниями клавиш намного проще и возвращая в нее весь фан.

Fabric

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

ClassyShark

С ClassyShark вы можете просмотреть любой файл Android APK и найти в нем много полезной информации, например, классы, ресурсы, манифест, зависимости, количество dex-методов и многое другое. Инструмент даст представление о том, что и как делают другие приложения.

APK DeGuard

Это один из лучших и, возможно, самый аккуратный деобфускатор для приложений под Android. Он использует машинное обучение для анализа различных приложений, и, будьте уверены, каждый раз он выдает настолько хороший результат, насколько это возможно.

Codota

Довольно часто мы встречаем препятствия, разрабатывая что-то новое, и нам нужно проверить несколько быстрых примеров кода на Stack Overflow или GitHub. Этот замечательный инструмент может позволить вам сделать это, не покидая IDE.

Material Design Icon Generator

Этот плагин для Android Studio позволяет получить доступ ко всем иконкам Material Design и кастомизировать их самостоятельно прямо в вашей IDE, экономя много времени в процессе разработки приложений.

Декомпиляция и Компиляция APK приложения Andro >

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

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

Содержание:

  1. Необходимые инструменты
  2. Настройка
  3. Декомпиляция приложения с помощью Apktool через командную строку
  4. Компиляция приложения с помощью Apktool через командную строку
  5. Что необходимо чтобы работать с системными APK
  6. Графические надстройки утилиты ApkTool

Декомпиляция и Компиляция APK приложения Android
Необходимые компоненты

  1. Java JDK — среда разработки;
  2. ApkTool — программа декомпилятор;
  3. ApkTool.bat — bat файл;
  4. Sign Android — подпись приложения APK.

Настройка Java

После установки Java JDK , необходимо, добавить ее в переменную Windows. Если кто не понял официальное куроводство то,

Скопируйте путь Java JDK:

Перейдите в меню Дополнительные настройки:


(Мой) Компьютер ->Свойства системы->Дополнительные параметры системы->Дополнительно->Системные переменные->Правка

Java JDK настроена!

Настройка ApkTool

  1. Создать папку на диске C:\ и в нее переместить файлы apktool_x_x.jar и apktool.bat
  2. Файл apktool_x_x.jar переименовать в apktool.jar

Если появилось наподобие такой вывод информации, то все сделано правильно.

Декомпиляция APK

Чтобы декомпилировать приложение, скопируйте файл APK приложения в папку где находится apktool, далее необходимо выполнить вот что, в командной строке ввести команду:

apktool d название.apk

apktool d browser.apk

Декомпиляция APK завершена.

После того как вы отредактируете или русифицируете APK, его надо компилировать обратно.

Компиляция APK

Вводим в командной строке:

apktool b имя_проекта

После чего перейдите в папку проекта ( в данном случае папка browser) и вы увидете две новые папки:

  • build
  • dist

В папке dist будет находится готовое приложение:

Если папки dist не обнаружили, значит apktool не смог собрать редактируемый проект, причиной тому может быть то, что имения которые вы вносили(«поломали») не позволяют собрать приложение apk.

После компиляции приложения apk его необходимо подписать.

Подпись APK

  1. Для этого Вам надо разархивировать архив Sign Android;
  2. Скопировать готовое приложение в папку с распакованным Sign Android;
  3. Потянуть приложение на файл Sign_APK.bat после чего приложение будет подписано!

Готовое подписанное приложение будет носить название apk_signed.apk

Работа с системными APK

Для того чтобы модифицировать системные приложения необходимо прежде всего необходимо скормить программе APKTOOL системный файл framework -res.apk который находиться в системном разделе Android:

/system/framework/framework -res.apk

Для того чтобы скормить Apktool данный файл необходимо, ввести команду:

apktool if framework -res.apk

Учитывайте что, команду нужно вводить относительно пути расположения, то есть если файл framework -res.apk находиться в папке C:\primer, то команда будет выглядеть следующим обзором:

apktool if С:\primer\framework -res.apk

Также для того чтобы можно было модифицировать системные файлы прошивка должна быть вначале Deodex-ирована.

Теперь как это можно все упросить! (не использовать командную строку)

Скачайте приложение SmartApkTool, данное программа имеет графический интерфейс и очень легкая в использование. Автор данной программы мой хороший друг Никита Коровкин (на данный момент работает в Surfingbird)! за что ему огромное Спасибо!

Как пользоваться SmartApkTool

Прежде всего вам надо установить и настроить Java JDK и Apktool как указано выше.

Откройте программу SmartApkTool


Если Вам необходимо Декомпилировать приложение в SmartApkTool, то выберите данный пункт и необходимое приложение

Если компилировать, то

и выбрать файл в проекте apktool.yml

Для подписи приложения APK, нажать обзор, выбрать приложение и подписать

Все так легко и просто!

Альтернативный вариант

Для тех кому не понравился SmartApkTool, есть альтернатива Android MultiTool

Декомпиляция и отладка Andro > 07:40 / 20 Апреля, 2015

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

В статье будет рассказано о том, как подключить отладчик к Android-приложению и пошагово пройти через вызываемые методы, используя информацию, полученную после декомпиляции приложения. Хорошая новость в том, что для отладки не требуются привилегии суперпользователя. Описанные техники могут быть очень кстати во время пентестов мобильных приложений, поскольку мы можем «проникнуть» в код во время работы программы, получить и записать информацию, к которой обычно у нас нет доступа. Например, можно перехватить трафик перед шифрованием и на лету получить ключи, пароли и любую другую ценную информацию. Статья будет полезна пентестерам и разработчикам мобильных приложений, желающих получить более глубокие знания о возможных атаках на платформе Android.

Требования к тестовой среде:

  • Операционная система: Windows / Mac OS X / Linux
  • Java (рекомендуется версия 1.7)
  • >В статье будет использоваться следующая конфигурация: Windows 8, Android Studio и IntelliJ IDEA. Устройство: Nexus 4 с Android версии 4.4.4. Рекомендую все утилиты добавить в переменную окружения PATH, чтобы облегчить и ускорить доступ к этим инструментам.

Android application package (APK), используемый в статье, можно скачать отсюда: com.netspi.egruber.test.apk.

Инструкция ниже поможет вам подготовить устройство для экспериментов.

Активация раздела Developer Options

Для начала на Android-устройстве должна быть разрешена отладка через USB (опция USB debugging), что позволит «общаться» с девайсом при помощи инструментов из набора Android SDK. Однако перед этим необходимо активировать раздел Developer options. На устройстве зайдите в раздел Settings > About Phone и кликните несколько раз на пункт Build Number, после чего должно появиться сообщение о том, что раздел Developer options активирован.

Рисунок 1: Для того чтобы активировать раздел Developer options, необходимо несколько раз кликнуть на Build number

Разрешение отладки через USB

Чтобы разрешить отладку через USB-порт, зайдите в раздел Settings > Developer options и отметьте флажок напротив USB debugging.

Рисунок 2: Включение опции USB debugging

Подключение устройства и запуск ADB

После подключение устройства к компьютеру через USB-порт, должно появиться сообщение «USB debugging connected on the device». Также следует проверить, можно ли подключиться к устройству при помощи приложения Android Debug Bridge (ADB), входящего в состав Android SDK (пакет Android SDK Platform-tools). В командной строке введите следующую команду:

Устройство должно отобразиться в списке.

Рисунок 3: Список подключенных устройств

Если устройство не отобразилось в списке, то наиболее вероятная причина в некорректно установленных драйверах (в Windows). В зависимости от устройства драйвер можно найти либо в Android SDK, либо на сайте производителя.

Проверка приложения на возможность отладки

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

Первый способ – запустить Android Device Monitor, входящий в состав Android SDK (в папке tools). В Windows файл называется monitor.bat. При открытии Android Device Monitor устройство отобразится в разделе Devices.

Рисунок 4: Приложение Android Device Monitor

Если какое-либо приложение на устройстве можно отлаживать, это приложение также отобразится в списке. Я создал тестовую программу, но список пуст, поскольку программу отлаживать нельзя.

Второй способ проверить приложение на возможность отладки – исследовать файл AndroidManifest.xml из пакета приложения (APK, Android application package). APK представляет собой zip-архив, содержащий всю информацию, необходимую для запуска приложения на Android-устройстве.

Всякий раз, когда приложения загружается из Google Play Store, также загружается и пакет приложения. Все загруженные APK-файлы обычно хранятся на устройстве в папке /data/app. Если у вас нет прав суперпользователя, вы не сможете получить список файлов из директории /data/app. Хотя, если вы знаете имя APK-файла, можете скопировать его при помощи утилиты adb. Чтобы узнать имя APK-файла, введите следующую команду:

Появится командная строка устройства. Затем введите следующую команду:

pm list packages -f

Отобразится список всех пакетов на устройстве.

Рисунок 5: Перечень пакетов на устройстве

Глядя на список, находим тестовое приложение.

Рисунок 6: Пакет созданного тестового приложения (выделено белым)

Теперь необходимо скопировать файл пакета. Открываем шелл и вводим следующую команду:

adb pull /data/app/[.apk file] [location]

Рисунок 7: Копируем APK-файл с устройства в систему

Теперь нужно открыть файл пакета и исследовать содержимое AndroidManifest.xml. К сожалению, мы не можем просто так распаковать архив, поскольку APK-файл закодирован в бинарном формате. Для раскодировки чаще всего используется утилита apktool, хотя я использую APK Studio, поскольку у этого приложения дружелюбный графический интерфейс. Далее в статье будет рассказываться об APK Studio.

В APK Studio кликните на маленькую зеленую иконку, задайте имя проекту и укажите путь к APK файлу. Затем укажите пусть для сохранения проекта.


Рисунок 8: Создание нового проекта в APK Studio

После открытия APK выберите файл AndroidManifest.xml и посмотрите параметры тега application. Если флаг android:debuggable отсутствует (или присутствует, но установлено значение false), значит, приложение отлаживать нельзя.

Рисунок 9: Содержимое файла AndroidManifest.xml

Модификация файла AndroidManifest.xml

При помощи утилиты apktool или APK Studio мы можем модифицировать файлы и упаковывать содержимое обратно в пакет. Сейчас мы изменим файл Andro .

Рисунок 10: Изменяем содержимое тега application

После добавления флага кликаем на иконку «молоток» и заново собираем пакет. Пересобранный пакет будет находиться в директории build/apk.

Рисунок 11: Повторная сборка пакета завершилась успешно

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

Теперь нужно установить пересобранный пакет. Вначале удаляем старое приложение при помощи следующей команды:

adb pm uninstall[package name]

Затем устанавливаем новый пакет:

adb install [.apk file]

Также можно удалить и установить пакет одной командой:

adb install -r [.apk file]

Рисунок 12: Установка пересобранного пакета

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

Рисунок 13: Теперь пересобранное приложение можно отлаживать

Настройка среды разработки (IDE)

Теперь к пересобранному приложению можно подцепить отладчик, но вначале нужно создать проект в среде разработки (в статье используется IntelliJ IDEA). Создаем новый проект. В поле Application name указываем произвольное имя. В поле Package name указываем имя, в точности совпадающее с иерархией папок пересобранного пакета.

Рисунок 14: Создание нового проекта в IntelliJ IDEA

Обычно имя APK-файла совпадает со структурой папок, хотя, если вы не уверены, в APK Studio проверьте иерархию директорий до папки, где находятся файлы приложений. В моем случае имя и структура папок полностью совпадают (com.netspi.egruber.test).

Рисунок 15: Иерархия директорий тестового приложения

Снимите флажок «Create Hello World Activity» и завершите создание проекта (все остальные параметры остаются по умолчанию). Новый проект должен выглядеть примерно так:

Рисунок 16: Иерархия папок и файлов нового проекта

После создания проекта нужно добавить исходный код из APK-файла для того, чтобы отладчик «знал» имена символов, методов, переменных и т. д. Хорошая новость в том, что Android-приложения можно декомпилировать практически без потери качества (исходный код будет совпадать с оригиналом). После декомпиляции исходный текст импортируется в среду разработки (IDE).

Получение исходных текстов из пакета приложения

Для начала необходимо преобразовать APK в jar-файл. Затем мы при помощи java-декомпилятора получим исходный текст приложения. Преобразование в jar будем делать при помощи утилиты dex2jar. У dex2jar есть файл d2j-dex2jar.bat, используемый для конвертирования APK в jar. Синтаксис команды довольно прост:

d2j-dex2jar.bat [.apk file]

Рисунок 17: Преобразование APK в jar

Затем открываем или перетаскиваем полученный файл в JD-GUI (это java-декомпилятор).

Рисунок 18: Структура jar-файла

Jar-файл должен отобразиться в виде иерархической структуры, внутри которой находятся java-файлы с читабельным исходным кодом. Заходим в File > Save All Sources, чтобы упаковать все исходные тексты в zip-архив.

Рисунок 19: Сохранение исходных текстов декомпилированного файла

После сохранения исходных текстов распаковываем архив в отдельную директорию.

Рисунок 20: Распакованный архив

Теперь нужно импортировать обе директории в созданный ранее проект в IDE. В IntelliJ заходим в папку src и копируем туда содержимое распакованного архива (две директории).

Рисунок 21: Обе папки скопированы в директорию src

Возвращаясь в Intellij, видим обновленный проект.

Рисунок 22: В проекте появились исходные тексты

Если мы кликнем на какой-нибудь элемент из списка, то увидим исходный текст. Как видно на скриншоте ниже (исходный текст класса LoginActivity), исходный код обфусцирован при помощи ProGuard.

Рисунок 23: Обфусцированный исходный текст класса LoginActivity

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


Рисунок 24: Поставлена точка останова на обфусцированный метод

Как только появилась точка останова, подключаем отладчик к процессу на устройстве, кликнув на иконку с экраном в правом верхнем углу (на вашей IDE иконка может отличаться).

Рисунок 25: Подключаем отладчик к процессу

Далее вам будет предложено выбрать процесс, к которому нужно подключиться. Будут отображены только процессы с флагом andro .

Рисунок 26: Перечень процессов для подключения отладчика

После выбора процесса отладчик подсоединится к устройству.

Рисунок 27: Отладчик подключен к процессу, запущенному на устройстве

В текстовое поле я буду вводить число 42 (если помните, на соответствующем методе стоит точка останова).

Рисунок 28: В текстовое поле вводим число 42

После нажатия на кнопку «Enter Code» выполнение приложения прервется на точке останова, поскольку отладчик «осведомлен», какой метод вызывается на устройстве. Скомпилированное Android-приложение содержит отладочную информацию (например, имена переменных), доступную любому отладчику, совместимому с Java Debug Wire Protocol (JDWP). Если в приложении разрешена отладка, отладчик, совместимый с JDWP (в эту категорию попадает большинство отладчиков идущих в составе сред разработки для Java), сможет подсоединиться к виртуальной машине Android-приложения, а затем считывать и выполнять отладочные команды.

Рисунок 29: Сработала точка останова

На скриншоте ниже видно число, которое ранее мы ввели в текстовом поле.

Рисунок 30: Перечень переменных текущего экземпляра класса

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

Подписывайтесь на каналы «SecurityLab» в Telegram и Яндекс.Дзен, чтобы первыми узнавать о новостях и эксклюзивных материалах по информационной безопасности.

Декомпиляция и Компиляция APK приложения Andro > Тема в разделе «Andro >24/10/14 .

Последние новости

Новые сообщения профиля

Вертикальные Full HD обои на телефон. Официальная страница проекта «Full HD Обои» на форуме fullhub.ru

Переходим на сайт и читаем всю актуальную инфу medicina-treat.ru

Уважаемые, если вас во мне что-то смущает не надо сразу сообщать об этом мне, попробуйте пережить потрясение самостоятельно.

всем привет . помогите разобраться , после рутирования планшета он не загружается .не могу залить прошивку

У меня симкарта не работает после прошивки что делать?

Есть ли компилятор для Андроид в бинарный код?

Как я понял Java компилируются в байт-код, который потом кушает JVM.

Немного не так. В основе процесса приложения лежит не JVM, а Dalvik. Ни на что не смотря, резкие отличия от JVM есть.
Только Dalvik уже отжил свое, английская статья в вики повествует о так называемом Android Runtime (ART), который присутствует в Android начиная с версии 4.4, а с 5.0 и вовсе вытеснил Dalvik. Подробнее о принципах работы ART можно почитать снова в английской вики. Только не стоит думать что ELF может содержать исключительно и только инструкции для реальных процессоров. ELF — это просто контейнер исполняемого кода.

Теперь обратимся к коду.

https://android.googlesource.com/platform/art/+/ma.
Это код утилиты dex2oat, которая и производит преобразование из DEX в ELF.

https://android.googlesource.com/platform/art/+/ma.
Вот тут есть некоторые пояснения самих данных и принципов их хранения в ELF формате.

Это всё не говорит о том, что после обработки DEX в ELF будут храниться исключительно инструкции реального процессора. Это все говорит только о том, что в ELF формате хранится уже подготовленный и оптимизированный код, не требующий докомпиляции и оптимизации во время своего запуска.

Так и зачем смущаться этого всего? Разницы мало, для виртуального там процессора инструкции или для реального. Все уже оптимально собрано.

Далее, касательно пресловутой Native activity.

https://github.com/android/platform_frameworks_bas.
Чтобы NativeActivity смогла загрузить свой низкий уровень, в AndroidManifest.xml нужно описать мету вот с этим именем и именем .so файла в качестве значения.

https://github.com/android/platform_frameworks_bas.
Вот тут производится загрузка низкого уровня. Как видно, это делается из метода onCreate самой NativeActivity. То есть, это самое начало жизненного цикла Activity.

Иными словами, непосредственно для Android нельзя создать пользовательское приложение без задействования кода высокого уровня.

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

Хочу начать разрабатывать моб. приложения, кроссплатформерность не интересует. Гонюсь за быстродействием.

Не спеши гнаться за быстродействием, по всей видимости тебе и C++, как инструмент разработки, не нужен, т.к. вообще не ясно для чего и зачем ты решил его использовать.
Инструменты выбирают исходя из целей. Цели пока не обозначены. Быстродействие не может быть целью, т.к. это только условие достижения лишь некоторых целей.
Во многих случаях в мобильной разработке максимальное быстродействие дает именно использование основного предлагаемого языка программирования. Лично я предлагаю тебе сперва уделить 5-6 месяцев (но лучше год и более) ежедневному чтению документаций, книг и исходного кода как открытых проектов, так и репозиториев разработчиков мобильных платформ.

The NDK may not be appropriate for most novice Android programmers who need to use only Java code and framework APIs to develop their apps.

Android — Посоветуйте андроид декомпилятор

Очень редко у пользователя устройств под управлением Andro >

Кому это нужно

Как правило, начинающим реверсерам или исследователям. Этим людям интересно ковырять приложения сторонних разработчиков для разных целей. От банального интереса как реализовано, до поиска уязвимостей в приложении. Также у направления есть и более низкие интересы, причем эти интересы наиболее распространенные: взлом приложения для использования без покупки, либо с целью читерства.


Теория

В большинстве случаев декомпиляция приложения не вызывает особых проблем. Для каждой задачи, которую нужно проделать, написаны программы, работающие на любой платформе где можно установить Java Runtime. Итак, суть декомпиляции заключается в следующем: Вы можете либо просматривать декомпилированный код виртуальной машины Dalvik, а также все файлы ресурсов приложения (манифест, разметка и т.д.). А можете преобразовать код Dalvik в код Java. В первом случае программе передается путь к apk-файлу. Во втором из apk-файла (который по сути обычный архив) нужно вытащить файл. Этот файл содержит весь исполняемый код для машины Dalvik (да, весь код объединен в один файл). Специальная программа преобразует код Dalvik в код Java, который потом можно открыть любым java-декомпилятором. Казалось бы, второй способ предпочтительнее, но есть одна хитрость. И заключается она в том, что некоторые участки кода невозможно конвертировать, либо логика кода становится далека от того, как писал разработчик. Для простых программ этого конечно достаточно, но для понятия всего кода конечно обращать внимание стоит и на Java, и на Dalvik. Давайте же наконец поговорим о том, что конкретно нам нужно делать для декомпиляции Android приложений.

30 шикарных инструментов, чтобы писать под Andro >
    Подборки, 21 июля 2020 в 10:39

Ниже перечислены инструменты, использование которых делает разработку приложений под Andro >

FlowUp

Поможет отслеживать общую производительность приложения и лучше понимать значения различных ключевых метрик продуктивности, таких как FPS (frames per second — кадры в секунду), использование памяти, загрузка центрального процессора, использование диска и многие другие показатели уже выпущенного в продакшн приложения.

UPD По состоянию на февраль 2020 года сервис не доступен.

Stetho

Мощная платформа с открытым кодом для отладки приложений под Android, разработанная Facebook. Этот инструмент делает отладку нативных Android-приложений такой же простой, как отладка веб-страниц с использованием Chrome Developer Tools, и помогает с легкостью осуществлять различные действия, например, просмотреть полную иерархию View, проверить базу данных SQLite, отследить сетевую активность и прочее.

JRebel для Android

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

Gradle Please

Если вы используете Gradle в качестве системы сборки в Android Studio, то можете добавить любую стороннюю библиотеку в свой проект всего лишь одной строкой кода. Но как вам получить эту строку быстро и просто? Вот здесь-то и приходит на помощь этот милый маленький инструмент.

Android Asset Studio

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

LeakCanary

Мощный инструмент для обнаружения утечек памяти, разработанный Square. Установленный однажды, он будет автоматически запускаться, присылая вам уведомления о каждом случае утечки памяти в вашем приложении с полным отслеживанием стека.

DryRun

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

Slides Code Highlighter

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

InstaBug

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

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

Android Debug Database

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

Source Tree

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

GenyMotion

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

Android Wifi ADB

С этим маленьким, но удаленьким инструментом вы можете запускать приложение из Android Studio на девайсе, используя WiFi. Для этого не нужно держать девайс подключенным кабелем к компьютеру. Вы можете наслаждаться опытом беспроводной разработки и тестирования приложений.

FindBugs

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

Drawable Optimizer

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

Scalpel

Этот инновационный инструмент предоставляет вам визуальную репрезентацию 3D-макета всего приложения целиком. Новичкам это может показаться особенно вдохновляющим, поскольку открывает абсолютно новую перспективу восприятия своих макетов.

BlockCanary

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

NimbleDroid

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

Methods Count

Кто же не любит добавить каких-нибудь вкусных библиотек в проект, улучшив его функциональность? Однако при этом все время приходится думать о пресловутой проблеме предела количества методов в 65536. Для этого может пригодиться этот чудесный инструмент, дающий ясное представление о количестве методов, которое каждая библиотека привносит в ваше приложение.

UPD По состоянию на февраль 2020 года сервис не доступен.

Android Tool for Mac

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

DevKnox

Внутри наших приложений прячутся несколько слабых звеньев безопасности, о которых мы чаще всего даже не подозреваем, и может потребоваться довольно много опыта и усилий для того, чтобы понять различные критичные аспекты безопасности и делать пуленепробиваемые приложения. Но этот отличный инструмент может помочь вам выявлять дефекты системы безопасности так же просто, как использовать спеллчекер в вашей IDE.

JSONSchema2POJO

Все мы встречались с такими случаями, когда у нас есть JSON и мы хотим сделать из него аналогичный java-объект. Это довольно скучно и занимает много времени, и тут-то вам и поможет этот крутой инструмент. Все, что вам нужно сделать, — вставить ваш JSON, и инструмент автоматически сгенерирует вам все POJO-классы.

ADB IDEA

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

Key Promoter

Мы все знаем, насколько полезны и быстры шорткаты, но существует так много комбинаций для такого большого количества действий, что их все так сложно запомнить… Именно в этот момент на сцену выходит этот прекрасный плагин, делая игру с сочетаниями клавиш намного проще и возвращая в нее весь фан.

Fabric

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

ClassyShark

С ClassyShark вы можете просмотреть любой файл Android APK и найти в нем много полезной информации, например, классы, ресурсы, манифест, зависимости, количество dex-методов и многое другое. Инструмент даст представление о том, что и как делают другие приложения.

APK DeGuard

Это один из лучших и, возможно, самый аккуратный деобфускатор для приложений под Android. Он использует машинное обучение для анализа различных приложений, и, будьте уверены, каждый раз он выдает настолько хороший результат, насколько это возможно.

Codota

Довольно часто мы встречаем препятствия, разрабатывая что-то новое, и нам нужно проверить несколько быстрых примеров кода на Stack Overflow или GitHub. Этот замечательный инструмент может позволить вам сделать это, не покидая IDE.

Material Design Icon Generator

Этот плагин для Android Studio позволяет получить доступ ко всем иконкам Material Design и кастомизировать их самостоятельно прямо в вашей IDE, экономя много времени в процессе разработки приложений.

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих