Desenvolvedores do KDE estão trabalhando em Shashlik, um ambiente
simulado Android que permitirá aos usuários executar qualquer tipo de
aplicações Android no Linux.
Shashlik
Embora o Android está usando um kernel Linux não pode executar aplicativos em Linux nativamente. A equipe do KDE quer construir um ambiente virtual para executar aplicativos Android no topo do Linux. Durante o próximo Akademy 2015 evento no final deste mês a equipe vai mostrar outros desenvolvedores mais sobre este projeto. Aqui está um extrato do anouncement;
"Obter
uma introdução à plataforma técnica que constitui o Android Shashlik
lançador de aplicativos, e uma breve descrição do como eo porquê. E,
claro, uma demo do mesmo, e informações sobre como você pode obtê-lo a
si mesmo e executar aplicativos Android em seu próprio sistema. "
Este arquivo descreve como construir Shashlik, o ambiente Android simulado. |
Shashlik usa Dalvik, o intérprete runtime Android, para executar o |
aplicações. Além do próprio Dalvik precisamos ter um número de |
dependências da árvore fonte Google Android para ser capaz de construir |
Dalvik é normalmente construído dentro da árvore fonte Android completa e queremos |
minimizar a árvore de dependência quando a construção em um sistema Linux normal. Aqui está |
a lista de fontes que são necessários para construir Shashlik. Para cada componente |
abaixo, você deve ser capaz de simplesmente cortar e colar as linhas de comando em um shell. |
As árvores de origem deve ser colocado ao lado do outro num subdirectório comum, |
por exemplo, $ HOME / SHASHLIK ou algo similar. No resto desse arquivo vamos |
assumir que você está usando este local. Se não, você terá que ajustar o |
instruções abaixo conformidade. |
Crie o diretório principal para as fontes. Recomendamos a utilização de um separado |
diretório para a árvore de origem, porque você também terá o diretório de instalação |
a este nível (veja abaixo em Gerando as fontes). |
Em seguida, proceder ao download do Git e SVN repositórios da seguinte maneira. |
1. Os 9 repositórios do projeto no github. Shashlik |
Shashlik tem 8 repos das fontes Google Android copiados para Github. Estes |
8 repos são Dalvik, Android Core, Android Libcore, Frameworks Native, Frameworks Base, |
libnativehelper, telefonia e skia. |
As alterações nesses repositórios será mantido tão pequeno quanto possível, de modo que ele vai |
ser mais fácil de atualizar para uma versão posterior mais tarde. O principal código escrito para Shashlik |
é criado no dia 9 de repositório do projeto denominado (surpresa!) shaslik. |
A página principal do projeto é https://github.com/shashlik. Aqui |
encontrar links para todos os 9 repositórios. Uma vez que os repos shashlik são particulares você |
terá de dar o seu nome de usuário e senha para cloná-los. |
git clone https://github.com/shashlik/shashlik.git |
git clone --branch shashlik-kitkat https://github.com/shashlik/dalvik.git |
git clone --branch shashlik-kitkat https://github.com/shashlik/android-core.git |
git clone --branch shashlik-kitkat https://github.com/shashlik/android-libcore.git |
git clone --branch shashlik-kitkat https://github.com/shashlik/android-frameworks-native.git |
git clone --branch shashlik-kitkat https://github.com/shashlik/android-frameworks-base.git |
git clone --branch shashlik-kitkat https://github.com/shashlik/android-libnativehelper.git |
git clone --branch shashlik-kitkat https://github.com/shashlik/android-telephony.git |
git clone --branch shashlik-kitkat https://github.com/shashlik/android-skia.git |
Seguro IOP é também uma biblioteca do Google, que é descrito como este sobre o projeto |
home page no https://code.google.com/p/safe-iop/: |
"Esta biblioteca fornece um conjunto de funções (com base em macro) para |
realização de operações com números inteiros seguras em toda a plataforma e arquitetura com um |
Esta biblioteca é mantido em subversão. Para verificá-la, faça o seguinte: |
svn checkout http://safe-iop.googlecode.com/svn/trunk/ seguro-iop |
svn mudar http://safe-iop.googlecode.com/svn/tags/r0.3.1 |
Nós vamos usar uma versão específica, neste caso 0.3.1, para obter uma plataforma estável. |
Esta é a razão para o interruptor SVN. |
Bionic é uma derivação do código da biblioteca C padrão do BSD, que era |
originalmente desenvolvido pela Google para o seu Android [2] sistema operacional |
(Wikipedia). É uma versão enxuta do libc que contém exatamente o que |
é necessária no Android. É necessário construir Dalvik, embora haja uma |
projeto à porta Dalvik a GNU libc. |
Há um projeto chamado dvk (https://code.google.com/p/dvk/), cujo objetivo é |
à porta Dalvik para outras arquiteturas de CPU e longe de precisar biônico, mas nós |
não ter ido por esse caminho. |
git clone https://android.googlesource.com/platform/bionic |
Nós usamos a tag kitkat para um presente, ou seja, você precisa executar: |
git checkout android-4.4.4_r2.0.1 |
que vai deixar você com uma cabeça destacada |
openssl é a biblioteca secure socket layer estréia usado por projetos de software livre, |
android e fez algumas modificações para isso que o torna difícil de simplesmente |
usar o fornecido pela maioria das distribuições Linux. Então, usamos theit versão modificada. |
git clone https://android.googlesource.com/platform/external/openssl |
git checkout android-4.4.4_r2.0.1 |
Um conjunto de bibliotecas Java utilizado por android e embalados juntos em um frasco. |
git clone https://android.googlesource.com/platform/external/nist-sip |
git clone https://android.googlesource.com/platform/external/apache-http |
git clone https://android.googlesource.com/platform/external/tagsoup |
git clone https://android.googlesource.com/platform/external/libphonenumber |
git clone https://android.googlesource.com/platform/external/okhttp |
git clone https://android.googlesource.com/platform/external/bouncycastle |
git checkout android-4.4.4_r2.0.1 |
git checkout android-4.4.4_r2.0.1 |
git checkout android-4.4.4_r2.0.1 |
git checkout android-4.4.4_r2.0.1 |
git checkout android-4.4.4_r2.0.1 |
git checkout android-4.4.4_r2.0.1 |
git clone https://android.googlesource.com/platform/frameworks/opt/net/voip |
git clone https://android.googlesource.com/platform/external/liblzf |
git clone https://android.googlesource.com/platform/external/protobuf |
git clone https://android.googlesource.com/platform/external/sqlite |
git clone https://android.googlesource.com/platform/frameworks/opt/emoji android-emoji |
git clone https://android.googlesource.com/platform/build android-build |
git checkout android-4.4.4_r2.0.1 |
git checkout android-4.4.4_r2.0.1 |
git checkout android-4.4.4_r2.0.1 |
git checkout android-4.4.4_r2.0.1 |
git checkout android-4.4.4_r2.0.1 |
git checkout android-4.4.4_r2.0.1 |
Exigimos também a versão Android 5.1 do libhardware e mestre chefe do android |
git clone https://android.googlesource.com/platform/hardware/libhardware |
git clone https://android.googlesource.com/platform/system/core core-cabeça |
git checkout android-5.1.0_r1 |
As seguintes bibliotecas não são usados atualmente, mas será necessária uma vez Renderscript |
git clone https://android.googlesource.com/platform/frameworks/compile/libbcc |
git clone https://android.googlesource.com/platform/frameworks/rs |
git checkout android-4.4.4_r2.0.1 |
git checkout android-4.4.4_r2.0.1 |
7. bibliotecas gráficas de assistência |
Essas bibliotecas são uma tentativa de obter SurfaceFlinger para trabalhar em Linux normal, e assim por |
nós pegar carona em que trabalho. Pequenas mudanças foram feitas para o módulo drm_gralloc, e |
até aqueles que são upstreamed ou de outra forma fixa, mantemos um clone local ele. |
git clone https://android.googlesource.com/platform/hardware/libhardware_legacy |
git clone git: //anongit.freedesktop.org/mesa/mesa |
git clone https://github.com/shashlik/drm_gralloc.git |
git checkout lollipop-x86 |
A seguir, são de https://wiki.linaro.org/BenjaminGaignard/HWComposer_DRM e |
eles são uma parte de uma tentativa de fazer as coisas que funcionam em um linux sangue completo, bem |
é claro que se alinha muito bem com os nossos esforços. |
git clone git: //git.linaro.org/people/benjamin.gaignard/gralloc.git |
git clone https://github.com/shashlik/hwcomposer-linaro.git hwcomposer |
Este código é um clone e a modificação do código gentroid, utilizado no ramo leinir2 |
git clone https://github.com/shashlik/gentroid-frameworks-base.git |
Esta é uma ferramenta utilizada para fazer modificações em arquivos JAR, como a deslocalização pacotes |
para outros sub-domínios (por exemplo, org.conscrypt. * torna-se com.android.conscrypt ...). |
Deixe este arquivo no diretório fonte base para o sistema de compilação pode encontrá-lo. Como google |
código está sendo desligado, este pode precisar de mudar em algum ponto (existem outros espelhos, |
mas este é o endereço de liberação canônica para o arquivo) |
wget https://jarjar.googlecode.com/files/jarjar-1.4.jar |
O objetivo do Shashlik é criar um autônomo runtime Android |
ambiente. Isto significa basicamente Dalvik com uma série de recursos de suporte |
tais como sensores emuladas e uma tela. |
Si dalvik precisa de um número de classes de suporte e outras partes de bibliotecas |
das fontes Android. Infelizmente-se as dependências arrastar em mais |
dependências e assim por diante até que a maioria do Android está presente. Acontece que |
O próprio Dalvik não usar que muitas classes e funções na dependência |
bibliotecas isso selecionando a construir apenas as classes que são realmente necessários |
podemos manter baixo o número de repositórios que precisamos check-out. |
Nesta descrição assumimos que você tenha baixado as fontes acima e |
que todos eles estão em $ HOME / shashlik. |
Neste momento as instruções supõem que você está construindo em um Linux padrão |
sistema de desktop com um kit de desenvolvimento de software instalado. Consulte o seu |
distribuição sobre como instalar esse. Tanto quanto sabemos não há nenhum |
distribuição problemas ou peculiaridades específicas. |
Além de usar um sistema Linux normal de desenvolvimento (marca, gcc, etc) que você precisa |
uma variedade de componentes que podem não estar no everybodys computadores: |
- CMake, versão 2.8.8 mínimo |
- KDE Frameworks 5 (KF5), especificamente os seguintes módulos: |
I18n WindowSystem Serviço Pacote declarativa Plasma PlasmaQuick Wayland |
- Versão Java SDK 6 (ou mais recente, estamos apenas forçando-alvo / source) |
- Cabeçalhos de desenvolvimento de 32 bits para as seguintes bibliotecas, utilizados pela VM android |
Qt 5.3 módulos: Core, Gui, Widgets, X11Extras |
Nota! Todas as bibliotecas acima deve ser versões de 32 bits, tal como são utilizados pela |
(sempre) de 32 bits android runtime |
para o openSUSE, você pode executar os seguintes comandos para conseguir o que você precisa: |
sudo zypper install -t padrão devel_c_cpp devel_java devel_qt5 devel_kde_frameworks |
sudo zypper instalar libharfbuzz0-32bit libharfbuzz-icu0-32bit glibc-devel-32bit \ |
libstdc ++ - devel-32bit-32bit gcc gcc-c ++ - 32bit libwebp-devel libwebpdecoder1-32bit \ |
libwebpdemux1-32bit libwebpmux1-32bit fontconfig-devel-32bit zlib-devel-32bit \ |
freetype2-devel-32bit glu-devel-32bit giflib-devel-32bit libpng12-devel-32bit \ |
libpng12-compat-devel-32bit libjpeg62-32bit libjpeg62-devel-32bit \ |
libicu-devel-32bit libdrm-devel-32bit libcap-devel \ |
libQt5Core-devel-32bit libffi48-devel-32bit libexpat-devel-32bit libopenssl-devel-32bit \ |
java-1_7_0-openjdk-devel JarJar libselinux-devel \ |
libQt5Widgets-devel-32bit-libqt5-qtx11extras-devel 32bit \ |
libwayland-egl-devel-32bit kwayland-devel-32bit |
Esta instrução será daqui em supor que você tenha estes instalados |
corretamente. Se não, você terá que instalá-los (provavelmente construir-se) |
usando suas respectivas instruções de instalação. |
NOTA: Mesmo depois de instalar Qt5.3 e KF5 corretamente para o uso normal você vai |
ainda tem que adicionar uma variável de ambiente específica para ser capaz de usá-los |
para o desenvolvimento usando CMake: |
CMAKE_PREFIX_PATH exportação = $ KF5: $ CMAKE_PREFIX_PATH |
Sugerimos também para criar uma variável de ambiente com o caminho do |
SHASHLIK diretório superior. |
SHASHLIK exportação = $ HOME / SHASHLIK |
No restante deste documento usaremos essa variável em nossos exemplos. |
Estamos tentando minimizar as mudanças em cada componente, tanto quanto |
possível. No entanto, algumas alterações são necessárias e não podem ser evitados. Assim, para |
cada dependência que não precisa ser mudado, nós criamos um ramo chamado |
Alguns dos componentes têm etiquetas de libertação que estamos usando para que possamos ter |
uma compilação estável. Aqui está uma lista das ramificações e marcas que estamos usando. E se |
de ter verificado os repositórios usando os comandos indicados acima eles |
deve estar no ramo correto já. |
* Dalvik: ramo shashlik-kitkat |
* Android-core: ramo shashlik-kitkat |
* Android-libcore: ramo shashlik-kitkat |
* Android-estruturas nativo: ramo shashlik-kitkat |
* Android-estruturas de base de: ramo shashlik-kitkat |
* Estruturas de nativo ramo kitkat-lançamento |
* Seguro-iop: tag http://safe-iop.googlecode.com/svn/tags/r0.3.1 |
* Libnativehelper: ramo kitkat-lançamento |
* Biônico: tag android-4.4.4_r2.0.1 |
* Skia: tag android-4.4.4_r2.0.1 |
* Openssl: tag android-4.4.4_r2.0.1 |
Como você pode ver acima, a própria shashlik repo é aquela em que tentamos colocá |
todas as nossas mudanças de modo que deve ser mestre no ramo, a menos que você está trabalhando |
em alguma característica nova em um ramo de funcionalidade. |
Edifício Shashlik é um pouco mais complicado do que a construção de uma fonte normal, |
árvore. Isto é porque nós estamos tomando fontes da árvore de origem e Android |
construí-los de uma forma que eles não são projetados para. |
Você pode instalar em qualquer lugar que você gosta, basicamente, mas é altamente recomendável que você |
fazê-lo através da criação de um SHASHLIK / diretório de instalação. Note-se que o diretório de instalação |
deve ser _outside_ a árvore de origem repo shashlik mas sob o top SHASHLIK |
Para a construção, o procedimento é, em si, semelhante à forma como você normalmente compilar |
qualquer outro projeto baseado cmake, no entanto, a estrutura de diretório é vital. o |
sistema de construção espera que a localização das fontes de ser como sugerido em Getting |
As fontes acima. Em outras palavras, você deve ter uma estrutura de diretório |
semelhante ao seguinte árvore. Aqueles marcados com * são diretórios que deveria |
criar, todos os outros são clones git (e que check-out um svn): |
+ Android-frameworks-nativas |
+ Android-estruturas base |
+ (Etc, outros checkouts) |
Finalmente você vai ter que construir as fontes shashlik que dependem do selecionado |
Bibliotecas Android que foram criados no diretório builddeps. Isto é feito |
no $ SHASHLIK / src / shashlik / construção / diretório e é muito fácil: |
cd $ SHASHLIK / src / shashlik / build |
cmake .. -DCMAKE_INSTALL_PREFIX = $ SHASHLIK / install |
O controle principal para o shashlik android tempo de execução é shashlik-controlador, o |
única binário instalado fora da raiz do android. Executar este comando com --help |
para ver que opções você tem. Este binário atualmente faz suposições sobre |
a configuração do seu sistema. Estes pressupostos será removido numa data posterior. |
Para executar um aplicativo, execute o seguinte: |
shashlik-controlador --start |
shashlik-controlador --launchapk = / path / to / apk-file.apk
Advertise with Anonymous Ads
Subscribe by Email
Follow Updates Articles from This Blog via Email
No Comments