Gradle, Lint: [MissingTranslation]

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

Если нужно полностью подавить сообщение об ошибке, то в build.gradle достаточно добавить такие параметры:

lintOptions
{
   disable 'MissingTranslation'
}

Если нужно подавить сообщение об ошибке только для определенных файлов, то добавляются такие атрибуты в каждый файл:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">

Android: скриншот с помощью adb

На девайсе под управлением Android сделать скриншот статического (!) изображения можно скопировав информацию из фреймбуфера:

adb pull /dev/graphics/fb0 fb.bgra

Расширение bgra нужно для convert из набора ImageMagick, что бы он мог понять каков порядок ARGB. Я пробовал снимать скриншоты на девайсе от Sony, там порядок был BGRA. Возможно он таков на всех устройствах.

В цикле снимать скриншоты можно так:

while [ 1 ] ; do adb pull /dev/graphics/fb0 fb-`date +"%H-%M-%S"`.bgra ; sleep 1 ; done

Конвертация:

convert -size 480x854 -depth 8 fb-*.bgra screenshot-%05d.png

Android: завершение приложения

Для “завершения” приложения на Android я раньше делал finish() из Activity и exit() из NDK.
Это далеко не лучший, хотя и кардинально чистящий вариант.

После некоторых раздумий решил завершать apploop и дергать из Activity “хоум скрин”:

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(startMain);

Samsung Galaxy Nexus и Android 4.2.x

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

Мне не повезло и достался мне девайс с поставщиком от Samsung (id девайса yakjuxw), который позволил мне обновиться аж до android 4.1.1. Все, на этом Samsung свою задачу посчитал выполненной.
На днях вышло обновление до 4.2.2 и мне ну очень захотелось получить его тоже. Всяческие танцы с бубном, которые якобы позволяют уговорить Samsung прислать мне обновление не прокатывают.
Под руку попалась документация и ссылки на оригинальные образы от Google. Почитал, решился, обновился.

Итак, документация и ссылка на нужный образ – https://developers.google.com/android/nexus/images
Для установки оригинальной прошивки нужно разлочить бутлоадер (как два пальца обос-ть) – https://source.android.com/source/building-devices.html
После этого из того же фастбута заливается оригинальная прошивка (я залил 4.1.2, но можно было и сразу залить 4.2.2) и уже по воздуху ставится обновление.

Предупреждение – после заливки оригинальной прошивки (не по воздуху) все данные в девайсе (в том числе и во внутренней флешке) будут уничтожены.

Все действия делал из-под Linux.

Android video capture

Для снятия скриншотов купил Screencast Video Recorder. Дополнительно к $3.99 USD с меня сняли $1.00 USD. Хз, почему и за что.
Странно работает удаление сделанных видео – файл удаляется, но в списке тут же появляется запись об этом файле. В демо-версии такого глюка не было.
Пишет видео в контейнер mp4, какой кодек используется я еще не смотрел.

p.s. Для работы приложения нужны права root.

Включение usb-отладки на Android

Хотел проверить работоспособность игры на телефоне жены. Игра работала некорректно, понадобилось чтение лога: adb logcat, а выхлоп пустой. В настройках телефона все включено, но выхлопа нет. Сделал так:

$ adb shell
# echo 1 > /sys/kernel/logger/log_main/enable

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

Советы по miui

Начну писать тут советы, касательно прошивки miui

  • Скриншот можно сделать одновременным нажатием menu и volume down.
  • Перенести икону приложения на другой десктоп можно проще – удерживая иконку одним пальцем войти в режим редактирования, а вторым пальцем промотать до нужного десктопа.

Android: установка .apk

Злой гугель решил, что я недостоин установки приложения YouTube. Мол не в той стране родился и не в той стране живу. Но я считаю, что свобода должна быть свободнее. Итак, приступим:

  • Подключаем телефон к компьютеру с помощью usb-кабеля.
  • В телефоне разрешаем usb debugging.
  • Из консоли пишем adb remount – перемонтирует раздел /system в read-write.
  • Устанавливаем заранее скачанный .apk – adb install ~/your_application.apk – эта команда сама выполнит push из локальной FS в FS телефона и установит приложение.

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

Установка альтернативной прошивки на HTC Desire


После некоторого времени использования своего HTC Desire с родным для него Sense я пришел к выводу, что некоторые возможности Sense мне просто мешают, а некоторых не хватает. Почитав о возможностях различных альтернативных прошивок и пообщавшись с людьми, которые уже используют альтернативные прошивки, я понял, что созрел для замены родной прошивки. Еще немного поколебавшись для вида (ну а куда без этого, все же гарантия на телефон теряется), я скачал прошивку CyagenMod 7.0.3. Но через несколько дней (максимум неделю) я прочитал несколько обзоров прошивки MIUI, и это стало причиной для очередной смены прошивки. Об этой прошивке я слышал и раньше, но ее китайское происхождение меня смущало.

Что нужно для установки альтернативной прошивки:

  • Unrevocked – утилита для прошивки альтернативного Recovery (к счастью есть линукс-версия) – именно с его помощью можно прошить альтернативную прошивку.
  • Сам Recovery – тот, что идет в комплекте с Unrevocked не умеет работать с новыми моделями HTC Desire, да и по функционалу убог. Берем recovery-RA-desire-v2.0.0.img.
  • Сама прошивка. Я воспользовался китайской + английский языковой бандл.

Установка:

  1. Вначале ставится Recovery. Кабель от телефона нужно отключить, в телефоне включить USB Debugging. Запустить Unrevocked и указать путь к recovery-RA-desire-v2.0.0.img. Теперь можно помолиться и подключить кабель к телефону ;)
  2. Далее с помощью Recovery прошиваем телефон новой прошивкой, которую предварительно поместили на карту памяти. И не перегружаясь ставим английский (или иной) языковой бандл.

Включаем возможность установки приложений на карту памяти:

$ su
# a2sd check - проверяем, что у нас не так
# a2sd reinstall - устанавливаем apps2sd
# a2sd cachesd - переносим davik-кеш, по желанию; экономит много места.
# a2sd datasd - переносим данные программ (без этого они будут храниться во внутренней памяти), не рекомендуется

Использованные статьи:
http://geekfor.me/faq/apps2sd/
http://wiki.cyanogenmod.com/index.php?title=HTC_Desire_(GSM):_Full_Update_Guide
http://forum.xda-developers.com/showthread.php?t=839621
http://www.unrevoked.com/recovery/
http://miui.su/

1 2