Показаны сообщения с ярлыком android. Показать все сообщения
Показаны сообщения с ярлыком android. Показать все сообщения
вторник, 16 апреля 2013 г.
NetBeans, Andorid и логи эмулятора.
Если при отладке приложения в эмуляторе нет вывода логов, то их можно просто открыть из меню Window -> Output -> ADB Log
вторник, 9 апреля 2013 г.
NetBeans, Android и загрузка apk
Свеже установленный NetBeans и плагин к нему для Android работает, и даже запускает созданный эмулятор. Да только приложение туда не загружает.
А все потому, но нужно запустить adb в качестве сервера, иначе NetBeans просто не сможет установить ваше приложние в эмуляторе. Т.е. при попытке выполнить приложение откроется эмулятор, а приложения там нет.
Запускается так
_путь_к_SDK_Android_/platform-tools/adb start-server
А все потому, но нужно запустить adb в качестве сервера, иначе NetBeans просто не сможет установить ваше приложние в эмуляторе. Т.е. при попытке выполнить приложение откроется эмулятор, а приложения там нет.
Запускается так
_путь_к_SDK_Android_/platform-tools/adb start-server
Netbeans и Android SDK
Подробной инструкции здесь нет, скорее краткий конспект.
Основная информация взята здесь http://forums.netbeans.org/post-143696.html правда в ней урл на плагин устарел.
***
Придется обновить NetBeans до версии не ниже 7.2 (собирался давно это сделать, но теперь придется обязательно). Берем тут https://netbeans.org/downloads/
На текущий момент доступна версия 7.3 -- netbeans-7.3-linux.sh
запускаем инсталлятор
sh netbeans-7.3-linux.sh
Достаточно крупное обновление версии, так что проще переустановить.
Попутно инсталятор пожаловался на слегка устаревшую версию JDK.
Свежие версии традиционно тут http://www.oracle.com/technetwork/java/javase/downloads/index.html
Как поставить в Debian http://mldav.blogspot.com/2012/02/debian-java-sun-jdk7.html
***
Качаем сам Android SDK http://developer.android.com/sdk/index.html
Теперь (2014.01) SDK находится в разделе "USE AN EXISTING IDE"
для Linux это будет что-то вроде android-sdk_.....-linux.tgz
распаковываем и запускаем ./tools/android
В Tools выбираем "Android SDK Platform-tools" и так же отмечаем нужные API. Жмем "Install xx packages"
отмечаем согласие с лицензиями "Accept License" и жмем "Install"
В прежние времена на 64битной системе утилита adb откзалась запускаться и выдала что-то вроде:
./adb: error while loading shared libraries: libncurses.so.5
для ее запуска понадобились два пакета "32битных" : lib32ncurses5 и lib32stdc++6
Создаем новый эмулятор - идем в Tools -> Manag AVDs... -> New
и заполняем все необходимые поля - версия API, размер SD карты. Имеет смысл выбрать Snapshot - быстрее будет грузиться из "снимка" системы.
Тут же можем и протестировать эмулятор кликнув "Statr", имеет смысл задать чекбокс "Launch from snapshot" - загрузка из снапшота и "Save to snapshot", затем при следующих стартах галку в "Save to snapshot" снять, дабы не портить готовый снапшот.
======================
***
Плагин для NetBeans
Tools->Plugins->Settings - там добавляем новый источник обновлений плагинов - жмем кнопку "Add" и добавляем URL http://nbandroid.org/release72/updates/updates.xml
Описание проекта плагина - http://www.nbandroid.org/p/installation.html
Затем переходим на вкладку "Avalable Plugins", находим в списке "Android" отмечаем чекбокс и жмем кнопку "Install". Соглашаемся с лицензией и смиряемся с тем, что плагины не подписаны, т.е. жмем "Continue".
Так же можно установить плагин NBAndroid Extenstions, правда потребуется подписка от http://www.nbandroid.org
Укажем путь к android-sdk
Tools -> Options -> Miscellaneous -> Android
Попробуем создать новый проект:
File -> New -> Android -> Android Project
Обращая внимание на забавное предупреждение "Package name must have at least two parts (Android Bug)"
И еще не забыть добавить импорт
import ваш_пакет.R;
и пересобрать проект - clean and build
или без импорта сразу попробовать пересобрать.
В параметре Run поменять вызов активити
И важно не забыть запустить adb в качестве сервера, иначе NetBeans просто не сможет установить ваше приложние в эмуляторе. Т.е. при попытке выполнить приложение откроется эмулятор, а приложения там нет.
Запускается так
_путь_к_SDK_Android_/platform-tools/adb start-server
Основная информация взята здесь http://forums.netbeans.org/post-143696.html правда в ней урл на плагин устарел.
***
Придется обновить NetBeans до версии не ниже 7.2 (собирался давно это сделать, но теперь придется обязательно). Берем тут https://netbeans.org/downloads/
На текущий момент доступна версия 7.3 -- netbeans-7.3-linux.sh
запускаем инсталлятор
sh netbeans-7.3-linux.sh
Достаточно крупное обновление версии, так что проще переустановить.
Попутно инсталятор пожаловался на слегка устаревшую версию JDK.
Свежие версии традиционно тут http://www.oracle.com/technetwork/java/javase/downloads/index.html
Как поставить в Debian http://mldav.blogspot.com/2012/02/debian-java-sun-jdk7.html
***
Качаем сам Android SDK http://developer.android.com/sdk/index.html
Теперь (2014.01) SDK находится в разделе "USE AN EXISTING IDE"
для Linux это будет что-то вроде android-sdk_.....-linux.tgz
распаковываем и запускаем ./tools/android
В Tools выбираем "Android SDK Platform-tools" и так же отмечаем нужные API. Жмем "Install xx packages"
отмечаем согласие с лицензиями "Accept License" и жмем "Install"
В прежние времена на 64битной системе утилита adb откзалась запускаться и выдала что-то вроде:
./adb: error while loading shared libraries: libncurses.so.5
для ее запуска понадобились два пакета "32битных" : lib32ncurses5 и lib32stdc++6
Создаем новый эмулятор - идем в Tools -> Manag AVDs... -> New
и заполняем все необходимые поля - версия API, размер SD карты. Имеет смысл выбрать Snapshot - быстрее будет грузиться из "снимка" системы.
Тут же можем и протестировать эмулятор кликнув "Statr", имеет смысл задать чекбокс "Launch from snapshot" - загрузка из снапшота и "Save to snapshot", затем при следующих стартах галку в "Save to snapshot" снять, дабы не портить готовый снапшот.
======================
***
Плагин для NetBeans
Tools->Plugins->Settings - там добавляем новый источник обновлений плагинов - жмем кнопку "Add" и добавляем URL http://nbandroid.org/release72/updates/updates.xml
Описание проекта плагина - http://www.nbandroid.org/p/installation.html
Затем переходим на вкладку "Avalable Plugins", находим в списке "Android" отмечаем чекбокс и жмем кнопку "Install". Соглашаемся с лицензией и смиряемся с тем, что плагины не подписаны, т.е. жмем "Continue".
Так же можно установить плагин NBAndroid Extenstions, правда потребуется подписка от http://www.nbandroid.org
Укажем путь к android-sdk
Tools -> Options -> Miscellaneous -> Android
Попробуем создать новый проект:
File -> New -> Android -> Android Project
Обращая внимание на забавное предупреждение "Package name must have at least two parts (Android Bug)"
И еще не забыть добавить импорт
import ваш_пакет.R;
и пересобрать проект - clean and build
или без импорта сразу попробовать пересобрать.
В параметре Run поменять вызов активити
И важно не забыть запустить adb в качестве сервера, иначе NetBeans просто не сможет установить ваше приложние в эмуляторе. Т.е. при попытке выполнить приложение откроется эмулятор, а приложения там нет.
Запускается так
_путь_к_SDK_Android_/platform-tools/adb start-server
воскресенье, 27 мая 2012 г.
Android и djvu
EBookDroid
http://4pda.ru/forum/index.php?showtopic=260150&st=520#entry13219076
как пишут - это дальнейшее развитие VuDroid
http://4pda.ru/forum/index.php?showtopic=260150&st=520#entry13219076
как пишут - это дальнейшее развитие VuDroid
четверг, 17 мая 2012 г.
Android и gps
Программы:
My Tracks - пожалуй самая удобная для записи треков, позволяет добавлять комментарии и т.п.
Sports Tracker - удобна для отслеживания тренировок на местности.
My Tracks - пожалуй самая удобная для записи треков, позволяет добавлять комментарии и т.п.
Sports Tracker - удобна для отслеживания тренировок на местности.
суббота, 17 марта 2012 г.
Android, Eclipse и отсутствие вкладки "Graphical Layout" при редактировании Layout
Eclipse и отсутствие вкладки "Graphical Layout" при редактировании Layout. Из доступных лишь Design и Source.
Решение - правый клик на файле layout в "Package Explorer" и далее Open With -> Android Layout Editor
Решение - правый клик на файле layout в "Package Explorer" и далее Open With -> Android Layout Editor
четверг, 15 марта 2012 г.
Android и "Not trusted server certificate"
Ситуация - нужно написать приложение дергающее https://..., а там не подписанный сертификат (самоподписанный и т.п.). Причем этот сертификат никому даром не нужен в хранилище. При обычном вызове
URLConnection conn = url.openConnection();
получим исключение с содержимым "Not trusted server certificate"
Простой способ отключить проверку сертификата - добавить перед вызовом что-то вроде этого:
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
}
};
try {
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
}
и дальше уже все как обычно:
URL url = new URL("https://www.example.com");
URLConnection conn = url.openConnection();
URLConnection conn = url.openConnection();
получим исключение с содержимым "Not trusted server certificate"
Простой способ отключить проверку сертификата - добавить перед вызовом что-то вроде этого:
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
}
};
try {
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
}
и дальше уже все как обычно:
URL url = new URL("https://www.example.com");
URLConnection conn = url.openConnection();
понедельник, 12 марта 2012 г.
пятница, 9 марта 2012 г.
Android, программирование и памятка
** В Activity метод setTitle - меняет заголовок - тот, что в string app_name прописан.
** Поличить значение ресурса можно через метод getResources(), так название приложения можно получить getResources().getString(R.string.app_name). Возвращает String.
** Проверить поле ввода myEditText на "пустоту":
if (TextUtils.isEmpty(myEditTextNum1.getText().toString()) {}
** Задание числового типа для элементов android:inputType="numberDecimal"
android:digits="0123456789.," явное задание набора цифр и разделителей.
** Быстрый онлайн-конвертер иконок http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html
** Логи - вкладка LogCat в Eclipse. Отображение в меню Window -> "Show View" -> Other -> Android -> LogCat
** ПУстой LogCat. Нет захвата логов. Идем в Windows -> Open Perspective -> Others -> DDMS
слева в вкладке device находим 'emulator' и нажимаем на нем. В логах должны появится записи. Затем переключаемся на "перспективу" java
** Просмотр файлов в эмуляторе - в Eclipse меню Window -> Show View -> Other -> Android -> File Explorer. Данные приложения находятся в /data/data/_ваш_package_
** Хранение данных - метод getSharedPreferences("myPref", MODE_PRIVATE) - позволяет явно задать имя файла для хранения данных
** База SQLite. Необходимо использовать в качестве идентификатора поле "_id" ибо в доках по Cursor-адаптерам: "The Cursor must include a column named "_id" or this class will not work.". т.е. необходимо, чтобы таблица содержала поле _id, иначе адаптер не будет работать.
** Цвет заданный в xml метод .setTextColor(getResources().getColor(R.color.green));
** Работа с Map - к примеру переменная mapData
Вариант 1
Set<String> keys = mapData.keySet();
for (String key: keys) {
String value = (String) mapData.get(key);
}
Вариант 2
for (Map.Entry<String, Object> entry: mapData.entrySet()) {
String key = entry.getKey();
String value = (String) entry.getValue();
}
**
**
**
**
**
**
** Поличить значение ресурса можно через метод getResources(), так название приложения можно получить getResources().getString(R.string.app_name). Возвращает String.
** Проверить поле ввода myEditText на "пустоту":
if (TextUtils.isEmpty(myEditTextNum1.getText().toString()) {}
** Задание числового типа для элементов android:inputType="numberDecimal"
android:digits="0123456789.," явное задание набора цифр и разделителей.
** Быстрый онлайн-конвертер иконок http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html
** Логи - вкладка LogCat в Eclipse. Отображение в меню Window -> "Show View" -> Other -> Android -> LogCat
** ПУстой LogCat. Нет захвата логов. Идем в Windows -> Open Perspective -> Others -> DDMS
слева в вкладке device находим 'emulator' и нажимаем на нем. В логах должны появится записи. Затем переключаемся на "перспективу" java
** Просмотр файлов в эмуляторе - в Eclipse меню Window -> Show View -> Other -> Android -> File Explorer. Данные приложения находятся в /data/data/_ваш_package_
** Хранение данных - метод getSharedPreferences("myPref", MODE_PRIVATE) - позволяет явно задать имя файла для хранения данных
** База SQLite. Необходимо использовать в качестве идентификатора поле "_id" ибо в доках по Cursor-адаптерам: "The Cursor must include a column named "_id" or this class will not work.". т.е. необходимо, чтобы таблица содержала поле _id, иначе адаптер не будет работать.
** Цвет заданный в xml метод .setTextColor(getResources().getColor(R.color.green));
** Работа с Map - к примеру переменная mapData
Вариант 1
Set<String> keys = mapData.keySet();
for (String key: keys) {
String value = (String) mapData.get(key);
}
Вариант 2
for (Map.Entry<String, Object> entry: mapData.entrySet()) {
String key = entry.getKey();
String value = (String) entry.getValue();
}
**
**
**
**
**
**
Android, adb и "???????????? no permissions"
Если утилита adb на запрос adb devices выдала "???????????? no permissions", необходимо правильно настроить права при создании.
Смотрим lsusb на предмет Вашего андроида, в моем случае это был:
Bus 002 Device 006: ID
Добавляем файлик /etc/udev/rules.d/51-android.rules со следующим содержанием (со своими значениями ID и пользователя).
Затем /etc/init.d/udev reload. Переподключаем смарт.
и снова смотрим вывод adb devices
устройство должно опознаться и вывести что-то вроде:
4CA94Dxxxxx device
Еще бывает уже при настроенной udev "отказ", тогда помогает
sudo ./adb kill-server
sudo ./adb start-server
sudo ./adb devices
Смотрим lsusb на предмет Вашего андроида, в моем случае это был:
Bus 002 Device 006: ID
12d1:1038 Huawei Technologies Co., Ltd.Добавляем файлик /etc/udev/rules.d/51-android.rules со следующим содержанием (со своими значениями ID и пользователя).
SUBSYSTEMS=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct} =="1038",
MODE="0666", OWNER="_пользователь_"
Затем /etc/init.d/udev reload. Переподключаем смарт.
и снова смотрим вывод adb devices
устройство должно опознаться и вывести что-то вроде:
4CA94Dxxxxx device
Еще бывает уже при настроенной udev "отказ", тогда помогает
sudo ./adb kill-server
sudo ./adb start-server
sudo ./adb devices
среда, 7 марта 2012 г.
Eclipse, Android, эмулятор (AVD) и "засыпание" на Launching xxx (27%)
Проблема при очередном вызове Run для тестирования приложения в эмуляторе Android.
Процесс останавливается на "Launching _имя_приложения_: (27%)"
Как один из методов обхода этого досадного бага - запуск AVD эмулятора ДО вызова Run.
т.е. последовательность действий такая
1. Стартуем Eclipse
2. Идем в меню Window -> AVD Manager
3. Выбираем наш эмулятор и жмем Start
4. Run - запускаем проект
Процесс останавливается на "Launching _имя_приложения_: (27%)"
Как один из методов обхода этого досадного бага - запуск AVD эмулятора ДО вызова Run.
т.е. последовательность действий такая
1. Стартуем Eclipse
2. Идем в меню Window -> AVD Manager
3. Выбираем наш эмулятор и жмем Start
4. Run - запускаем проект
воскресенье, 4 марта 2012 г.
Android и Eclipse, настройка эмулятора.
Настройка Android Emulator.
А именно - Android Virtual Device (AVD)
1. В Eclipse, выбираем Window -> AVD Manager.
2. Клик на New
3. Name = что понравится, к примеру: my_avd
Target = выбираем установленный SDK.
Можно заполнить и остальные поля, но для начала хватит.
4. Клик на Create AVD.
А именно - Android Virtual Device (AVD)
1. В Eclipse, выбираем Window -> AVD Manager.
2. Клик на New
3. Name = что понравится, к примеру: my_avd
Target = выбираем установленный SDK.
Можно заполнить и остальные поля, но для начала хватит.
4. Клик на Create AVD.
пятница, 12 августа 2011 г.
Android SDK и Eclipse - настройка
** Устанавливаем Java - sun-java6-jre
** Устанавливаем JDK - sun-java6-jdk
** Скачать свежий SDK http://developer.android.com/sdk/index.html
Распаковать его и запусить ./tools/android
** Доустановить утилиты --
Available packages -> Android Repository -> Android SDK Platform-tools
(в нем содержится нужная утилитка adb)
На "64битной" системе утилита adb откзалась запускаться и выдала что-то вроде:
./adb: error while loading shared libraries: libncurses.so.5
для ее запуска понадобились два пакета "32битных" : lib32ncurses5 и lib32stdc++6
** Доустановить нужные SDK под конкретную версию ОС --
Available packages -> Android Repository -> SDK Platform Android x.x (x.x версия)
** Теперь установить ADT плагин в Eclipse. (если нужно донастроить прокси)
Help > Install New Software > кнопка Add > ввести "ADT Plugin" как Name и Location = "https://dl-ssl.google.com/android/eclipse/" > кнопка OK
выбираем "Developer Tools" и жмем Next и видим список компонентов, которые будут скачены - опять Next. Читаем лиценизию и соглашаемся с ней (чекбокс accept) и жмем Finish. В процессе будет что-то на счет "не доверенных" компонентов, доверяем всем.
Рестартим Eclipse.
** Указываем Eclipse путь к установленному SDK
Window->Preferences-> Android ->Browse - указываем путь к SDK.
** Устанавливаем JDK - sun-java6-jdk
** Скачать свежий SDK http://developer.android.com/sdk/index.html
Распаковать его и запусить ./tools/android
** Доустановить утилиты --
Available packages -> Android Repository -> Android SDK Platform-tools
(в нем содержится нужная утилитка adb)
На "64битной" системе утилита adb откзалась запускаться и выдала что-то вроде:
./adb: error while loading shared libraries: libncurses.so.5
для ее запуска понадобились два пакета "32битных" : lib32ncurses5 и lib32stdc++6
** Доустановить нужные SDK под конкретную версию ОС --
Available packages -> Android Repository -> SDK Platform Android x.x (x.x версия)
** Теперь установить ADT плагин в Eclipse. (если нужно донастроить прокси)
Help > Install New Software > кнопка Add > ввести "ADT Plugin" как Name и Location = "https://dl-ssl.google.com/android/eclipse/" > кнопка OK
выбираем "Developer Tools" и жмем Next и видим список компонентов, которые будут скачены - опять Next. Читаем лиценизию и соглашаемся с ней (чекбокс accept) и жмем Finish. В процессе будет что-то на счет "не доверенных" компонентов, доверяем всем.
Рестартим Eclipse.
** Указываем Eclipse путь к установленному SDK
Window->Preferences-> Android ->Browse - указываем путь к SDK.
Android 2.2 и bluetooth клавиатура.
Есть платная программа Blueinput от teksoft - если не жалко 10 евро она возможно поможет.
Если жалко:
статья на английском http://i-miss-erin.blogspot.com/2009/09/connect-bluetooth-keyboard-in-android.html
** Девайсы необходимо "спарить"
Settings->Wireless&networks->Bluetooth settigs
Включаем Bluetooth и клавиатуру (иногда на ней надо нажать еще хитрую кнопочку с обратной стороны, что бы она начала вещать на все окрестности о себе - как правило всего несколько минуть, затем если не успели - повторить нажатие)
На смарте жмем Scan for device - клавиатура должна появиться в списке Bluetooth devices
Жмем на строчку с названием клавиатуры (Bluetooth Keyboard) и вводим код - любой, к примеру 1234
ОК. Теперь этот же код набираем на клавиатуре и на жмем enter.
Состояние строки под Bluetooth Keyboard измениться на Paired but not connected
Версия для смарта, без применения компьютера
* нужен root на девайс - z4root
* нужен установленный - busybox
* нужен установленный - GScript
Качаем файлы в папку на флэшке - gscript (/mnt/sdcard/gscript)
hciconfig
hcitool
hidd
cp_blueutils.sh
В моем Huaway U8500 уже был в системе hcitool и при замене предложенным, сканирование устройств перестало корректно работать. Поэтому на всякий случай выкладываю и его.
hcitool.orgin_u8500
Если качается стандартным гугл.браузером, то все падает на флэшку в папку download, но программам к имени добавляется суффикс .bin, т.е. было hidd, скачалось hidd.bin. Т.е. надо переименовыват (отрывать у имени .bin) и копировать в нужный каталог.
Opera такими проблемами не страдает, она позволяет сразу выбрать - куда скачивать (выбираем папку gscript) и сохраняет с нормальными именами.
Затем запускаем GScript. В меню выбираем "Add script". Жмем "Load file" и выбираем cp_blueutils.sh
Проверяем, есть ли галка на "Needs SU?" - она нам нужна для рута и жмем "Save". В списке скриптов появиться cp_blueutils. Запускаем его на выполнение. На экране должны быть строки о выполнении, типа:
"copy 'hidd' to /system/xbin"
В версии Android ниже 2.2 флэшка (sdcard) монтировалась не в /mnt/sdcard, а в /sdcard
В этому случае надо в скрипте cp_blueutils.sh поправить строку вида:
cd /mnt/sdcard/gscript
отредактировать до вида:
cd /sdcard/gscript
Что бы убедиться, что все и правда скопировалось куда нужно можно еще раз запустить скрипт. На этот раз должно быть что-то вроде
"'hidd' already exists in /system/xbin"
Значит все скопировали.
Скачаем еще немного скрптов в папку gscript:
scan.sh
connect.sh
make_bbb.sh (нужен только если хотите в дальнейшем запускать connect из эмулятора терминала)
Затем запускаем GScript. В меню выбираем "Add script". Жмем "Load file" и выбираем scan.sh, затем сохраняем и запускаем его из списка. Если ничего не нашлось, попробуйте активирвоать на клавиатуре магическую кнопочку.
Должно получиться что-то вроде:
Scanning ...
00:22:43:C6:5B:B9 Bluetooth Keyboard
Запоминаем эти хх:хх:хх:хх:хх:хх цифры-буквы, это MAC адрес клавиатуры. Теперь надо в GScript добавить из файла скрипт connect.sh и в нем ИЗМЕНИТЬ строку вида
mac="00:22:43:C6:5B:B9"
на ваши цифры-буквы. Затем сохранить и выполнить.
После этого клавиатура должна заработать.
В дальнейшем запускать только скрипт connect. Остальные в принципе можно удалить, впрочем как и скачанные программы в папке gscript. Если запусить скрипт make_bbb (пердварительно отредактировав в нем MAC адрес, как и в случае со скриптом connect), то в /system/xbin/ появиться файл bbb. Т.е. теперь можно будет из эмулятора терминала набирать su и затем bbb. И клавиатура должна подключиться.
Вторая версия вышеизложенного - работа с компьютера:
--Смарт должен быть рутован (инструкций огромное множество)--
Качаем недостающие программы:
http://androidobex.googlecode.com/files/hciconfig
http://androidobex.googlecode.com/files/hcitool
http://androidobex.googlecode.com/files/hidd
Итак, вся работа будет производиться через утилиту adb которая входит в комплект SDK Android
** Необходимо подключить девайс через usb к компьютеру.
** Так же после этого включить режим отладки: ставим галку в Settings->Aplication->Development->Usb debugging (как это на русском не помню)
** Запускаем adb shell. Сразу оговорюсь, как под виндой это работает не знаю, нет ее у меня, но говорят, что как-то работает.
В ответ на запуск adb shell получаем приглашение $
Вводим "su" и enter для получения root. И вот тут внимательно смотрим на экран, так как при первом запросе su из шела появиться запрос на предоставление рута (10сек) и надо подтвердить.
Если все нормально, $ поменяется на # - root.
** Теперь надо перемонтировать раздел /system для чтения-записи (изначально он монтируется только на чтение)
Частенько разделы /system имеют отличие - system - это всего лишь точка монтирования, а сам раздел выглядит похоже на /dev/block/mtdblockх, где х - номер раздела. Вот этот номер нам и предстоит выяснить. Если бездумно копировать команды инструкций для других моделей, можно смонтировать ошибочно раздел. Ну в общем. я Вас предупредил.
Смотрим, что и куда смонитировано (символ # набирать не надо, он уже отображается на экране):
# mount
в строчках ищем что-то вроде
/dev/block/mtdblock4 /system ... - вот 4 - это и есть наш раздел. У Вас может быть другая цифра!
Перемонтируем раздел:
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system
# chmod 777 /system/xbin
Выходим из adb shell (или, предположительно, закрываем окно для винды)
# exit
$ exit
** Теперь надо закинуть три скачанных файлика в смарт.
adb push hidd /system/xbin
adb push hcitool /system/xbin
adb push hciconfig /system/xbin
Сделать исполняемыми:
# chmod 755 /system/xbin/hidd
# chmod 755 /system/xbin/hcitool
# chmod 755 /system/xbin/hciconfig
** Теперь пошаманим с программками. Запускаем adb shell
* Получаем root
$ su
#
* Скнируем на предмет наличия клавиатуры и ее MAC адреса (опять же, не забываем, что клавиатура доступна к обнаружению ограниченное время, если не найдется, находим на ней магическую кнопочку и нажимаем). На выходе получим что-то вроде
# hcitool scan
Scanning ...
00:22:43:C6:5B:B9 Bluetooth keyboard
~~~~~~~~~~~~~~~~~
Цифры-буквы и есть MAC адрес
* Пробуем подключить клавиатуру:
# hidd --connect 00:22:43:C6:5B:B9
Должна заработать.
Для удобства можно сделать скрипт вида (вписать свой MAC адрес):
#!/system/bin/sh
hidd --connect 00:22:43:C6:5B:B9
и сохранить в /system/xbin/bbbb
# chmod 755 /system/xbin/bbbb
Теперь открыв на смарте терминал (к примеру Better Terminal Emulator Pro) и в нем
$ su
# bbbb
Должна подключиться клавиатура
Перечитал, и в итоге получился вольный перевод англоязычной статьи. С дополнением про скрипт.
Если жалко:
статья на английском http://i-miss-erin.blogspot.com/2009/09/connect-bluetooth-keyboard-in-android.html
** Девайсы необходимо "спарить"
Settings->Wireless&networks->Bluetooth settigs
Включаем Bluetooth и клавиатуру (иногда на ней надо нажать еще хитрую кнопочку с обратной стороны, что бы она начала вещать на все окрестности о себе - как правило всего несколько минуть, затем если не успели - повторить нажатие)
На смарте жмем Scan for device - клавиатура должна появиться в списке Bluetooth devices
Жмем на строчку с названием клавиатуры (Bluetooth Keyboard) и вводим код - любой, к примеру 1234
ОК. Теперь этот же код набираем на клавиатуре и на жмем enter.
Состояние строки под Bluetooth Keyboard измениться на Paired but not connected
Версия для смарта, без применения компьютера
* нужен root на девайс - z4root
* нужен установленный - busybox
* нужен установленный - GScript
Качаем файлы в папку на флэшке - gscript (/mnt/sdcard/gscript)
hciconfig
hcitool
hidd
cp_blueutils.sh
В моем Huaway U8500 уже был в системе hcitool и при замене предложенным, сканирование устройств перестало корректно работать. Поэтому на всякий случай выкладываю и его.
hcitool.orgin_u8500
Если качается стандартным гугл.браузером, то все падает на флэшку в папку download, но программам к имени добавляется суффикс .bin, т.е. было hidd, скачалось hidd.bin. Т.е. надо переименовыват (отрывать у имени .bin) и копировать в нужный каталог.
Opera такими проблемами не страдает, она позволяет сразу выбрать - куда скачивать (выбираем папку gscript) и сохраняет с нормальными именами.
Затем запускаем GScript. В меню выбираем "Add script". Жмем "Load file" и выбираем cp_blueutils.sh
Проверяем, есть ли галка на "Needs SU?" - она нам нужна для рута и жмем "Save". В списке скриптов появиться cp_blueutils. Запускаем его на выполнение. На экране должны быть строки о выполнении, типа:
"copy 'hidd' to /system/xbin"
В версии Android ниже 2.2 флэшка (sdcard) монтировалась не в /mnt/sdcard, а в /sdcard
В этому случае надо в скрипте cp_blueutils.sh поправить строку вида:
cd /mnt/sdcard/gscript
отредактировать до вида:
cd /sdcard/gscript
Что бы убедиться, что все и правда скопировалось куда нужно можно еще раз запустить скрипт. На этот раз должно быть что-то вроде
"'hidd' already exists in /system/xbin"
Значит все скопировали.
Скачаем еще немного скрптов в папку gscript:
scan.sh
connect.sh
make_bbb.sh (нужен только если хотите в дальнейшем запускать connect из эмулятора терминала)
Затем запускаем GScript. В меню выбираем "Add script". Жмем "Load file" и выбираем scan.sh, затем сохраняем и запускаем его из списка. Если ничего не нашлось, попробуйте активирвоать на клавиатуре магическую кнопочку.
Должно получиться что-то вроде:
Scanning ...
00:22:43:C6:5B:B9 Bluetooth Keyboard
Запоминаем эти хх:хх:хх:хх:хх:хх цифры-буквы, это MAC адрес клавиатуры. Теперь надо в GScript добавить из файла скрипт connect.sh и в нем ИЗМЕНИТЬ строку вида
mac="00:22:43:C6:5B:B9"
на ваши цифры-буквы. Затем сохранить и выполнить.
После этого клавиатура должна заработать.
В дальнейшем запускать только скрипт connect. Остальные в принципе можно удалить, впрочем как и скачанные программы в папке gscript. Если запусить скрипт make_bbb (пердварительно отредактировав в нем MAC адрес, как и в случае со скриптом connect), то в /system/xbin/ появиться файл bbb. Т.е. теперь можно будет из эмулятора терминала набирать su и затем bbb. И клавиатура должна подключиться.
Вторая версия вышеизложенного - работа с компьютера:
--Смарт должен быть рутован (инструкций огромное множество)--
Качаем недостающие программы:
http://androidobex.googlecode.com/files/hciconfig
http://androidobex.googlecode.com/files/hcitool
http://androidobex.googlecode.com/files/hidd
Итак, вся работа будет производиться через утилиту adb которая входит в комплект SDK Android
** Необходимо подключить девайс через usb к компьютеру.
** Так же после этого включить режим отладки: ставим галку в Settings->Aplication->Development->Usb debugging (как это на русском не помню)
** Запускаем adb shell. Сразу оговорюсь, как под виндой это работает не знаю, нет ее у меня, но говорят, что как-то работает.
В ответ на запуск adb shell получаем приглашение $
Вводим "su" и enter для получения root. И вот тут внимательно смотрим на экран, так как при первом запросе su из шела появиться запрос на предоставление рута (10сек) и надо подтвердить.
Если все нормально, $ поменяется на # - root.
** Теперь надо перемонтировать раздел /system для чтения-записи (изначально он монтируется только на чтение)
Частенько разделы /system имеют отличие - system - это всего лишь точка монтирования, а сам раздел выглядит похоже на /dev/block/mtdblockх, где х - номер раздела. Вот этот номер нам и предстоит выяснить. Если бездумно копировать команды инструкций для других моделей, можно смонтировать ошибочно раздел. Ну в общем. я Вас предупредил.
Смотрим, что и куда смонитировано (символ # набирать не надо, он уже отображается на экране):
# mount
в строчках ищем что-то вроде
/dev/block/mtdblock4 /system ... - вот 4 - это и есть наш раздел. У Вас может быть другая цифра!
Перемонтируем раздел:
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system
# chmod 777 /system/xbin
Выходим из adb shell (или, предположительно, закрываем окно для винды)
# exit
$ exit
** Теперь надо закинуть три скачанных файлика в смарт.
adb push hidd /system/xbin
adb push hcitool /system/xbin
adb push hciconfig /system/xbin
Сделать исполняемыми:
# chmod 755 /system/xbin/hidd
# chmod 755 /system/xbin/hcitool
# chmod 755 /system/xbin/hciconfig
** Теперь пошаманим с программками. Запускаем adb shell
* Получаем root
$ su
#
* Скнируем на предмет наличия клавиатуры и ее MAC адреса (опять же, не забываем, что клавиатура доступна к обнаружению ограниченное время, если не найдется, находим на ней магическую кнопочку и нажимаем). На выходе получим что-то вроде
# hcitool scan
Scanning ...
00:22:43:C6:5B:B9 Bluetooth keyboard
~~~~~~~~~~~~~~~~~
Цифры-буквы и есть MAC адрес
* Пробуем подключить клавиатуру:
# hidd --connect 00:22:43:C6:5B:B9
Должна заработать.
Для удобства можно сделать скрипт вида (вписать свой MAC адрес):
#!/system/bin/sh
hidd --connect 00:22:43:C6:5B:B9
и сохранить в /system/xbin/bbbb
# chmod 755 /system/xbin/bbbb
Теперь открыв на смарте терминал (к примеру Better Terminal Emulator Pro) и в нем
$ su
# bbbb
Должна подключиться клавиатура
Перечитал, и в итоге получился вольный перевод англоязычной статьи. С дополнением про скрипт.
вторник, 19 июля 2011 г.
Huaway U8500 и Android 2.2
Вышла новая версия.
Перепрошиваем, настраиваем apn и аккаунты.
Music Folder Player - простой плеер, играет файлы в каталогах, есть зацикливание трека.
Устанавливаем:
** Ставим z4root - для root
http://4pda.ru/forum/index.php?showtopic=199355
** Перенос программ на карту памяти -
App 2 SD - http://4pda.ru/forum/index.php?showtopic=212693
** С маркета move2sd enabler и move2sd
** Учет трафика
3G Watchdog - суммарный трафик - http://4pda.ru/forum/index.php?showtopic=127366
TrafficStats - кто и сколько "съел" - http://4pda.ru/forum/index.php?showtopic=183359
** Файрвол - с этого и следует начинать. Нужен root. Droid Wall
http://4pda.ru/forum/index.php?showtopic=131323
** Отключать мобильный интернет apndroid
http://4pda.ru/forum/index.php?showtopic=147639
http://www.android-info.ru/applications/apndroid-otkluchenie-mobilnogo-interneta#more-1
** Блокировка рекламы - Adfree
http://4pda.ru/forum/index.php?showtopic=128383
** Терминал - Better Terminal Emulator Magic
http://4pda.ru/forum/index.php?showtopic=148522
** SSH клиент - ConnectBot
http://4pda.ru/forum/index.php?showtopic=129287
** Root Explorer
http://4pda.ru/forum/index.php?showtopic=134840
Особенность версии 2.2 - экран не разблокируется с помощью двойного нажатия на menu.
Надо рут_эксплорером в файлике build.prop (/system) в строке:
ro.config.hw_menu_unlockscreen=false
заменить false на true. И перезагрузить.
** автоматически включает громкую связь - Up Sound Down
http://4pda.ru/forum/index.php?showtopic=169320
** напоминалка о пропущенных вызовах - Easy Reminder
http://4pda.ru/forum/index.php?showtopic=179541
** быстрый набор номера - QuickDial
http://4pda.ru/forum/index.php?showtopic=139593
** плеер аудиокниг (закладки и т.п.) MortPlayer Audio Books
http://4pda.ru/forum/index.php?showtopic=155375
** видео плеер avi и т.д. - RockPlayer Base
http://4pda.ru/forum/index.php?showtopic=174459
** аудио плеер - MortPlayer Music
http://4pda.ru/forum/index.php?showtopic=155367
** просматривать список контактов в виде контакт+мелодия - MortRing
http://4pda.ru/forum/index.php?showtopic=223852
** Пропущенные звонки на экране блокировки - Missed It!
http://4pda.ru/forum/index.php?showtopic=234434
** Контроль за автозапуском - Autostarts
http://4pda.ru/forum/index.php?showtopic=137316
** файловый менеджер - ASTRO File Manager
http://4pda.ru/forum/index.php?showtopic=121761
** файловый менеджер - SU File Manager & Terminal
http://4pda.ru/forum/index.php?showtopic=134842
** файловый менеджер - EStrongs File Explorer
http://4pda.ru/forum/index.php?showtopic=138744
** Battery Indicator
http://4pda.ru/forum/index.php?showtopic=157382
Alarm Clock Plus
Перепрошиваем, настраиваем apn и аккаунты.
Music Folder Player - простой плеер, играет файлы в каталогах, есть зацикливание трека.
Устанавливаем:
** Ставим z4root - для root
http://4pda.ru/forum/index.php?showtopic=199355
** Перенос программ на карту памяти -
App 2 SD - http://4pda.ru/forum/index.php?showtopic=212693
** С маркета move2sd enabler и move2sd
** Учет трафика
3G Watchdog - суммарный трафик - http://4pda.ru/forum/index.php?showtopic=127366
TrafficStats - кто и сколько "съел" - http://4pda.ru/forum/index.php?showtopic=183359
** Файрвол - с этого и следует начинать. Нужен root. Droid Wall
http://4pda.ru/forum/index.php?showtopic=131323
** Отключать мобильный интернет apndroid
http://4pda.ru/forum/index.php?showtopic=147639
http://www.android-info.ru/applications/apndroid-otkluchenie-mobilnogo-interneta#more-1
** Блокировка рекламы - Adfree
http://4pda.ru/forum/index.php?showtopic=128383
** Терминал - Better Terminal Emulator Magic
http://4pda.ru/forum/index.php?showtopic=148522
** SSH клиент - ConnectBot
http://4pda.ru/forum/index.php?showtopic=129287
** Root Explorer
http://4pda.ru/forum/index.php?showtopic=134840
Особенность версии 2.2 - экран не разблокируется с помощью двойного нажатия на menu.
Надо рут_эксплорером в файлике build.prop (/system) в строке:
ro.config.hw_menu_unlockscreen=false
заменить false на true. И перезагрузить.
** автоматически включает громкую связь - Up Sound Down
http://4pda.ru/forum/index.php?showtopic=169320
** напоминалка о пропущенных вызовах - Easy Reminder
http://4pda.ru/forum/index.php?showtopic=179541
** быстрый набор номера - QuickDial
http://4pda.ru/forum/index.php?showtopic=139593
** плеер аудиокниг (закладки и т.п.) MortPlayer Audio Books
http://4pda.ru/forum/index.php?showtopic=155375
** видео плеер avi и т.д. - RockPlayer Base
http://4pda.ru/forum/index.php?showtopic=174459
** аудио плеер - MortPlayer Music
http://4pda.ru/forum/index.php?showtopic=155367
** просматривать список контактов в виде контакт+мелодия - MortRing
http://4pda.ru/forum/index.php?showtopic=223852
** Пропущенные звонки на экране блокировки - Missed It!
http://4pda.ru/forum/index.php?showtopic=234434
** Контроль за автозапуском - Autostarts
http://4pda.ru/forum/index.php?showtopic=137316
** файловый менеджер - ASTRO File Manager
http://4pda.ru/forum/index.php?showtopic=121761
** файловый менеджер - SU File Manager & Terminal
http://4pda.ru/forum/index.php?showtopic=134842
** файловый менеджер - EStrongs File Explorer
http://4pda.ru/forum/index.php?showtopic=138744
** Battery Indicator
http://4pda.ru/forum/index.php?showtopic=157382
Alarm Clock Plus
пятница, 18 марта 2011 г.
Android и удаление системных приложений
Итак, необходимо удалить "системное" приложение. В списке к удалению его конечно же нет, на то и системное.
Рассмотрим на примере DocumentToGo - в одной из прошивок его воткнули в "системные", а следовательно обновить его версию и заодно вылечить от жадности обычным способом не выходит.
Нужен рут (root)
Оно живет в /system/app/DocumentToGo_viewer_pdf.apk
Удаляем, но просто удалить его мало. Надо еще вычистить из системы. Для этого открываем файл
/data/system/packages.xml и ищем наше приложение в параметре codePath, запоминаем, что написано в параметре name - в нашем случае com.dataviz.docstogo
и из шела даем команду:
pm uninstall com.dataviz.docstogo
После этого приложение полностью удалено. В принципе, надо бы проверить его кэш и т.п.
Рассмотрим на примере DocumentToGo - в одной из прошивок его воткнули в "системные", а следовательно обновить его версию и заодно вылечить от жадности обычным способом не выходит.
Нужен рут (root)
Оно живет в /system/app/DocumentToGo_viewer_pdf.apk
Удаляем, но просто удалить его мало. Надо еще вычистить из системы. Для этого открываем файл
/data/system/packages.xml и ищем наше приложение в параметре codePath, запоминаем, что написано в параметре name - в нашем случае com.dataviz.docstogo
и из шела даем команду:
pm uninstall com.dataviz.docstogo
После этого приложение полностью удалено. В принципе, надо бы проверить его кэш и т.п.
воскресенье, 9 января 2011 г.
Android, Huaway U8500 и перенос программ на SD карту
Сам метод можно назвать app2sd, а мануалов полно в сети (что-то вроде http://4pda.ru/forum/index.php?showtopic=187486&st=440). Разбиваем катру на два раздела - оба примари. первый фат, второй ext2 (взял 512М - пока хватает). Файлы для автоматизации дальнейших действий подходят от LG GT540. Раздел /system совпадает с нашим, а именно /dev/block/mtdblock4. Можно запустить скрипт и он все что надо - сделает, можно "ручками" через adb shell набить команды из файлика gscript/a2sd.sh (так в общем-то и делал, во избежании недоразумений). busybox - уже был, еще при рутовании поставил. Перед переносом поубирал второстепенные приложения, потом они уже ставились сразу на карту. (вообще проскакивала информация, что при установке инсталяторы смотрят цифры свободной памяти из "настроек" и конечно же они ничего не знают о переносе разделов. поэтому желательно "зачистить" свободное пространство как можно больше, на сколько правда - не проверял)
В общем - перезапуск и работает.
Если кому надо подробнее, пишите в комент, добавлю описание.
В общем - перезапуск и работает.
Если кому надо подробнее, пишите в комент, добавлю описание.
суббота, 11 декабря 2010 г.
Android и wifi в режиме Ad-Hoc - Huaway U8500
В "штатной" поставе не может подключаться к wifi в режиме Ad-Hoc (вообще их не видит).
Жмем "добавить сеть Wi-Fi" и в ручную указываем "Сетевой SSID". Затем идем в /data/misc/wifi и редактируем файлик wpa_supplicant.conf
ГЛАВНОЕ!!! Проверить права и владельца на этот файлик (должно быть 660 system.wifi) - иначе wifi НЕ ЗАПУСТИТСЯ - будет писать "Не удалось запустить Wi-Fi"!!!
В начало добавляем строку:
ap_scan=2 (при этом будут сканироваться все сети, в том числе и ad-hoc)
а затем в раздел
network={
ssid="наш ssid"
scan_ssid=1
key_mgmt=NONE
priority=20
wep_key0="пароль"<---------- добавляем эту строку если есть пароль и wep
mode=1 <---------- добавляем эту строку (для указания ad-hoc)
}
сохраняем, и идем обратно в системные настройки wifi, точка должна увидеться и получить от нее адресс и т.п.
Есть метод с заменой файла /system/bin/wpa_supplicant на пропатченную версию, но у меня на U8500 не пошел.
Жмем "добавить сеть Wi-Fi" и в ручную указываем "Сетевой SSID". Затем идем в /data/misc/wifi и редактируем файлик wpa_supplicant.conf
ГЛАВНОЕ!!! Проверить права и владельца на этот файлик (должно быть 660 system.wifi) - иначе wifi НЕ ЗАПУСТИТСЯ - будет писать "Не удалось запустить Wi-Fi"!!!
В начало добавляем строку:
ap_scan=2 (при этом будут сканироваться все сети, в том числе и ad-hoc)
а затем в раздел
network={
ssid="наш ssid"
scan_ssid=1
key_mgmt=NONE
priority=20
wep_key0="пароль"<---------- добавляем эту строку если есть пароль и wep
mode=1 <---------- добавляем эту строку (для указания ad-hoc)
}
сохраняем, и идем обратно в системные настройки wifi, точка должна увидеться и получить от нее адресс и т.п.
Есть метод с заменой файла /system/bin/wpa_supplicant на пропатченную версию, но у меня на U8500 не пошел.
Android и перемонтирование раздела system - Huaway U8500
Для изменений на разделе system требуется его перемонтировать с возможностью записи:
mount -o remount,rw /dev/block/mtdblock4 /system
либо через
adb remount - но у меня не пошло, да и adb root - тоже не пошло с таким сообщением "adbd cannot run as root in production builds" - типа - не девелоперский девайс.
mount -o remount,rw /dev/block/mtdblock4 /system
либо через
adb remount - но у меня не пошло, да и adb root - тоже не пошло с таким сообщением "adbd cannot run as root in production builds" - типа - не девелоперский девайс.
Android и SDK - Huaway U8500
Брать здесь - бывает по 5 минут ждешь ответа от сервера.
http://developer.android.com/sdk/index.html
Скачал, а там самый минимум, даже adb нет. запускаем tools/android в оболочке настраиваем проксик если надо, Android Repository - Android SDK Platform-tools. Апдейтим.
Запускаем
adb start-server
затем
adb devices
и фиг вам. Не хочет устройство определяться. Для это нужна утилитка usb_modeswitch и база устройств к ней usb-modeswitch-data.
Еще можно поменять права, у меня девайс определился как /dev/sr3, ставим 666.
http://www.draisberghof.de/usb_modeswitch/
Компилируем, базу копируем в /etc/usb_modeswitch.d, если надо прописываем в правила udev
И запускаем
usb_modeswithc -c /etc/usb_modeswitch.d/12d1:1031 (это для Huaway U8500, lsusb вам в помощь)
Все, режим устройства мы переключили и теперь
adb kill-server
adb start-server
adb devices
видим наш девайс, затем получим шел
adb shell
готово, работает - правда от шела не стоит ожидать всех возможностей, он сильно урезан.
http://developer.android.com/sdk/index.html
Скачал, а там самый минимум, даже adb нет. запускаем tools/android в оболочке настраиваем проксик если надо, Android Repository - Android SDK Platform-tools. Апдейтим.
Запускаем
adb start-server
затем
adb devices
и фиг вам. Не хочет устройство определяться. Для это нужна утилитка usb_modeswitch и база устройств к ней usb-modeswitch-data.
Еще можно поменять права, у меня девайс определился как /dev/sr3, ставим 666.
http://www.draisberghof.de/usb_modeswitch/
Компилируем, базу копируем в /etc/usb_modeswitch.d, если надо прописываем в правила udev
И запускаем
usb_modeswithc -c /etc/usb_modeswitch.d/12d1:1031 (это для Huaway U8500, lsusb вам в помощь)
Все, режим устройства мы переключили и теперь
adb kill-server
adb start-server
adb devices
видим наш девайс, затем получим шел
adb shell
готово, работает - правда от шела не стоит ожидать всех возможностей, он сильно урезан.
Подписаться на:
Сообщения (Atom)