場景
現在的開發大多是在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://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的安裝詳細步驟
注意:
Ø 第一次開機時,把虛擬機的網卡關閉,否則被牆的google站點訪問不到,進入到系統桌面
結論
Android可以在虛擬機上進行開發和編譯,但運行的話,需要安裝物理機下的windows版本的android環境或者linux版本
Android x86是一個選擇,不過有些復雜,待有空再探探



