2021-03-20

Компилируем Android приложения в Docker

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

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

docker run --rm -v ${PWD}:/var/app maxistar/android:latest bash \
 -c "gradle build && gradle compileDebugSources"

Готовый apk файл будет сохранен в папку app/build/outputs/apk/debug/app-debug.apk - его можно сразу скопировать не телефон и установить его (не забудьте разрешить установку приложений из неизвестных источников). 

Как был сделан этот образ? За основу взял образ Debian 9.

Установил Java 8 (Java 11 у меня не завелась если знаете как подружить gradle и java 11 поделитесь секретом)

apt-get update
apt-get -y install git wget unzip default-jdk

Для сборки нам нужен gradle установим его

wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip -P /tmp
unzip -d /opt/android /tmp/sdk-tools-linux-3859397.zip

Скачаем Android SDK:

wget https://services.gradle.org/distributions/gradle-6.8.3-bin.zip -P /tmp
unzip -d /opt/gradle /tmp/gradle-6.8.3-bin.zip

Еще нужно установить переменные окружения.

ENV ANDROID_SDK_ROOT=/opt/android
ENV GRADLE_HOME=/opt/gradle/gradle-6.8.3
ENV PATH=${GRADLE_HOME}/bin:${ANDROID_SDK_ROOT}/tools/bin:${PATH}

Теперь нужно скачать инструменты для сборки android приложений.

sdkmanager --update
sdkmanager "build-tools;30.0.2" "platform-tools" "platforms;android-30"
sdkmanager --licenses

Готовый Dockerfile выглядит вот так:

FROM debian:9

MAINTAINER Max Starikov <maxim.starikov@gmail.com>

ENV ANDROID_SDK_ROOT=/opt/android
ENV GRADLE_HOME=/opt/gradle/gradle-6.8.3
ENV PATH=${GRADLE_HOME}/bin:${ANDROID_SDK_ROOT}/tools/bin:${PATH}

RUN apt-get update && apt-get -y install git wget unzip default-jdk

RUN wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip -P /tmp && \
    unzip -d /opt/android /tmp/sdk-tools-linux-3859397.zip && \
    wget https://services.gradle.org/distributions/gradle-6.8.3-bin.zip -P /tmp && \
    unzip -d /opt/gradle /tmp/gradle-6.8.3-bin.zip && \
    sdkmanager --update && \
    yes | sdkmanager --licenses  && \
    sdkmanager "build-tools;30.0.2" "platform-tools" "platforms;android-30" && \
    yes | sdkmanager --licenses && \
    mkdir /var/app

WORKDIR /var/app

Следует заметить, что образ довольно большой (примерно 850Mb) - и для его использования нужно быстрое интернет соединение, но зато, единожды скачав, скачивать повторно docker его больше не будет.

Образ доступен на docker hub. Исходник находится на github.

 

Оставить комментарий

 
  2021-03-17

Классное интервью у АйТи Бороды

Итеративная инкрементальная методология с промежуточными точками поставки. Это круто!

А вот и ссылка на мультик про который говорится на метке 33:37.

 

Оставить комментарий

 
  2021-03-14

Старая клавиатура для ноутбука

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

Оказалось, старую клавиатуру еще можно было ожививть, ведь клавиши клавиатуры легко отщелкиваются! После того как отщелкнул проблемные клавиши, проблема открылась во всей красе (брезгливым не смотреть!):

Как в видите, в мусоре под клавишами уже самозародилась жизнь, эволюционировала в высокоразвитую цивилизацию и уже готовится покорять космос...

При помощи старой зубной щетки устроил маленький геноцид - удалил весь мусор и вернул клавиши обратно, они встали на место и защелкнулись без проблем.

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

 

Оставить комментарий

 
  2021-03-13

Новая клавиатура для ноутбука

Заменил клавиатуру своего ноутбука HP ProBook 450 G1. В плане железа человек я консервативный и железо меняю редко. На своем рабочем ноуте я уже заменил жесткий диск и аккумулятор, после того как начал глючить тачпад я приобрел внешнюю мышку, но вот последнее время стала глючить клавиатура - цифра "5" и клавиша "v" и некоторые другие стали срабатывать через раз.

Поэтому я стал посматривать в сторону новых моделей. Однако, амфибиотропная асфиксия все мешает мне раскошелиться на модель которая бы меня устроила, к тому же, не сильно надо, так как для работы я использую пятнадцатидюймовый MacBook Pro.

Тогда я подумал, а почему бы не поменять клавиатуру? Сказано - сделано! Заказал на Амазоне. Только что зашел на почту на посылкой. Оказывается, на этой модели, чтобы поменять клавиатуру достаточно отвинтить два болта! Вот они на этом видео на временной отметке 2:45.

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

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

 

Оставить комментарий

 
  2021-03-12

Ichigo Tanuki на MaxiRock

Нацки и Виталий сходили на интервью к MaxiRock, получилось очень познавательно. С удивлением, узнал, что в японском кавере Бутусова "Я хочу быть с тобой" пел сам Бутусов. Ребята просто написали Бутусову, и он согласился поучаствовать. Вот этот кавер на канале самого Бутусова:

 

Оставить комментарий

 
  2021-03-07

Орден за заслуги перед отечеством второй степени

Ранним утром 7 сентября в аэропорту «Полярный» г. Мирный полусонные пассажиры занимали места в салоне самолета, ТУ-154. Авиалайнер готовился к вылету в Москву. Скажем сразу: все останутся живы. Позднее специалисты назовут это чудом, ведь шансов выжить у них был один на тысячу, а может и того меньше.

ЧП на высоте 10.600 метров
Самолет находился в воздухе уже более трех часов, когда отключился автопилот. Ситуация неприятная, но это еще не ЧП. Но какое-то шестое чувство подсказало командиру экипажа Новоселову, что в этот раз все так просто не обойдется.
Предвидя вариант с экстренной посадкой, он связался с диспетчером: «У нас проблемы с электропитанием. Прошу подготовить запасной аэродром». Ответа Новоселов не услышал – радиостанция пискнула и замолчала. Самолет остался без радиосвязи.
Вслед за автопилотом стали отключаться остальные приборы. Датчики крена и тангажа, указатели курса «умирали» один за другим. Почти мгновенно вышли из строя все навигационные приборы. «Завалились» не только оба авиагоризонта, но и третий – резервный, что не предусматривается никакими инструкциями, поскольку такого просто не может быть никогда!
Куда садиться?
Без навигационного оборудования экипаж нем, глух и слеп. Это все равно что вести автомобиль в надетом на голову мешке. Ситуация, даже не требующая обдумывания – только посадка, и посадка срочная: отключились насосы, перекачивающие горючее из крыльевых баков в двигатели, а это значит, что максимум через 30 минут двигатели остановятся и самолет начнет просто падать.
Самолет снизился до 3.000 метров, внизу холмы, тайга, садиться на которые – чистое самоубийство. Блеснула серебристая полоса – река Ижма, Ту пошел вдоль нее. Показался стоящий на берегу реки поселок Ижма. Командир и экипаж высматривали подходящее для посадки место. Если такое не будет найдено – сажать самолет они будут на воду, прямо напротив поселка, чтобы жители Ижмы оказали помощь тем, кто уцелеет. И тут штурман крикнул: «Командир, полоса!»
Если бы у летчиков было время на обдумывание, они бы прежде всего удивились: откуда здесь не числящийся ни в каких реестрах, не отмеченный ни на каких картах аэродром? Его просто не должно быть! Это или галлюцинация или… чудо. Ту-154 развернулся и пошел в сторону полосы. (Отсюда)

 

Спростите, почему я так странно озаглавил свой пост? - да потому что Сергей Михайлович Сотников - которого все считали сельским сумасшедшим, из-за того, что он 12 лет, за свой счет, заботился о заброшенной полуторакилометровой взлетно-посадочной полосе в Ижме, получил после этого случая "Орден за заслуги перед Отечеством второй степени".

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

И, кстати, такую-же награду - "Орден за заслуги перед Отечеством 2 степени", получил недавно сын Дмитрия Кисилёва - Юрий Кисилёв. Уверен, что его подвиг не менее эпичный!

Upd: Ту самую полосу хорошо видно на гуглокартах.

 

Оставить комментарий

 
  2021-03-05

Долгая и несчастливая жизнь

По примеру Экслера, в эту пятницу запосчу ка я что-нибудь музыкальное. В конце концов - мой сайт, что хочу то и посчу (или пощу? постю?):

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

Последняя песня мне особенно понравилась, это не точка, скорее запятая, предчувствие чего-то хорошего, что вот-вот случится...

 

Коментариев: 1

 
  2021-03-04

Про фантастику

Вот интересно, было время я сильно увлекался серией С.Т.А.Л.К.Е.Р. Было в ней что-то от той реальности в которой я жил в России. В самом деле - передвижение по городу требовало большой сноровки - то тут то там можно было попасть в ловушку в виде открытого люка или упасть, поскользнувшись на гололеде. Передвижение на машине было еще более захватывающе - тут тебе и зомби, бросающиеся под колеса, и аномалии, когда неожиданные дождь или снег может превратить улицу в полноводную реку или в театр боевых действий, или кровосос, поджидающий в засаде в форме полиционера, захочет испить вашей кровушки. В общем, типичнаая и аутентичная зона из Сталкера.

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

Удивительно, насколько внешние факторы меняют наши литературные пристрастия.

 

Оставить комментарий

 
  2021-02-27

Super Words Memorizer снова в Google Play!

Super Words Momorizer cнова доступен на Google Play!

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

Хотя, конечно, моя программка - совсем не конкурент Dualingo, это скорее такой маленький тул, для пополнения словарного запаса. При помощи него я неплохо прокачал свой английский и итальянский языки. Сейчас изучаю немецкий.

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

Мне можно написать через контактную форму на этом сайте.  Буду рад любой помощи.

 

Оставить комментарий

 
  2021-02-25

Как войти в кошёк IOTA если у вас короткий...

...Seed.

Есть такая криптовалюта IOTA. У них в кошельке для авторизации используется так называемый seed - просто случайная последовательность символов некоторой длинны. И эта длинна имеет значение!

Сейчас для авторизации используется seed длинной 81 символ. Когда я заводил кошелек мой seed был длинной 79 символов. 

Старый сид новый кошелек не понимает - говорит - хочу чтобы был не короче 81 символа!

Оказывается для преобразования старого сида к новому нужно дописать к старому сиду девятки до длинны 81 символ.

Вдруг кому нибудь тоже понадобится.

 

Оставить комментарий