Comments 42
Хорошая работа проделана. Для быстрой доработки проектов — очень хороший вариант.
Спасибо за статью. Несколько раз пытался eclipse или idea разворачивать и запускаться. Ни разу не увидел результата — идут ошибки.
Надеюсь, по вашему мануалу пройду до конца. Если что, глупые вопросы можно будет позадавать?
Да, пожалуйста, всегда буду рад пообщаться на тему IT. Пишите в личку или на почту
А в чем сложности? Какие ошибки? Я лично использую IDEA и мне требуется минимум усилий и времени что бы повторить все вышеописанное: новый проект -> визуальный редактор (добавим textLabel) -> настройка ADT -> профит!

Автору уважение, разработка должна быть whitebox, пусть материал и не для повседневного применения, но я считаю что нужно понимать что именно происходит/кроется за кнопкой image
Спасибо за проведенную работу, сэкономили кучу времени.
P.S.:
В статье про пересборку андроид аппа из блокнота видеть фразу «Если вы начинающий пользователь Windows» очень странно.
Я пытался объяснить всё максимально просто — чтобы даже начинающий пользователь справился, несмотря на кажущуюся сложность
UFO landed and left these words here
Я так сперва тоже хотел сделать. Однако Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]. Насколько я понял, когда мы заново генерируем ключ — нам нужно сначала полностью удалить приложение, а потом установить. Поправьте, если не прав.
UFO landed and left these words here
Для чистоты эксперимента. Скрипт полностью пересобирает проект, имея только исходные файлы. Всё-таки это больше учебный и тренировочный проект. Хотя при желании можно убрать из скрипта пару строчек кода — и тогда переустановка должна работать
UFO landed and left these words here
Действительно. Тогда можно выделить тот код для создания ключа в ещё один bat-файл — createKey.bat, который будет запущен только 1 раз. И — соответственно — не удалять его при пересборке.
Статья хороша, не хватает разве что разъяснений параметров утилит. Потому что без обращения к справке строка

call %AAPT_PATH% package -f -m -S %DEV_HOME%/res -J %DEV_HOME%/src -M %DEV_HOME%/AndroidManifest.xml -I %ANDROID_JAR%

Это магия. Что за -f? -m? -S? -M?

Можете считать это придиркой, сама статья мне понравилась. Но чувство недосказанности виде «сами ищите в мануале, что это было» остаётся.
Всегда интересовало, почему HelloWorld получается таким объёмным? Простейший Hello World apk весит под 500kb, хотя в маркете куча приложение и на 40kb. Как они это делают?
Собственно, HelloWorld, созданный по инструкции в этой статье, весит 4,13 КБ — для AndroidTest.signed.apk. А без подписи — AndroidTest.unsigned.apk — всего 2,20 КБ.
Отлично, буду пробовать! Может подскажете, как мне наиболее эффективно уменьшить размер результирующей APK в уже готовом Eclipse-проекте?
Просмотрите папку res на предмет избыточных ресурсов. Например Android Studio добавляет туда несколько разных иконок под разные разрешения экранов.
Хм, а «простейший Hello World» — это из комплекта с каким IDE и что там внутри? Может комплектные ресурсы какие-нибудь, вроде картинок? Ибо размер какой-то эпичный совсем.
Прошу прощения, 500 — действительно перебор. 200-300kb. Пример: на 4pda. Ресурсов на 40к отсилы. Внутри самый жирный файл — classes.dex, 700kb.
IDE — adt-bundle-linux-x86_64-20131030 (Eclipse)
Эм. По ссылке не hello world, в готовое приложение, а этот файл этот — это и есть исполняемый код программы, уже подготовленный для Java-машины андроида, причем там наверняка не только программа, но и библиотеки какие-то вшиты.

Соответственно, способ уменьшить существующее приложение — декомпилировать и оптимизовать код ))

Спецы, поправьте меня, если я ошибаюсь.
Угу. А есть где-нибудь почитать про то, как уменьшить количество используемых библиотек? Да и думал, что list, xml — это части именно Android, а не библиотеки, вшиваемые в моё приложение…
Кода 300 строчек всего. Может видели где-нибудь статьи по оптимизации именно на размер APK?
Хорошо помогает ProGuard.
В папке проекта найдите файл project.properties и в нём строку:
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
Убираете в начале # и при экспортировании будет произведена обфускация, которая заметно уменьшит размер вашего apk на выходе.

Ещё можно support-library убрать, если ничего такого из неё не используете.
Спасибо огромное! Дело действительно было в support-library. Удалил её через IDE из папки проекта /lib и проект начал весить как и положено порядка 50 килобайт.
А вот ProGuard на вес в моём случае повлиял не значительно
Раньше я думал, что мало кому интересно девелопить под Android без IDE. Оказалось, что это не так. Вот здесь наш подход: habrahabr.ru/post/203752/ Мы правда не используем javac напрямую, а собираем всё с помощью ant.
Суть в том, чтобы понять, как работают механизмы сборки. Разумеется, при реальной (не учебной) разработке следует использовать IDE. Как я уже сказал, этот проект исключительно для учебных целей.
А смысл работать без IDE в реальной разработке? Это же не удобно, как мне кажется. Я вот, когда на С++\Qt программировал- использовал QtCreator — там и автозаполнение мощное, и рефакторинг очень помогает. И автоматизируются многие процессы.
Без Андроидной IDE. Например, те кто пишут на С++, они просто пишут в Visual Studio и отлаживают всё на винде. Под андроид фактически надо просто собрать .apk и задеплоить.

Теперь понял. Да, можно и так. Собственно, под С++\Android это и будет лучшим решением
Может могу пригодится (правда пока закрытая бета)
Native development and debugging extension for Visual Studio — Android++
С одной стороны да, стандартные шаблоны в Android Studio нагромождены, но никто не мешает просто не создавать активити при создании проекта. Создаем класс вручную, и делаем минимальный код — вуаля.
к чему такие сложности, если можно собрать проект используя gradle
Главное требование перед прочтением этой статьи — кроме установленного софта вы должны уже уметь запускать на вашем девайсе тот Helloworld, который поставляется вместе с Eclipse или Android Studio. Т.е. у вас должен быть настроен драйвер usb, включена отладка по usb на вашем девайсе и т.д… Или же создан и настроен эмулятор.

Я буквально несколько дней назад стал смотреть в сторону Android и уже не в первой статье натыкаюсь на это требование. А разве нельзя просто переписать собранный apk на девайс ( по сети, через облачное хранилище ) и установить его там без всякой отладки по usb, adb?
Конечно можно, просто при разработке это не удобно — каждый раз вручную его устанавливать. А при usb-отладке это делается автоматически.
Что-то пока у меня не получается запустить ваше приложение testapp. Сделал apk, положил на свой ftp сервер, зашел туда с помощью ES Проводника, установил. Обычно после установки предлагается запустить приложение, но тут соответствующая кнопка была disabled. В списке приложений, откуда можно запускать их, оно не появилось, а вот в диспетчере приложений — есть, и никаких сообщений об ошибках, удаляется нормально.
Точно таким же образом ставил тестовое приложение из комплекта sdk, ( построил с помощью gradle ) — все нормально. Попробовал ваше построить с gradle — получилось, ошибок не было ( размер, правда уже — 277 Кб ), а вот с запуском — та же история, что и раньше. У меня планшет Galaxy Tab 3, Android 4.4.2.
Все, разобрался.
Там надо в AndroidManifest.xml вставить <category android:name=«android.intent.category.LAUNCHER» />

Теперь запускается.
Only those users with full accounts are able to leave comments. Log in, please.