当前位置:   article > 正文

Android源码编译环境搭建_安卓源码编译环境搭建

安卓源码编译环境搭建

一、 前言

Google自 2021 年 6 月 22 日起,不再支持在 MacOS 上进行Android平台开发。某些芯片厂家提供的Android SDK不支持低版本的Ubuntu(16.04 LTS及以下),故本篇文章以Ubuntu18.04LTS为例来描述Android编译环境的搭建过程。

经测试,Android 4.4/5/6/7/8/9/10/11/12/13等系列分支版本以及Hisilicon、Amlogic等芯片厂家提供的Android SDK包,OpenWRTChromium都可以编译通过。

二、 前期准备

  1. 一台安装Ubuntu18.04LTS的主机或者虚拟机。

  2. JDK安装包

    jdk-6u45、open-jdk7、openjdk-8安装包。
    安装路径:/usr/lib/jvm

  3. 软件源
    建议使用清华开源镜像或者阿里云开源镜像,替换前先备份原始文件。

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    
    • 1
  4. 根据需要卸载Libreoffice

    sudo apt-get remove --purge libreoffice*
    
    • 1
  5. 更新软件及工具且卸载过时的软件工具

    sudo apt-get update
    sudo apt-get dist-upgrade
    sudo apt-get autoremove
    
    • 1
    • 2
    • 3

三、 编译环境搭建

  1. 安装基本工具

    sudo apt-get install \
    samba samba-common system-config-samba \
    tree vim openssh-server
    
    • 1
    • 2
    • 3
  2. 安装SDK编译依赖工具

    1. Ubuntu14.04LTS(适合用于Ubuntu14版本)

      sudo apt-get install \
      make gcc g++ gksu patch texinfo libncurses-dev git-core gnupg \
      flex bison gperf libsdl-dev libesd0-dev zip ncurses-dev \
      zlib1g-dev zlib1g-dev:i386 valgrind libgtk2.0-0:i386 libpangox-1.0-0:i386 \
      libpangoxft-1.0-0:i386 libidn11:i386 gstreamer0.10-pulseaudio:i386 \
      gstreamer0.10-plugins-base:i386 gstreamer0.10-plugins-good:i386 libxml2-utils \
      xsltproc g++-multilib gcc-multilib git python-networkx build-essential curl \
      libc6-dev libncurses5-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 \
      libreadline6-dev:i386 libgl1-mesa-dev:i386 mingw32 openjdk-6-jdk tofrodos \
      python-markdownxsltproc libxext-dev:i386 subversion gawk cryptsetup cmake gettext \
      libssl-dev unzip dosfstools  device-tree-compiler dh-autoreconf libudev-dev \
      libusb-dev libusb-1.0-0-dev u-boot-tools
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
    2. Ubuntu18.04LTS(适合用于Ubuntu18版本)

      sudo apt-get install \
      bison build-essential cmake cryptsetup curl device-tree-compiler \
      dh-autoreconf dosfstools flex g++ g++-multilib gawk gcc gcc-multilib \
      gettext git gnupg gperf intltool lib32ncurses5 lib32ncurses5-dev \
      lib32readline-dev lib32z1 lib32z1-dev libc6-dev libgl1-mesa-dev \
      libglib2.0-dev liblz4-tool libncurses5-dev libncurses5-dev libsdl1.2-dev \
      libssl-dev libswitch-perl libudev-dev libusb-1.0-0-dev libusb-dev \
      libx11-dev libxml2-utils make net-tools net-tools openjdk-8-jdk patch \
      pkg-config python-markdown python-networkx sl subversion texinfo tofrodos \
      u-boot-tools unzip valgrind x11proto-core-dev xsltproc zip zlib1g-dev \
      libgl1-mesa-dev:i386 libgtk2.0-0:i386 libidn11:i386 libncurses5-dev:i386 \
      libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libx11-dev:i386 libxext-dev:i386 zlib1g-dev:i386
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
  3. 配置vim
    /etc/vim/vimrc中添加

    set number
    set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
    set termencoding=utf-8
    set encoding=utf-8
    set shiftwidth=4
    set softtabstop=4
    set tabstop=4
    set expandtab
    set autoindent
    set paste
    set pastetoggle=<F11>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  4. 配置samba

    1. 添加samba用户

      sudo smbpasswd -a newuser
      
      • 1
    2. 配置共享目录

      sudo vim /etc/samba/smb.conf
      
      • 1

      添加以下配置信息:

      [newuser]
      	comment = newuser Drivers
      	path = /home/newuser
      	browseable = yes
      	valid users = newuser
      	writable = yes
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
  5. 配置JDK环境变量
    /etc/profile或者~/.bashrc 中添加:

    # Java JDK Environment
    export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_45
    #export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_144
    #export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
    #export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  6. 切换编译环境,输入以下命令后选择NO

    sudo dpkg-reconfigure dash
    
    • 1
  7. 配置umask

    /etc/profile~/.bashrc 中分别添加

    umask 022
    
    • 1
  8. 设置最大打开文件数

    sudo vim /etc/security/limits.conf
    
    • 1

    在末尾插入以下代码:

    *                -       nofile          8192
    
    • 1
  9. 清理过时软件

    sudo apt-get autoremove
    
    • 1
  10. 配置交换分区

    # 切换root用户
    sudo su
    # 创建交换分区的文件为16GB
    dd if=/dev/zero of=/home/swapfile bs=1M count=16384
    # 设置交换分区文件,建立swap的文件系统
    mkswap /home/swapfile
    # 启用swap文件
    swapon  /home/swapfile
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    设置完成后,需要在 /etc/fstab中添加

    # 开机挂载交换分区
    /home/swapfile swap swap defaults 0 0
    
    • 1
    • 2
  11. 重启

    reboot
    
    • 1

四、 注意事项

  1. 编译低版本注意事项

    Android5.0、Android6.0等版本编译报错:unsupported reloc 42、unsupported reloc 43等错误。

    Ubuntu18.04编译低版本Android注意事项

  2. make api-stubs-docs-update-current-api问题

    Android10.0编译 make api-stubs-docs-update-current-api问题

  3. Ubuntu提示W: Possible missing firmware xxx解决方法

    Ubuntu提示W: Possible missing firmware xxx解决方法

  4. Ubuntu18.04编译Android8.0报错解决
    Ubuntu18.04编译Android8.0报错解决

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/236516
推荐阅读
相关标签
  

闽ICP备14008679号