- Новая жизнь старого android-устройства: устанавливаем CyanogenMod 13
- Оглавление
- Вступление
- реклама
- «Устаревшее» устройство
- реклама
- Выбор прошивки
- Загрузка прошивки
- реклама
- Установка Recovery
- реклама
- реклама
- Установка прошивки
- реклама
- реклама
- Пишем своё первое приложение на Android
- Предисловие
- Подготовка к разработке
- Создание Android-приложения
- Запуск и тестирование приложения
- Заключение
- UPD: Устранение возможных ошибок
Новая жизнь старого android-устройства: устанавливаем CyanogenMod 13
Оглавление
Вступление
Современные мобильные устройства чрезвычайно быстро стареют. Еще два-три года назад ты копил на желаемый гаджет, а он, не просуществовав и пары лет, уже устарел и не поддерживается производителем. Но если модель популярная, печалиться не стоит, поскольку народные умельцы не дремлют, занимаясь разработкой неофициальных проектов на базе ОС Android.
реклама
В данной статье мы ознакомимся с процессом выбора кастомных прошивок, узнаем, где искать образы и как устанавливать. Ну а в конце выясним, стоит ли все это делать.
В качестве подопытного выступит планшет Samsung Galaxy Tab 2 7.0 (процессор TI Omap 4430, 2 x 1200 МГц, видеосопроцессор PowerVR 540 384 МГц, 1 Гбайт ОЗУ) с неофициальной прошивкой CyanogenMod 13.
«Устаревшее» устройство
В моем личном использовании находится планшет Samsung Galaxy Tab 2 7.0, который вышел в начале далекого 2012 года, когда курс доллара был менее 30 рублей, но речь сейчас не об этом. Данный аппарат построен на базе шустрого двухъядерного процессора Ti Omap, оснащен сочным PLS дисплеем и качественным корпусом.
Планшетом я активно пользуюсь на протяжении четырех лет, проблем с ним никаких не испытываю, и в целом он меня устраивает. А в сравнении с актуальными моделями аналогичного ценового диапазона все вообще шикарно (без какого-либо сарказма). Правда, есть у него один недостаток – устаревшее программное обеспечение.
OC Android ICS и Jelly Bean, которые поддерживаются Samsung Galaxy Tab 2 7.0, уже порядком заросли бородой. Ведь сейчас актуальна версия Android M. А нам хотя бы Android Lollipop, в котором проведена оптимизация производительности, улучшен уровень автономности и есть все новые фишки. В лучшем случае можно разинуть роток на Android Marshmallow…
реклама
Но установить новую версию операционной системы Android на старое устройство все-таки можно, в том числе даже вышеупомянутую Android M.
Выбор прошивки
Для начала следует определиться с выбором прошивки и узнать, а есть ли вообще неофициальные версии системы для нашего аппарата? Владельцам флагманских смартфонов и планшетов (таких как Google Nexus, Samsung Galaxy S, HTC One, Sony Xperia Z и других) не стоит и переживать – прошивки есть, причем в огромном количестве.
В то же время для обычных «китайцев» и моделей брендов второго-третьего эшелонов сторонние прошивки бывают редко, что связано не только с популярностью, но и с ограничениями производителей, как, к примеру, у Xiaomi.
Открываем поисковик, находим любой форум по нашему устройству и изучаем, что же нам могут предложить умельцы. Всякого рода самоделками и портами с других моделей обольщаться не следует, так как ничего хорошего от подобных образов ждать не стоит.
Лучше смотрите на официальные сборки прошивок таких гигантов, как CM, AOSP, Google Play Edition и Miui. Чуть менее серьезно воспринимайте ColorOS и прочие. Узнать о плюсах и минусах, а также различиях каждой из систем можно в интернете, поскольку в рамки одной статьи уместить это сложно.
В нашем случае выбор остановился на версии CyanogenMod 13, которая базируется на OC Android 6.0. На мой взгляд, совсем неплохо. Как описывают на форумах, прошивка стабильная и, что немаловажно, полностью рабочая. Это мы и проверим.
Загрузка прошивки
Найти образ прошивки можно на официальном сайте производителей прошивок, либо в соответствующей теме разработчиков на форуме XDA Developers. Уже прошли те времена, когда все файлы выкладывались на закрытые форумы, файлообменники и черт те что какие ресурсы. Теперь все открыто, наглядно и практически официально.
реклама
В нашем случае мы открываем сайт CyanogenMod, где выбираем в левой панели соответствующую модель устройства и переходим к загрузке. Будьте аккуратны, поскольку у некоторых смартфонов и планшетов в зависимости от модификации бывают отличия в плане процессоров и внутренних компонентов, например, наличие или отсутствие ИК-порта, 3G/4G-модуля и прочих преимуществ. В нашем случае P3110 и P3100 это разные версии!
Установка несоответствующей версии прошивки грозит проблемами с системным разделом, поможет только «прямая» перешивка, то есть в сервисном центре. А в худшем случае нам придется думать о более сложных модификациях.
Установка Recovery
реклама
Любое современное мобильное устройство содержит специальный режим загрузки, который называется Recovery. Он позволяет восстанавливать устройство, устанавливать обновления, делать резервные копии и элементарные операции с мобильным «железом». Мы же будем устанавливать неофициальное обновление, по этой причине нам необходимо модифицированное Recovery.
Для OC Android существуют два варианта: CWM (или Philz) и TWRP Recovery. В чем различия между этими тремя режимами? На вкус и цвет товарищей нет! Все они предлагают примерно одинаковую функциональность, но разрабатываются разными группами разработчиков и отличаются различными нюансами.
К примеру, TWRP позволяет открыть доступ к съемному носителю при подключении через USB, а еще предлагает расширенные параметры подключения по ADB и дополнительные возможности сжатия «бэкапа» системы. А Philz Recovery построен на базе TWRP и отличен от него интерфейсом и парой мелочей. В то время как ClockworkMod Recovery более стабилен и обладает большим списком поддерживаемых устройств.
Однако выбор есть не всегда. Для каждого устройства разрабатывается отдельное Recovery и бывает так, что выбора у пользователей нет. В моем случае выбор пал на TWRP Recovery версии 2.8.7.0. Установка данного режима может осуществляться различными способами, начиная от официального Recovery, Fastboot и заканчивая программами и утилитами для конкретных моделей.
реклама
Загружаем утилиту GooManager, выбираем в дополнительном меню пункт «Install OpenRecovery Script» и ожидаем чуда. Предварительно необходимо получить ROOT права и включить режим отладки в параметрах для разработчиков.
Для проверки установки Recovery необходимо одновременно зажать следующую комбинацию клавиш: «включение» и «увеличение громкости». А на некоторых устройствах еще и кнопку «дом» требуется прибавить. Подробности о каждом конкретном случае можно узнать на форумах.
Установка прошивки
Если процесс установки модифицированного режима восстановления был успешен, можно перейти к следующему – установке прошивки. Для начала необходимо зарядить устройство более чем на 60%, а еще лучше на все 100%. В противном случае мы обречены на фатальный результат. Затем загруженный образ необходимо переместить в память смартфона, будь то съемный накопитель или внутренняя память, и уже оттуда загрузиться в режиме Recovery и установить прошивку. Все гениально просто, осталось только повторить.
реклама
Берем в руки устройство, запускаем его комбинацией клавиш «включение» и «увеличение громкости», попадаем в системное меню.
Желательно сделать полный «бэкап» системы на флэш-карту!
Далее необходимо сделать очистку данных, посетив пункт с названием Wipe и выбрав параметр Advanced Wipe. Это необходимо выполнить для нормального функционирования новых компонентов. Особенно это важно при установке прошивки нового типа или повышении версии системы.
реклама
Вот теперь мы устанавливаем прошивку. Переходим на главное меню, выбираем Install, далее находим загруженный пакет и нажимаем роковую клавишу. После чего нам остается только ждать и надеяться на успешное завершение процесса.
К слову, установка или обновление прошивки может занимать до 10-15 минут, поскольку все зависит от компонентов устройства и устанавливаемой системы. Если процесс затянулся – значит, что-то пошло не так… В нашем случае процесс успешно завершился за 4 минуты. В это время на экране будут описываться стадии установки. Жаль только, возможность создания скриншотов отсутствует.
После всех совершенных манипуляций гаджет предложит загрузить систему, либо продолжить установку компонентов. Можно сразу перейти к установке необходимых патчей или GAAPS. Однако предварительно рекомендуется сделать «чистый запуск», чтобы кратко ознакомиться с системой и ее работоспособностью. Вдруг она нам не понравится, и мы решим откатиться назад или переустановить ее.
Источник
Пишем своё первое приложение на Android
Предисловие
Подготовка к разработке
Установка среды разработки Eclipse
Тут всё просто. Идём в раздел Downloads на официальном сайте и качаем версию Classic. Далее просто распакуйте архив, куда вам хочется, я же решил это сделать в почетную директорию C:\Eclipse
Установка ADT плагина к Eclipse
Запускаем Eclipse, и открываем диалог установки плагина через меню Help → Install new software. В поле Work with вписываем адрес загрузки плагина dl-ssl.google.com/android/eclipse (если не получилось, то плагин можно скачать и установить вручную по ссылке http://developer.android.com/sdk/eclipse-adt.html), далее в таблице ниже появится Developer Tools, отмечаем его и идем далее.
После успешной установки, можно перезапустить среду Eclipse.
Установка среды для Java: JDK и JRE
Если у вас еще не установлены Java Development Kit (JDK) и Java Runtime Environment (JRE), то их необходимо установить. Сделать это можно на сайте Oracle. Скачайте и установите JDK и JRE.
Установка Android SDK
Дело осталось за малым — это скачать и установить свежий Android SDK. Это делается на сайте для Android разработчиков. Я лично установил SDK опять-таки в почётную директорию C:\Android. После этого необходимо добавить платформы и прочие дополнительные элементы SDK. Я добавил все доступные версии, так как планирую делать приложения и для ранних платформ, а также USB-драйвер и примеры приложений.
Подготовка к разработке завершена. Теперь следующий этап — создание приложения.
Создание Android-приложения
Перед тем как создать своё первое приложение, можно создать виртуальное Android-устройство, чтобы быстро тестировать на нём свой свеженаписанный софт. Вначале я хочу сказать вам несколько слов по поводу Android Virtual Device (AVD). Это виртуальный смартфон с ОС Android, на котором вы с легкостью сможете запускать созданную вами программу. Как можно заметить, преимущество Android Virtual Device состоит в том, что наглядно можно увидеть как будет работать Ваша программа на разных смартфонах с Android, а не покупать весь модельный ряд и тестировать приложение на каждом из них.
Приступим к созданию виртуального устройства Android. Следуем в меню по пути Window → Android SDK and AVD Manager.
Выбираем New в правой части окна, в появившемся окне вписываем имя виртуального устройства, платформу (допустим Android 2.1), размер карты памяти (допустим 512 Mb), тип дисплея (допустим HVGA). Затем жмем внизу на кнопку Create AVD.
Теперь создадим проект. Для этого идем по пути в меню File → New → Other, в появившемся списке Android → Android Project.
В качестве примера расскажу о разработке одной моей простейшей программы UfaTermometr, показывающей текущую температуру с датчиков, расположенных на одном из объектов местной энерго-компании.
После создания проекта, слева вы увидите дерево директорий. Перво-наперво загрузим свою иконку приложения, а точнее 3 иконки под разные варианты. В папку drawable-hdpi грузим png-картинку с прозрачным фоном размером в 72×72, в drawable-mdpi соответственно 48×48 и в drawable-ldpi самую маленькую размером 36×36. Делать это можно простым перетаскиванием файлов прямо на дерево. Следующим шагом будут элементы управления. В моей программе было необходимо всего три элемента интерфейса: ImageView (просто картинка логотип приложения), Button (обновить значение температуры) и TextView (вывод значения температуры). Все эти элементы управления нужно описать в специальном xml-файле. В дереве он расположен по адресу res → layout → main.xml. Во-многом разметка элементов управления сходна с вёрсткой веб-страниц, тут есть и padding, и margin, и аналог align. Код main.xml моего приложения:
xml version =«1.0» encoding =«utf-8» ? >
LinearLayout xmlns:android =«schemas.android.com/apk/res/android»
android:orientation =«vertical»
android:layout_width =«fill_parent»
android:layout_height =«fill_parent»
>
ImageView android:layout_width =«fill_parent»
android:layout_height =«wrap_content»
android:src =»@drawable/droid»
android:layout_gravity =«center_horizontal|center»
android:layout_margin =«0px»
/>
Button
android:id =»@+id/refrbutton»
android:layout_width =«wrap_content»
android:layout_height =«wrap_content»
android:gravity =«center_horizontal»
android:layout_gravity =«center_horizontal|center»
android:textSize =«30px»
android:padding =«20px»
android:layout_marginTop =«10dip»
android:text =«Обновить»
/>
TextView
android:layout_width =«fill_parent»
android:layout_height =«wrap_content»
android:text =». »
android:textSize =«100dip»
android:gravity =«center_horizontal»
android:id =»@+id/temper»
android:textColor =»#EEE3C4″
/>
LinearLayout >
Подробно останавливаться на разметке элементов управления не буду, так как это всё достаточно подробно описано в мануале и вообще интуитивно понятно, особенно тому, кто имел дело с html/css-вёрсткой и/или разработкой в какой-либо визуальной среде (например, Delphi). Единственное, обратите внимание как я загрузил произвольное изображение в ImageView. В поле src указывается путь, начинающийся с символа @ и далее указываете адрес по дереву. В папке res я заблаговременно создал подпапку drawable и «закинул» туда логотип, а затем просто указал ImageView путь. Легко? По мне так очень.
Непосредственно код приложения располагается по пути src → «ваше название package» → «название приложения».java.
По-умолчанию создается «болванка» главного класса и от неё уже дальше можно плясать. Не буду останавливаться на тонкостях такого простого кода как у меня в примере, но поясню, что логика работы объясняется тремя простыми шагами:
- Загрузить HTML-страницу со значениями температуры
- С помощью регулярок «вытащить» температуру
- Показать в TextView значение температуры
Заметьте, что когда приложению требуются какие-то системные разрешения, нужно указывать их в манифесте AndroidManifest.xml. В данном конкретном случае мы используем подключение к Интернет, соответственно добавляем строчку в указанный выше xml-файл.
Собственно сам код, реализующий указанную выше логику работы:
package app.test.ufatermometr;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.*;
public class UfaTermometr extends Activity
<
@Override
public void onCreate(Bundle savedInstanceState)
<
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Button button = (Button) findViewById(R.id.refrbutton);
button.setOnClickListener( new Button.OnClickListener() <
public void onClick(View v) // клик на кнопку
<
RefreshTemper();
>
>);
RefreshTemper(); // при запуске грузим температуру сразу
>;
//—————————————————————-
public String GetTemper(String urlsite) // фукция загрузки температуры
<
String matchtemper = «» ;
try
<
// загрузка страницы
URL url = new URL(urlsite);
URLConnection conn = url.openConnection();
InputStreamReader rd = new InputStreamReader(conn.getInputStream());
StringBuilder allpage = new StringBuilder();
int n = 0;
char [] buffer = new char [40000];
while (n >= 0)
<
n = rd.read(buffer, 0, buffer.length);
if (n > 0)
<
allpage.append(buffer, 0, n);
>
>
// работаем с регулярками
final Pattern pattern = Pattern.compile
( » [^-+0]+([-+0-9]+)[^ [^(а-яА-ЯёЁa-zA-Z0-9)]+([а-яА-ЯёЁa-zA-Z ]+)» );
Matcher matcher = pattern.matcher(allpage.toString());
if (matcher.find())
<
matchtemper = matcher.group(1);
>
return matchtemper;
>
catch (Exception e)
<
>
return matchtemper;
>;
//—————————————————————-
public void RefreshTemper()
<
final TextView tTemper = (TextView) findViewById(R.id.temper);
String bashtemp = «» ;
bashtemp = GetTemper( «be.bashkirenergo.ru/weather/ufa» );
tTemper.setText(bashtemp.concat( «°» )); // отображение температуры
>;
>
После того как приложение написано, можно уже его отлаживать и тестировать.
Запуск и тестирование приложения
Вспоминаем про нашу виртуальную машину и запускаем привычной кнопкой или менюшкой Run → Run
Вот такую картину мы можем затем созерцать:
Теперь, если вы хотите поделиться приложением, то нужно собрать apk-файл. Для этого воспользуемся меню File → Export и в списке Android → Export Android application. Далее выберите проект, затем создайте хранилище ключей keystore и ключ key, для этого нужно будет заполнить несколько полей с всякого рода справочной информацией. Получившийся apk-файл можно распространять и даже выложить в Android Market, но для этого придется зарегистрироваться и уплатить $25, что в общем-то немного, особенно для стоящего проекта. Но регистрация в Маркете, пожалуй, тема отдельной статьи.
Заключение
В заключении хотелось бы сказать, что безусловно разработка приложений для Android приятна, достаточно проста и интересна. Конечно, мы рассмотрели лишь верхушку айсберга, но я надеюсь, что в умах тех из вас, кто раньше не пробовал делать ничего подобного «загорелась лампочка» и вполне возможно, что когда-то вашим приложением будут пользоваться миллионы.
Источники, ссылки
UPD: Устранение возможных ошибок
ERROR: Unable to open class file C:\workspace\Test\gen\com\example\test\R.java: No such file or directory
emulator: ERROR: no search paths found in this AVD’s configuration. Weird, the AVD’s config.ini file is malformed. Try re-creating it
— это следствие того, что у Вас кириллица в имени пользователя. Решается: идем в Компьютер → Свойства системы → Дополнительные параметры системы → Переменные среды. Создаем новую переменную с именем ANDROID_SDK_HOME и значением – путем, где находится папка AVD (например, C:\Android\). Создаем, далее ищем там же переменную Path, открываем и в поле значений через точку с запятой добавляем путь до папки tools Android SDK (например, C:\Android\tools). Сохраняем. Запускаем Eclipse, запускаем программу.
UPD 05.10.2011, во что превратилось данное приложение можно лицезреть на следующих скринах:
Это результат развития той самой болванки, которая выше дана в качестве примера.
Разработка и создание Android-приложений
Создание сайтов
Источник