Компилируем 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.
Классное интервью у АйТи Бороды
Итеративная инкрементальная методология с промежуточными точками поставки. Это круто!
А вот и ссылка на мультик про который говорится на метке 33:37.
Старая клавиатура для ноутбука
У Ольги Громыко в серии Космоолухи был интересный момент где компьютерная клавиатура питалась крошками, которые на нее падали от неаккуратных пользователей. Как жаль, что реальные клавиатуры так не умеют! После того как на моем лаптопе появилась новая клавиатура, и я уже почти выкинул старую, стало любопытно - почему же она она перестала работать?
Оказалось, старую клавиатуру еще можно было ожививть, ведь клавиши клавиатуры легко отщелкиваются! После того как отщелкнул проблемные клавиши, проблема открылась во всей красе (брезгливым не смотреть!):
Как в видите, в мусоре под клавишами уже самозародилась жизнь, эволюционировала в высокоразвитую цивилизацию и уже готовится покорять космос...
При помощи старой зубной щетки устроил маленький геноцид - удалил весь мусор и вернул клавиши обратно, они встали на место и защелкнулись без проблем.
Если бы я знал об этом свойстве клавиатуры раньше, я бы, наверно, и не стал бы покупать новую, и хорошо, что не знал, ведь новая мне нравится гораздо больше! Не уверен, что частое выщелкивание и защелкивание клавиш у таких миниатюрных устройств пройдет бесследно, но если мусор не удается удалить другим способом, похоже, это единственный способ устранить проблему не заменяя всю клавиатуру.
Новая клавиатура для ноутбука
Заменил клавиатуру своего ноутбука HP ProBook 450 G1. В плане железа человек я консервативный и железо меняю редко. На своем рабочем ноуте я уже заменил жесткий диск и аккумулятор, после того как начал глючить тачпад я приобрел внешнюю мышку, но вот последнее время стала глючить клавиатура - цифра "5" и клавиша "v" и некоторые другие стали срабатывать через раз.
Поэтому я стал посматривать в сторону новых моделей. Однако, амфибиотропная асфиксия все мешает мне раскошелиться на модель которая бы меня устроила, к тому же, не сильно надо, так как для работы я использую пятнадцатидюймовый MacBook Pro.
Тогда я подумал, а почему бы не поменять клавиатуру? Сказано - сделано! Заказал на Амазоне. Только что зашел на почту на посылкой. Оказывается, на этой модели, чтобы поменять клавиатуру достаточно отвинтить два болта! Вот они на этом видео на временной отметке 2:45.
Новая клавиатура оказалось всего с одним болтом - но это мне не сильно принципиально. Русских символов на новой клавиатуре тоже нет, но мне и не надо - уже давно я набираю символы не смотря на клавиатуру, если бы еще и латинские с нее стереть - было бы вообще идеально...
Этот пост я набираю уже на новой клавиатуре - какой же это кайф когда можно набирать текст и не проверять каждый раз нажалась ли та или иная клавиша! Похоже, мой старичёк еще мне послужит!