zoukankan      html  css  js  c++  java
  • centos 7 64位虚机上android4环境运行

    场景

    现在的开发大多是在linux的虚拟机上进行,现在有些工作和android有关,因此初步尝试了一下是否可以和目前的场景进行统一。

    系统是在vmware workstaion上的centos 7的64位版本的虚拟机上

    SDK/Studio

    http://yun.baidu.com/share/home?uk=67915989&view=share#category/type=0

    国内的一个镜像,可下载SDK和Studio

    JDK

    Centos默认带的openjdk需要替换成Oracle标准JDK,如下是多个版本的脚本例子

    #!/bin/bash

    JDK=(jdk1.7.0_25 jdk1.8.0_25 jdk1.7.0_51)

    JDK_TAR=(server-jre-7u25-linux-x64.tar.gz jdk-8u25-linux-x64.tar.gz jdk-7u51-linux-x64.gz)

    appDir=/home/csbit/

    #if [ ! -s jdk/jdk-7u51-linux-x64.gz ]; then

    # ln -s ../../../../../ide/share/jdk-7u51-linux-x64.gz jdk/jdk-7u51-linux-x64.gz

    #fi

    #param: index of $JDK's array

    function instJDK()

    {

    #old jdk version

    for j in ${JDK[@]}

    do

    if [ -d /usr/lib/jvm/$j ]; then

    echo "rm old $j"

    sudo rm -r -f /usr/lib/jvm/$j

    fi

    done;

    sudo rm -f /usr/bin/java

    sudo rm -f /usr/bin/javac

    ###update JDK

    sudo mkdir -p /usr/lib/jvm

    sudo tar -xzf jdk/${JDK_TAR[$1]} -C /usr/lib/jvm

    echo 'JDK install done'

    #ENV

    #set binary

    sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/${JDK[$1]}/bin/java 300

    sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/${JDK[$1]}/bin/javac 300

    echo 'JDK env done'

    sudo update-alternatives --set java /usr/lib/jvm/${JDK[$1]}/bin/java

    sudo update-alternatives --set javac /usr/lib/jvm/${JDK[$1]}/bin/javac

    }

    instJDK 0

    设置好后,JAVA_HOME环境变量设置上

    32位包

    sudo yum install -y glibc.i686

    sudo yum install -y glibc-devel.i686

    sudo yum install -y libstdc++.i686

    sudo yum install -y zlib.i686

    centos7 下仍有问题,运行android studio会提示mksdcard不能运行的情况,通过查看ldd mksdcard,缺少相关的库文件

    通过寻找,可以在 vmware tools拷贝,即把包libgcc_s.so libstdc++.so等拷贝到/usr/lib/gcc/x86_64-redhat-linux/4/8.2/32目录下

    在/etc/ld.so.conf中加入 /usr/lib/gcc/x86_64-redhat-linux/4/8.2/32,执行ldconfig -v更新库路径,然后再执行 ./mksdcard 就可正常运行

    运行

    ./studio 就可以进行工程的建立和编译等,由于采用的是gradle进行构建的,因此需要需要把这个环境拷贝到其他的脱机的机器上,需要把当前用户的.gradle等目录一并拷贝就行

    ~/Android/Sdk 是安装的SDK

    模拟器运行

    编译好后,运行时提示

    Android/Sdk/tools/emulator -avd Nexus_5_API_21_x86 -netspeed full -netdelay none
    emulator: ERROR: x86 emulation currently requires hardware acceleration!
    Please ensure KVM is properly installed and usable.
    CPU acceleration status: KVM is not installed on this machine (/dev/kvm is missing).

    参考这个

    http://www.111cn.net/sys/CentOS/66219.htm

    [root@361way ~]# yum -y install qemu-kvm libvirt virt-install bridge-utils

    [root@361way ~]# lsmod | grep kvm  # make sure modules are loaded

    kvm                   441119  0

    [root@361way ~]# systemctl start libvirtd

    [root@361way ~]# systemctl enable libvirtd

    注:centos7上服务的管理方式换成了systemctl

    在VMware虚拟机上安装不上。

    通过搜索可见涉及Intel HAXM的问题,在虚拟机上估计是运行不了

    通过看到有个android x86项目,进行了如下尝试

    Android X86

    Android x86 即运行于 x86 PC上的Android操作系统,目前已经支持大部分安卓程序。Android X86平台是由Beyounn和Cwhuang主持设计的。项目的主要目的在于为X86平台提供一套完整的Android 系统解决方案。

    http://baike.baidu.com/link?url=Uw1vMI5RKZluaaGBajP8zBynMdblupV8BXJQCGI37RO10KaVVLgvQv2OmPqLnu3HGSDrDuJ1W7-w11xYtWYg3K

    http://www.android-x86.org 官方被墙了,可以看中文的地址http://www.x86android.com/forum-2-1.html

    http://www.x86android.com/thread-57744-1-1.html 4.4版本下载

    Vmware中安装Android4的安装详细步骤

    http://wenku.baidu.com/link?url=0ch26cweCjqyNySsWENK0Pn8ukCwhc85pjmbgeZnB6jjbEXxGGnV97ALg1EYs_j1N8jhPrSZaQwM0wSGLZnuHbGUtMbEfLKSdt52LiNZY7G

    注意:

    Ø 第一次开机时,把虚拟机的网卡关闭,否则被墙的google站点访问不到,进入到系统桌面

    wpsE4DB.tmp

    wpsE4EC.tmp

    wpsE4ED.tmp

    结论

    Android可以在虚拟机上进行开发和编译,但运行的话,需要安装物理机下的windows版本的android环境或者linux版本

    Android x86是一个选择,不过有些复杂,待有空再探探

  • 相关阅读:
    ReentrantLock的实现原理及AQS和CAS
    lock、tryLock和lockInterruptibly的差別
    Sleep和Wait的区别
    什么场景使用多线程
    多生产者多消费者,生产一个数据,消费一个数据
    线程间通讯
    如何退出线程
    线程的状态
    判断二叉树是不是完全二叉树
    js2048小游戏
  • 原文地址:https://www.cnblogs.com/2018/p/4337807.html
Copyright © 2011-2022 走看看