Build dalvik on linux

How can I compile Dalvik to run it locally on Linux?

What are the minimal steps necessary (including retrieving the source code) to compile and run just the Dalvik virtual machine on Linux?

Steve

People also ask

Dalvik programs are written in Java using the Android application programming interface (API), compiled to Java bytecode, and converted to Dalvik instructions as necessary. A tool called dx is used to convert Java .

Dalvik is a discontinued process virtual machine (VM) in the Android OS that executes applications written for Android. Dalvik bytecode format is still used as a distribution format, but no longer at runtime in newer Android versions.

Role of the Dalvik Virtual Machine The Role of the DVM in Android includes: Optimizing the Virtual Machine for memory, battery life, and performance. Conversion of class files into . dex file through Dex compiler that runs on Dalvik VM.

2 Answers

Actually , I got Dalvik working on my elementary OS installation.

First download the Android AOSP source tree using https://source.android.com/source/downloading.html. Wait for it to download (2 hours for me cloning only the current commits and Marshmallow branch)

After running build/envsetup.sh while in the source tree run lunch full_x86-eng . Then type make -jN (replace N with number of cores).

WAIT. This took me about 1 hour on an AMD-4500M laptop. Newer ccomputers may be as low as half and hour and older ones might take half a day.

Change directory to !!AOSP-PATH!!/out/host/linux-x86/bin/ and run export LD_LIBRARY_PATH=$LD_LIBRARY_PATH. AOSP-PATH!!/out/host/linux-x86/obj/lib/ or

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH. AOSP-PATH!!/out/host/linux-x86/lib

or export LD_LIBRARY_PATH=$LD_LIBRARY_PATH. AOSP-PATH!!/out/host/linux-x86/lib64

and then ./dalvikvm —32 . If you try to run without the —32 option it will crash (don’t know why)

Working Marshmallow Dalvik. To get the GUI apps working you will need to do some more porting and coding which is another project which I am working on.

Took me half a day to figure this out.

References

Suici Doga Avatar

answered Oct 13 ’22 05:10

Suici Doga

Use sabayon Linux. This is a distro that can natively run Android programs and all Linux ones too.

Источник

Как я могу скомпилировать Dalvik для локального запуска в Linux?

Какие минимальные шаги необходимы (включая получение исходного кода) для компиляции и запуска только виртуальной машины Dalvik в Linux?

Вы можете перенести его на невидимую архитектуру, выполнив следующие действия: source.android.com/porting/dalvik.html

Этот вопрос является дубликатом: stackoverflow.com/questions/1297678 Ответы на этот вопрос включают в себя инструкции по сборке dalvikvm для Linux с использованием ланча-цели «sim-eng».

Спасибо, этот вопрос содержит ссылку на проект «dvk», который я просто повторю здесь для дальнейшего использования: code.google.com/p/dvk/wiki/Install Этот проект, на который я ранее не сталкивался, в основном отвечает мой вопрос.

Получить Dalvik и среду выполнения легко, поскольку Android основан на Linux. Трудно заставить приложения GUI показывать, поскольку Android не использует X11 / Wayland

Читайте также:  Linux ubuntu настройка wifi

7 ответов

Dalvik работает на Android. Насколько нам известно, авторы Dalvik беспокоятся о том, что он работает на Android.

Различные группы указали, что они работают над тем, чтобы получить Dalvik вне Android. Возможно, вам лучше всего найти и поговорить с ними.

Другими словами, нет официальных инструкций того типа, который вы ищете.

. кроме dalvik / docs / hello-world.html в исходном дереве. В GitWeb см android.git.kernel.org/?p=platform/. .

Используйте sabayon Linux. Это дистрибутив, который может запускать программы для Android и все Linux тоже.

На самом деле, этот довольно андроид, работающий на Dalvik и базовой системе, уже Linux.

Я предполагаю, что запущенная головоломка Dalvik VM на рабочем столе Linux — это вопрос получения источников и их компиляции.

Да, очень правильно, и я сделал это. Я не трогал код. Приложения с графическим интерфейсом все еще не работают, но работа Dalvik является хорошей отправной точкой

На самом деле, я получил Dalvik, работая над моей начальной установкой ОС.

Сначала загрузите исходное дерево Android AOSP с помощью https://source.android.com/source/downloading.html. Подождите, пока он загрузится (2 часа для меня клонируют только текущие фиксации и ветку Marshmallow)

После запуска build/envsetup.sh , а в исходном дереве выполните lunch full_x86-eng . Затем введите make -jN (замените N числом ядер).

WAIT. Это заняло у меня около часа на ноутбуке AMD-4500M. Новые компьютерные компьютеры могут достигать половины и часа, а более старые могут занимать полдня.

Измените каталог на !!AOSP-PATH!!/out/host/linux-x86/bin/ и запустите export LD_LIBRARY_PATH=$LD_LIBRARY_PATH. AOSP-PATH!!/out/host/linux-x86/obj/lib/ или

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH. AOSP-PATH!!/out/host/linux-x86/lib

или export LD_LIBRARY_PATH=$LD_LIBRARY_PATH. AOSP-PATH!!/out/host/linux-x86/lib64

а затем ./dalvikvm —32 . Если вы попытаетесь запустить без параметра —32 , он сработает (не знаю почему)

Рабочий зефир Дальвик. Чтобы заставить работать графические приложения, вам нужно будет сделать еще несколько операций портирования и кодирования, что является еще одним проектом, над которым я работаю.

Принял меня полдня, чтобы понять это.

Источник

Как собрать/запустить dalvik

Исходники я каким-то чудом таки нашёл тут https://android.googlesource.com/platform (кстати они ли это?). А вот что делать с тем что я оттуда выкачал сильно неясно, мейкфайла нет, ридми нет, растительности нет, населена роботамиандроидами.

Гугл не помог. Есть где-то какое-нибудь руководство?

Собираешь прошивку, прошиваешь прошивку, запускаешь прошивку. Инфа 100%, гайдов — завались.

А тебе нужна виртуализация, еще на прошлой неделе выяснили же.

В том то и дело что мне нафиг не нужна прошивка/виртуализация. Мне нужен далвик, что б запустить его через quemu на арме на нём запустить apkшку и смотреть что отпадывает.

Во всяком случае это мне так сейчас это видится.

В том то и дело что мне нафиг не нужна прошивка/виртуализация. Мне нужен далвик, что б запустить его через quemu на арме на нём запустить apkшку

Отпадет все, починка — пара десятков тысяч человеко-часов.

Во всяком случае это мне так сейчас это видится.

Неправильно видится. Давай начнем с супербазового аргумента — если бы это было нужно и легко — ты бы уже сделал бы это с HOWTO на первой странице гугла по любому мало-мальски связному запросу.

Можешь обяснить для чего мне прошивка?

Отпадет все, починка — пара десятков тысяч человеко-часов

Неправильно видится. Давай начнем с супербазового аргумента — если бы это было нужно и легко — ты бы уже сделал бы это с HOWTO на первой странице гугла по любому мало-мальски связному запросу.

Ты так говоришь как будто при сборки прошивки далвик готовый из /dev/astral выкачается. Всё равно ведь происходит сборка.

Читайте также:  What is pty in linux

Можешь обяснить для чего мне прошивка?

Чтобы запустить это на Android-девайсе и перестать тратить время.

Отпадет все, починка — пара десятков тысяч человеко-часов

Нет, только здравый смысл — откровенно глупо полагать, что Android-приложени зависят только от dalvik’а, а все остальное, что есть в системе, там тупо для красоты.

Ты так говоришь как будто при сборки прошивки далвик готовый из /dev/astral выкачается.

Нет, соберется. И даже сможет функционировать. Но только под Android-userland’ом. Его тоже надо собрать. А как соберешь — запускай виртуалочку или прошивай девайс.

Чтобы запустить это на Android-девайсе и перестать тратить время.

Моё время — хочу трачу. К тому же какой смысл мне запускать что-то на андроид-девайсе если цель запустить это вне андроид-девайса?

Нет, только здравый смысл — откровенно глупо полагать, что Android-приложени зависят только от dalvik’а, а все остальное, что есть в системе, там тупо для красоты.

Боюсь что всё остальное для вендрлока. Я же не собираюсь переписывать весь андроидовский рантайм, мне нужно понять что нужно и подсунуть библиотеки/воткнуть заглушки.

ya-betmen ★★★★★ ( 23.06.15 08:54:50 MSK )
Последнее исправление: ya-betmen 23.06.15 08:55:18 MSK (всего исправлений: 1)

1) нафига эмулятором мучиться? Далвик и под х86 можно собрать.

2) Шукай файлик Android.mk это типа местный Makefile.

нафига эмулятором мучиться? Далвик и под х86 можно собрать.

Ну мне сейчас не принципиально, главное понять как.

Шукай файлик Android.mk это типа местный Makefile.

Угу, это я догадался. Проблема в том, что на http://android.mk/ он так подробно описан, что не осталось места что б описать чем его билдить.

Вот у меня есть у меня android.mk и андроидовкий СДК, а что дальше сижу голову ломаю.

Ну и билдят в NDK с помощью ndk-build.

Спасибо, теперь ясно чего не хватает.

Repo is a tool that makes it easier to work with Git in the context of Android.

Они что нарочно всё через задницу делают?

Тебе уже говорили, что ты полез в дебри. Я могу только присоединится к этому утверждению.

Теперь ты на личном опыте поймешь, что Android != Linux.

С радостью бы не лез, к сожалению за меня это сделать некому.

Мне нужен далвик, что б запустить его через quemu на арме на нём запустить apkшку

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

Чувак, это тяжело

В принципе, все это собирабельно. Тот же aapt я осиливал J4F собрать нативный 64х битный. Но 1) мейкфайл будешь писать сам; 2) если какого-нибудь говна будет не хватать – будешь искать его в андроидовских репах и собирать ещё и его.

Короче это сложно. Если нет опыта собирать софт из говна, палок и libastral – лучше забей.

Читайте также:  Установка kvm kali linux

Это для NDK. И можно без него, если обычный мейкфайл руками запилить.

Я так понял что на основе android.mk можно мейк файл состряпать. Если ты такое уже делал, можешь примерчиком поделиться? В смысле оригинальный mk и мейкфайл под него.

У цианогена свои репы или они тоже аосповские пользуют?

ya-betmen ★★★★★ ( 24.06.15 00:23:28 MSK )
Последнее исправление: ya-betmen 24.06.15 00:24:04 MSK (всего исправлений: 1)

Именно так и надо сделать. Есть. Genymotion специально для быстрой (x86) разработки. Для тех кто не торопиться эмулятор псевдо ARM входит в состав SDK.

Dalvik вынули из Android давно — Alien Dalvik. Потратив на это те самые тысячи человекочасов.

Гугли еще Android ART. Если уж решил убить год на сборку чего-то, будь в тренде.

Можно написать Activity почти на голом C++. Поведение Java прослойки тоже важно, но поток событий, холст/контекст EGL можно обработать и без Java.

«Запускать и смотреть что отваливвется» я бы начал с определения цели.

tlx ★★★★★ ( 24.06.15 07:05:47 MSK )
Последнее исправление: tlx 24.06.15 07:07:12 MSK (всего исправлений: 1)

Dalvik вынули из Android давно — Alien Dalvik

Да мало ли, скайп из стартового поста или например опера или какой нить ватсап.

Я слышал про него, но казалось там нужно специально пересобирать приложения. Оказывается нет, фигасе, скайп и опера могут быть запущены через эту штуку не на арме? Вот это интересно.

Java код переносим. Нативные либы можно скомпилировать для всех архитектур и включить в apk, в ущерб его размеру. На Маркет обычно срабатывает автоматическое определение архитектуры и тот же Skype скачается только с либами под неё.

На x86 полно устройств. Intel их даже субсидировал. У меня одно даже на MIPS.

Да кстати, вспомнил: akp в Chrome . Способ не для всех apk.

libhybris тебе, наверное, нужен и прочие куски от mer project. Ты хочешь что-то типа alien davlik замутить? Но его, вроде бы, целая команда разработчиков долго долго пилила. Гугл как-то сделал оригинальный рантайм андроида непортабельным, хоть там и java.

Но его, вроде бы, целая команда разработчиков долго долго пилила.

Подозреваю что большая часть времени ушла на написание осиливание сборки.

Мне то не нужна возможность запускать всё подряд. Мне пары приложений хватит, а значит надо просто заткнуть те вызовы которые этим приложениям нужны.

фигасе, скайп и опера могут быть запущены через эту штуку не на арме? Вот это интересно.

ART это замена Dalvik’а, и на вход принимает байт-код Dalvik’а, а не платформо-зависимые бинарники.

Но вообще-то, портировать приложения с native-компонентами тоже возможно: plasma^W opera не падает

Подозреваю что большая часть времени ушла на написание осиливание сборки

Ты понимаешь, что android != desktop Linux? Там даже ведро передлопачено довольно заметно, а юзерспейс вообще на других принципах построен. Начиная хотя-бы с того, что в ведроиде нету даже libc — зкаместо неё там bionic крутится. То, что ты хлчкшь сделать, сравнимо с запуском elf-бинариков с линукса род маком. Без знаний ты ничего не сделаешь. А знаний у тебя нету, это сразу видно.

Источник

Оцените статью
Adblock
detector