Android как он внутри

всё относительно мобильных гаджетов и приложений

Модераторы: Olej, adminn, vikos

Правила форума
Все сообщения не по теме форума будут, без каких либо уведомлений, удаляться, а их авторы - убираться из регистрации.
Язык сообщений - исключительно русский.
tundra37
Писатель
Сообщения: 149
Зарегистрирован: 03 мар 2012, 19:26
Контактная информация:

Re: Android как он внутри

Непрочитанное сообщение tundra37 » 04 июн 2012, 01:16

Всю инфу о запуске можно увидеть, запустив emulator -help
Для MIPS я кладу kernel-qemu ramdisk.img system.img userdata.img рядом с эмулятором и задаю
emulator -kernel kernel-qemu -system system.img -data userdata.img -ramdisk ramdisk.img
kernel можно не задавать (по умолчанию берет такое имя) и тоже c ramdisk
Из полезных ключей -shell (можно рулить Линуксом в Андроиде из Линукса/Винды)
-show-kernel - протокол загрузки ядра

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Android как он внутри

Непрочитанное сообщение Olej » 04 июн 2012, 01:48

tundra37 писал(а):Всю инфу о запуске можно увидеть, запустив emulator -help
Это из состава SDK Android обсуждается emulator, что ли?
Который из каталога ~/android-sdk-linux_x86/tools ?

tundra37
Писатель
Сообщения: 149
Зарегистрирован: 03 мар 2012, 19:26
Контактная информация:

Re: Android как он внутри

Непрочитанное сообщение tundra37 » 04 июн 2012, 11:32

Olej писал(а):
tundra37 писал(а):Всю инфу о запуске можно увидеть, запустив emulator -help
Это из состава SDK Android обсуждается emulator, что ли?
Который из каталога ~/android-sdk-linux_x86/tools ?
А в чем разница? Ключи у них одинаковые в основном. Я сейчас как раз пытаюсь понять. Я ищу средства для отладки ядра и приложений на(и для) реальной железке. Можно использовать adb, а я хочу попробовать qemu из SDK. В моем плеере Андроид 2.2 и поэтому сначала хочу работать с ним. В SDK c сайта Андроид нет ничего под MIPS. Я скачал SDK c developer.mips.com (ссылка легко ищется, если надо - найду). Там плюс к SDK для 86 и ARM, есть материалы для MIPS. SDK было два - в первом было ядро для Андроид 3, но пакет был сырой и тормозной и быстренько выложили другой, только под Андроид 4. В SDK-manager можно накачать кое-что для 2.2 но там ядро маленькое - фиг знает для чего оно. Там еще можно скачать Source SDK, но оно тоже только для Андроид 4 и что там - я не знаю. А вот поиски по "Android on QEMU" привели к инфе и ссылкам по git для всех SDK.
Т.е. теперь я могу собирать эмулятор и начинку виртуального устройства из исходников. Экспериментируя со скриптом построения, обнаружил что можно еще делать make sdk
Что это такое, пока не выяснял - придется ждать минут 20 и делает clean :-o
И какая-то чехарда с форматами ядра - для 4.0(SDK для MIPS) это elf на 37 Мб и есть куча мелких - там формат странный(с распаковщиком или загрузчиком). В пакете с исходником ядро в "странном" формате, но не упаковано. Есть там и мелкие ядра и даже vmlinux в папке prebuilt - там и арм и мипс.

Короче масса вопросов.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Android как он внутри

Непрочитанное сообщение Olej » 04 июн 2012, 12:39

tundra37 писал(а):
Olej писал(а):
tundra37 писал(а):Всю инфу о запуске можно увидеть, запустив emulator -help
Это из состава SDK Android обсуждается emulator, что ли?
Который из каталога ~/android-sdk-linux_x86/tools ?
А в чем разница? Ключи у них одинаковые в основном. Я сейчас как раз пытаюсь понять.
Давайте чуть помедленее ;-) ... а то разобраться точно не получится :-?
Разница между чем и чем?
В этой теме ни про какой пакет разработки ещё не говорилось, поэтому трудно понять разница с чем?

Основной (официальный) SDK Android, который берётся с http://developer.android.com/sdk/index.html
tundra37 писал(а): SDK было два - в первом было ядро для Андроид 3, но пакет был сырой и тормозной и быстренько выложили другой, только под Андроид 4. В SDK-manager можно накачать кое-что для 2.2 но там ядро маленькое - фиг знает для чего оно. Там еще можно скачать Source SDK, но оно тоже только для Андроид 4 и что там - я не знаю.
В официальном SDK можно установить и создать среду для любой версии Android, не только начиная с 2, но даже с 1.5.
Да, там:
- эмуляторы (для выполнения в x86 Linux) только для платформ ARM и x86 ...
- ля MIPS там нет
- эмуляторы эти являются модификациями QEMU (они это и сами не раз пишут)
- запустить его командой, типа вами приводимой, можно:

Код: Выделить всё

emulator -kernel kernel-qemu -system system.img -data userdata.img -ramdisk ramdisk.img
- но запустить под QEMU (родным, непатченым ;-) ) с этими файлами ядерными, типа:

Код: Выделить всё

qemu -kernel kernel-qemu -system system.img -data userdata.img -ramdisk ramdisk.img
- не получается,
- т.е. это не "чистый" QEMU
tundra37 писал(а): А вот поиски по "Android on QEMU" привели к инфе и ссылкам по git для всех SDK.
Т.е. теперь я могу собирать эмулятор и начинку виртуального устройства из исходников.
Если что-то кого-то куда-то привело "к ссылке", то для обсуждений нужно сначала показывать ссылку - чтобы был хоть какой-то предмет обсуждения.

tundra37
Писатель
Сообщения: 149
Зарегистрирован: 03 мар 2012, 19:26
Контактная информация:

Re: Android как он внутри

Непрочитанное сообщение tundra37 » 04 июн 2012, 14:26

Ну попробую упорядочить. Кстати, я только сейчас начал понимать "кухню" этих средств разработки.

1) android-sdk_r18-windows "Официальный" SDK для разработки приложений и их отладки на виртуальном устройстве.
Его они(гугл или ?) называют на этом же сайте как :
If you are new to Android, download the SDK Starter Package first.
В него можно через SDK manger добавлять пакеты, в т.ч. и исходники SDK.
Прямо сейчас выясняю, что
By default, Available Packages displays packages available from the Android Repository and Third party Add-ons. You can add other sites that host their own Android SDK add-ons, then download the SDK add-ons from those sites.
Так как тут нет эмулятора под MIPS, то этот SDK мне не интересен, хотя могу его скачать и заглянуть внутрь, если это нужно.

2) Поиски меня привели сюда: http://developer.mips.com/android/download-android-sdk/
Сейчас там дают http://********.edgecastcdn.net/001982/Android/android-sdk-r12m-r17m-windows.zip
Я скачивал android-sdk-r16m-windows.zip ( и промелькнул android-sdk-r12m-windows.zip).
В чем отличия. По байтам не сравнивал с 1), но главное - есть пункты и для АРМ и для МИПС.
Замечу, что скачивал в марте. Как видим уже новая версия и 12-ю вставили тоже.
На работе на столе у меня хилый пень-4 и на нем не поработаешь. Поэтому решил уйти в Линукс, т.к. на работе есть сервера, которые иногда проставивают. Попутно искал дополнительную инфу, т.к. хотелось нормальной эмуляции, а не "слепой" GUI/
3) И нашел : http://developer.mips.com/android/andro ... ing-guide/
http://developer.mips.com/android/android-source-code/
Искал я QEMU для Андроида, а нашел больше. Вообще-то многое на этих страницах для меня китайская грамота, но я преодолел языковой барьер и скачал исходники(сам не зная чего) из git-репозитария. Потом пытался это собрать под Виндой в cygwin, а потом сделал это в Линуксе. Результат с одной стороны потрясающий, а с другой стороны я пока как дикарь стреляющий из автомата :lol: Прыгаю от радости, а толку мало. Резюме: грубо говоря я нашел источник для скачки SDK для SDK Андроида. Официально это называется вроде исходники Андроида. Но там где их дают, нет исходников под MIPS. А здесь есть тулчейны и для АРМ и для х86 и даже sh(уж не помню кто это). Но папка для вывода одна - out и там нет указания на платформу.
Жду вопросы.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Android как он внутри

Непрочитанное сообщение Olej » 04 июн 2012, 14:55

tundra37 писал(а): 1) android-sdk_r18-windows "Официальный" SDK для разработки приложений и их отладки на виртуальном устройстве.
- это и есть тот SDK о котором я говорил выше:

Код: Выделить всё

[olej@nvidia android-sdk-linux_x86]$ pwd
/home/olej/android-sdk-linux_x86
- потом менеджером в его составе (независимо от того, какую версию вы ставили), можно доустановить любую, начиная с 1.5 и до 4.Х
Android SDK Manager.png
Android SDK Manager.png (52.07 КБ) 8018 просмотров
tundra37 писал(а): Так как тут нет эмулятора под MIPS, то этот SDK мне не интересен, хотя могу его скачать и заглянуть внутрь, если это нужно.
- MIPS непосредственно там нет ... ну и что?
- там, зато, богатый и свежий пакет, там много инструментария:

Код: Выделить всё

[olej@nvidia tools]$ pwd
/home/olej/android-sdk-linux_x86/tools
[olej@nvidia tools]$ ls
adb_has_moved.txt  ddms         emulator-arm     hprof-conv  monkeyrunner       sqlite3
android            dmtracedump  emulator-x86     layoutopt   NOTICE.txt         traceview
ant                draw9patch   etc1tool         lib         proguard           zipalign
apkbuilder         emulator     hierarchyviewer  mksdcard    source.properties
и ещё

Код: Выделить всё

[olej@nvidia platform-tools]$ pwd
/home/olej/android-sdk-linux_x86/platform-tools
[olej@nvidia platform-tools]$ ls
aapt  aidl  dexdump  fastboot  llvm-rs-cc  renderscript
adb   api   dx       lib       NOTICE.txt  source.properties
- можно в нём всё что угодно обкатать - потом перенести в MIPS.
tundra37 писал(а): 2) Поиски меня привели сюда: http://developer.mips.com/android/download-android-sdk/
Сейчас там дают http://********.edgecastcdn.net/001982/Android/android-sdk-r12m-r17m-windows.zip
Я скачивал android-sdk-r16m-windows.zip ( и промелькнул android-sdk-r12m-windows.zip).
В чем отличия. По байтам не сравнивал с 1), но главное - есть пункты и для АРМ и для МИПС.
Я не знаю как это в MIPS-клоне, но не верю, что они там хоть что существенно доделали, но в оригинальном SDK можно устанавливать любую версию, а потом тут же обновится до любой, хоть вверх хоть вниз.
Но ещё приятнее, что можно иметь одновременно несколько установленных (обновлённых) версий (у меня: 2.1 и 4.0, на другом рабочем компьютере - пусть вас не вводит в заблуждение картинка, 2.1 - это под мой железный планшет), и по ходу дела переходить в ту, которая сейчас нужна для работы.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Android как он внутри

Непрочитанное сообщение Olej » 04 июн 2012, 15:08

Olej писал(а):Но ещё приятнее, что можно иметь одновременно несколько установленных (обновлённых) версий (у меня: 2.1 и 4.0, на другом рабочем компьютере - пусть вас не вводит в заблуждение картинка, 2.1 - это под мой железный планшет), и по ходу дела переходить в ту, которая сейчас нужна для работы.
В их Tools (меню Manage AVSs) вы в окне Android Virtual Device Manager можете понаделать сколько вам нужно разных виртуальных машин Android, а потом на выбор использовать ту, что надо:
Android Virtual Device Manager .png
Android Virtual Device Manager .png (33.37 КБ) 8015 просмотров
Виртуальные машины Android могут отличатся платформами, версиями Android, настройками для одной и той же версии (например, с SD картой и без неё).

Сами файлы для эмуляторов (образы системные, картинки экранов, ...) для установленных версий-платформ находятся здесь:

Код: Выделить всё

[olej@nvidia platforms]$ pwd
/home/olej/android-sdk-linux_x86/platforms
[olej@nvidia platforms]$ ls
android-14  android-15  android-7
[olej@nvidia platforms]$ tree android-7/images
android-7/images
|-- hardware-qemu.ini
|-- hardware-qemu.ini.lock
|-- kernel-qemu
|-- NOTICE.txt
|-- ramdisk.img
|-- system.img
|-- system.img.lock
`-- userdata.img
0 directories, 8 files
Но сами созданные вами AVD находятся в совсем другом месте - в домашнем каталоге, независимо от места установки SDK:

Код: Выделить всё

[olej@nvidia avd]$ ls -l ~/.android/avd
итого 24
drwxrwxr-x. 2 olej olej 4096 нояб. 18  2011 1.avd
-rw-rw-r--. 1 olej olej   53 нояб. 17  2011 1.ini
drwxrwxr-x. 2 olej olej 4096 апр.  17 00:32 2.avd
-rw-rw-r--. 1 olej olej   52 нояб. 17  2011 2.ini
drwxrwxr-x. 2 olej olej 4096 нояб. 23  2011 a4.avd
-rw-rw-r--. 1 olej olej   54 нояб. 23  2011 a4.ini
- это в точности те имена AVD (виртуальных машин), которые показаны выше в GUI менеджера.

Код: Выделить всё

[olej@nvidia avd]$ ls -l  ~/.android/avd/2.avd
итого 140088
-rw-------. 1 olej olej      8412 апр.  16 22:08 cache.img
-rw-rw-r--. 1 olej olej       203 нояб. 17  2011 config.ini
-rw-rw-r--. 1 olej olej        49 апр.  17 00:32 emulator-user.ini
-rw-rw-r--. 1 olej olej      1706 апр.  16 22:08 hardware-qemu.ini
-rw-rw-r--. 1 olej olej 104857600 апр.  16 22:09 sdcard.img
-rw-rw-r--. 1 olej olej   2401344 нояб. 17  2011 userdata.img
-rw-------. 1 olej olej  36159516 апр.  17 00:08 userdata-qemu.img
P.S. Я так подробно расписываю, потому что сам всё это вспоминаю: когда я начинал эту тему, я поковырял SDK прилично, но никакого интереса-обсуждения тема не вызвала, и на том остановилась...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Android как он внутри

Непрочитанное сообщение Olej » 04 июн 2012, 15:38

Olej писал(а): Сами файлы для эмуляторов (образы системные, картинки экранов, ...) для установленных версий-платформ находятся здесь:
Olej писал(а): Но сами созданные вами AVD находятся в совсем другом месте - в домашнем каталоге, независимо от места установки SDK:
И вот для меня так и остался загадкой вопрос: как эмулятор (клон QEMU) совмещает воедино :
- из каталога в SDK : platforms/android-7
- файлы-образы: kernel-qemu + ramdisk.img + system.img
- с файлами-образами: cache.img + sdcard.img + userdata.img и т.п.
- ... из домашнего каталога ~/.android/avd/2.avd (каталог AVD)
- и куда приткнуть файл hardware-qemu.ini из каталога этой AVD

Т.е. с какими параметрами можно было бы запустить один из эмуляторов QEMU:

Код: Выделить всё

[olej@nvidia iso]$ ls /usr/bin/qemu*
/usr/bin/qemu        /usr/bin/qemu-io        /usr/bin/qemu-sh4            /usr/bin/qemu-system-mips64el
/usr/bin/qemu-alpha  /usr/bin/qemu-kvm       /usr/bin/qemu-sh4eb          /usr/bin/qemu-system-mipsel
/usr/bin/qemu-arm    /usr/bin/qemu-launcher  /usr/bin/qemu-system-arm     /usr/bin/qemu-system-sh4
/usr/bin/qemu-armeb  /usr/bin/qemu-m68k      /usr/bin/qemu-system-cris    /usr/bin/qemu-system-sh4eb
/usr/bin/qemu-cris   /usr/bin/qemu-mips      /usr/bin/qemu-system-m68k    /usr/bin/qemu-system-x86_64
/usr/bin/qemu-i386   /usr/bin/qemu-mipsel    /usr/bin/qemu-system-mips    /usr/bin/qemu-x86_64
/usr/bin/qemu-img    /usr/bin/qemu-nbd       /usr/bin/qemu-system-mips64
- чтобы эффект был тот же, что и при запуске emulator из состава SDK???

tundra37
Писатель
Сообщения: 149
Зарегистрирован: 03 мар 2012, 19:26
Контактная информация:

Re: Android как он внутри

Непрочитанное сообщение tundra37 » 04 июн 2012, 16:43

Официальный SDK и SDK для MIPS я ставил только в Винде, т.ч. инструментов типа draw9patch там нет, с avd я игрался тоже. А вот в git-исходниках у меня инструментов еще больше и они "свеженькие" прямо из исходников сделанные.
Как совмещает эмулятор разные конфиги - не знаю. У меня пока такой проблемы не было. У эмулятора есть ключ -avd
В Винде у меня два устройства ( можно смотреть через android.bat list avd) : Андроид 4.0.3 на АРМ и на МИПС.

Смотреть конечно приложения можно на эмуляторе на АРМ, но увы - те что не идут на МИПС, не идут из-за нативных библиотек. Т.ч. без вариантов - нужен родной эмулятор.

Хелп-то посмотрите:
-cache <file> cache partition image (default is temporary file)
-sdcard <file> SD card image (default <system>/sdcard.img ) Это в Винде

Нельзя запустить обычный QEMU - он не эмулирует железо. Эмулятор из SDK эмулирует "палец" - мышкой можно таскать экран и ,например, "замок открыть". Более того, судя по хелпу эмулятор это надстройка над QEMU, т.к. есть ключ -qemu для передачи его параметров. Правда оно не работает. Я же говорю - я нашел исходники именно эмулятора, хотя по структуре они очень похожи на исходники qemu.
Кстати именно на developer.mips.com есть упоминание про перенос на другой SOC. Хотя может они имели ввиду именно мипсовые чипы.
Сосветив исходники QEMU и эмулятора можно попытаться "перенести" на другую платформу. Кстати эмулятор для хитрого железа: проц. АРМ или МИПС, а "плата goldfish. Я это словечко отыскал в каком-то месте у своего плеера. Типа его прошивку можно отлаживать в эмуляторе. Именно поэтому я искал QEMU с Андроидом. У меня вопрос : а ваша задача какая по Андроиду?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Android как он внутри

Непрочитанное сообщение Olej » 04 июн 2012, 17:57

tundra37 писал(а):У меня вопрос : а ваша задача какая по Андроиду?
Разобраться :lol:

Ответить

Вернуться в «Android»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя