Android: добавление русской раскладки

У меня есть служебный телефон Sharp SH-12C, который предназначен для японского оператора NTT Docomo (хотя, он отлично работает и в сетях других операторов). Т.к. сей аппарат предназначен сугубо для японского потребителя, то в нем присутствуют только два языка — непосредственно японский и английский. Беда состоит в том, что в качестве ввода для клавиатуры нельзя выбрать какой-либо другой язык, а ведь так хочется иметь русскую раскладку!

Как всегда, выход из этой, казалось бы, сложной ситуации есть. Необходимо скачать бесплатную программу GO Keyboard, которая является сторонней клавиатурой для Android. Самое главная фишка этой клавиатуры заключается в том, что для нее можно добавлять огромное количество разных языков ввода, в том числе русского. Да и сама по себе клавиатура выглядит очень брутально, и имеет в своем арсенале множество замечательных плюшек.

Возврат денег в App Store, Google Play и WP Marketplace

Статья о том, как попытаться вернуть деньги за купленное приложение в магазинах App Store, Google Play и Windows Phone Marketplace.

Тестирование Android-приложения с помощью Eclipse + Testdroid Recorder

1. Создайте учетную запись на сайте «Testdroid«.
2. Установите плагин «Testdroid» в Eclipse: «Help» -> «Eclipse Marketplace», в поле «Find» вписываем «Testdroid Recorder». После того, как плагин будет найден, жмите «Install».
3. В качестве примера создайте Android-проект из sample: «File» -> «New» -> «Other» -> «Android Project». В окне «New Android Project» задать имя проекта и выбрать «Create project from existing samples», нажать кнопку «Next». В следующем окне выберите нужную версию Android, которая имеет примеры. В окне «Select Sample» выберите «NotePad» и нажмите кнопку «Finish».
4. Выделите созданный проект и вызовите контекстное меню. Затем «Android Tools» -> «New Test Project». Задайте имя проекта <AddNoteTest> и сохраните проект.
5. Выделите созданный проект и вызовите контекстное меню. Затем «Build Path» -> «Configure Build Path…». В открывшемся окне перейдите на вкладку «Libraries», нажмите кнопку «Add External JARs» и выберите файл robotium-solo-<version>.jar (последнюю версию можно скачать на оф.сайте). Перейдите на вкладку «Order and Export» и отметьте чек-бокс напротив robotium-solo-<version>.jar. Нажмите кнопку «ОК».
6. В пакете com.example.android.notepad.test создайте новый класс с именем <AddNoteTest> и со следующим содержанием:

package com.example.android.notepad.test;
 
import android.test.ActivityInstrumentationTestCase2;
import com.example.android.notepad.NotesList;
import com.jayway.android.robotium.solo.Solo;
 
public class AddNoteTest extends ActivityInstrumentationTestCase2{
 
	private static final String APP_PACKAGE_NAME = "com.example.android.notepad";
	protected Solo solo;
	protected Integer screenWidth = null;
	protected Integer screenHeight = null;
 
	public AddNoteTest() {
		super(APP_PACKAGE_NAME, NotesList.class);
	}
 
	public void setUp() throws Exception {
		solo = new Solo(getInstrumentation(), getActivity());
	}
 
	public void testAddNote() throws Exception {
		solo.waitForActivity("NotesList", 500);
		solo.sleep(2500);
		solo.clickOnMenuItem("Add note", true);
		solo.waitForActivity("NoteEditor", 500);
		solo.sleep(2500);
		solo.clearEditText(0);
		solo.enterText(0, "Hello world!");
		solo.sleep(2500);
		solo.goBack();
		solo.waitForActivity("NotesList", 500);
		solo.sleep(2500);
		solo.clickOnMenuItem("Add note", true);
		solo.waitForActivity("NoteEditor", 500);
		solo.sleep(2500);
		solo.clearEditText(0);
		solo.enterText(0, "New");
		solo.sleep(2500);
		solo.goBack();
		solo.waitForActivity("NotesList", 500);
		solo.sleep(2500);
		solo.clickInList(1);
	}
 
	@Override
	public void tearDown() throws Exception {
		//Robotium will finish all the activities that have been opened
		solo.finishOpenedActivities();
	}
}

7. Выделите созданный проект и вызовите контекстное меню. Затем «Run As…» -> «Android JUnit Test». В зависимости от того, где вы тестируете приложение (эмулятор или телефон), на экране устройства запуститься приложение, в котором начнут автоматически происходить действия, описанные в тесте.

В следующей заметке я расскажу, как с помощью Testdroid Recorder создавать Record/Play тесты.

Про RetinaPad

Давно мечтал о чем-то похожем для своего iPad’а и вот, наконец-то, нашел! RetinaPad позволяет отображать приложения, созданные для iPhone с поддержкой Retina-дисплеев, в высоком разрешении и на экране iPad, без всяких там замыленных графических составляющих и зубчатых шрифтов.

RetinaPad устанавливается из Cydia, репозиторий BigBoss и стоит $2,99, а если добавить репозиторий repo.insanelyi.com, то RetinaPad достанется совершенно бесплатно =)

Декомпиляция приложений *.apk

В последнее время стал часто получать на свой мобильный телефон мошеннические SMS и MMS, просящие перейти на сайт, чтобы «просмотреть открытку/сообщение», «скачать приложение» и т.п. Сегодня решил проверить, что конкретно мне хотят подсунуть. Перейдя по одной из таких ссылок через компьютер, было загружено Android-приложение (*.apk) с именем  «opera_6.5.1». В сети сейчас гуляет много вирусов, маскирующихся под якобы новую версию браузера (в прочем, не самого популярного за рубежом, но очень любимого в СНГ), которую срочно нужно обновить. Доверчивые пользователи, скачавшие такое «обновление», получают на свое мобильное устройство вирус, который отсылает с их телефона смс-сообщения на платные номера (естественно, без ведома хозяина), в результате чего пользовательский счет человека в короткий срок может достичь нулевой отметки.

Где-то на Хабре я уже читал статью, как один человек решил декомпилировать ту самую Оперу, только в формате *.jar, чтобы детально разобраться в коде вируса. Но мне попалось приложение в формате *.apk, поэтому я тоже решил его декомпилировать (исключительно технический интерес!).

Для декомпиляции *.apk-приложения мне понадобились только две составляющие: dex2jar (утилита для извлечения классов, которые уже можно декомпилировать) и Java Decompiler (то, чем будем декомпилировать). Для тех, кому необходимо получить ресурсы приложения, то нужно воспользоваться еще и ApkTool.

# C:\Decompile_apk_app\dex2jar-0.0.9.7\dex2jar C:\Decompile_apk_app\opera_6.5.1.apk — данная команда позволяет получить файл opera_6.5.1_dex2jar.jar, который с успехом открывается с помощью Java Decompiler.

# C:\Decompile_apk_app\apktool\apktool d -f C:\Decompile_apk_app\opera_6.5.1.apk C:\Decompile_apk_app\Opera – команда позволяет получить файлы манифестов, ресурсов приложения, и файлы байт-кода в формате *.smali. Здесь можно найти список команд, присутствующих в байт-коде.

Вот так не сложно можно получить доступ если не к 100% исходникам приложения, то хотя бы к той части, которую можно осмысленно понять.

Бесплатная загрузка платного приложения из App Store

Решил обновить из App Store одно платное приложение на своем iPad‘е, хотя знал, что денег на банковской карте, прикрепленной к моему аккаунту. На удивление, приложение было успешно обновлено, хотя до этого все попытке загрузить/обновить платные приложения пресекались сообщением о том, что не хватает средств для осуществления транзакции.

App Store сглючил, подумал я, и мне досталась халява! Но не тут-то было! Через несколько дней я попытался обновить другое приложение, которое было бесплатным, но вместо этого появилось окно о том, что мои платежные данные «инкоррект». Немного порыв в сети, смог найти крайне интересную информацию: оказывается, в App Store по-какой причине удается иногда загрузить платное приложение, при этом деньги с карты не снимаются (как в моем случае, хотя их на карте вообще не было). Но за вами все равно числится долг, которые необходимо погасить, т.е. когда на карту поступит необходимая сумма, деньги за оплату приложения все равно будут списаны. Доступ в App Store (загрузка/обновление приложений) закрыт до тех пор, когда не будет оплачена покупка.

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

Способы установки приложения в ОС Android

Есть несколько вариантов установки приложения в устройство под управлением ОС Android:

  1. в режиме отладки по USB – в настройках устройства необходимо указать, что при подключении по USB устройство будет работать в режиме отладки («Настройки» -> «Приложения» -> «Дополнительные опции» -> отметить пункт «Отладка USB»). Установить приложение необходимо, используя команду «adb» из Android SDK (я в таких целях использую bat-файл, очень помогает упростить рутинные задачи): adb install -r application.apk
  2. в режиме USB-накопителя – в настройках устройства необходимо указать, что при подключении по USB устройство будет использоваться как USB-накопитель («Настройки» -> «Карта SD и память телефона» -> отметить «Устройство хранения данных»), а также разрешить установку приложений не из Android Market («Настройки» -> «Приложения» -> отметить пункт «Неизвестные источники»). Приложение, которое необходимо установить, нужно скопировать в какую-нибудь папку устройства, после чего, используя любой из доступных файловых менеджеров (скачать можно с Android Market), перейти в эту папку, найти скопированное приложение и установить его.
  3. через Android Market с устройства при условии, что необходимое приложение там присутствует.

Тестирование Android-приложения с помощью эмулятора

Одним из проектов, который мне необходимо тетсировать на новой работе — это Android приложение, позволяющее просматривать стереоскопические изображения на экране мобильного устройства. Т.к. на данный момент существуют всего два устройства, которые имееют 3D-экран (HTC EVO 3D и LG Optimus 3D), то приложение заточено именно под них, хотя никто не запрещает запускать его на других Android-устройствах, только толку от этого будет не больше, чем обычного вьюира.

На данный момент у нас на работе всего одно устройство (HTC EVO 3D) на котором можно непосредственно тестировать, хотя в скором времени планируется добыть и LG Optimus 3D. Но помимо физического устройства, можно же тестировать и на эмуляторе, хотя ряд функций все же протестировать не удасться (к примеру, снять изображений на камеру устройства и отправить его в приложение).

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

1. Java Development Kit (JDK)
2. Android SDK

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

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

iOS Background

Фон, который в некоторых местах используется в iOS, в честности, в панели уведомлений (начиная с iOS 5.0). Можно использовать в различных целях, к примеру, установить в качестве фона для своего Твиттер-аккаунта.

iPad Background