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