本教程仅针对Android 7.1系统,为便于虚拟机备份和出现问题时的还原,本教程分为3步:初始化编译环境、源码同步、编译源码导入Android Studio。

编译源码:Android7.1.2_r1源码。

编译环境:VMWare虚拟机、Ubuntu 16.04系统。

虚拟机硬件:内存12G,硬盘200G,处理器数量2,每个处理器的核心数量1。

1. 初始化编译环境

1.1 新建虚拟机

选择将虚拟磁盘存储为单个文件、处理器数量2,每个处理器的核心数量1,处理器内存12G、硬盘200G。

1.2 安装Ubuntu系统

在虚拟机中安装Ubuntu16.04系统,默认安装语言选择英语而不是中文,原因在1.2.3中有说明,安装完成后初始设置。

1.2.1 初始化设置

1. 设置用户密码,推荐和root管理员密码一起都设置为root。

2. 更改系统语言为中文:设置——语言,将汉语拖动到最上面,iBus改成fcitx。

3. 将root管理员账号的密码也设置为root:sudo passwd root

4. 更改系统设置:显示——图标大小36;亮度和锁屏。

1.2.2 安装open-vm-tools

1.安装open-vm-tools:sudo apt install open-vm-tools

2. 实现文件夹共享:sudo apt install open-vm-tools-dkms

3.桌面环境支持双向拖放文件:sudo apt install open-vm-tools-desktop

1.2.3 文件夹名称处理

为了方便以后在终端输入命令时涉及到这些文件夹时不需要输入中文(如“下载“、”图片”等),重启虚拟机,系统提示给“download、picture”等文件夹设置名称时,选择保留旧有名称,并选中不再提示。

1.2.4 卸载无用软件

卸载libreOffice:sudo apt-get remove libreoffice-common

删除Amazon的链接:sudo apt-get remove unity-webapps-common

删除不常用的软件:

1. sudo apt-get remove thunderbird totem rhythmbox empathy brasero simple-scan gnome-mahjongg aisleriot

2. sudo apt-get remove gnome-mines cheese transmission-common gnome-orca webbrowser-app gnome-sudoku landscape-client-ui-install

3. sudo apt-get remove onboard deja-dup

1.2.5 卸载Firefox

1. 查找火狐具体内容:dpkg --get-selections |grep firefox

2. 卸载:sudo apt-get purge firefoxfirefox-gnome-supportfirefox-locale-enfirefox-locale-zh-hans

1.2.6 Sogou输入法、Chrome浏览器

下载对应的Linux版本,拖入到Ubuntu虚拟机中,双击安装。

1.2.7 安装Android Studio

未安装Android Studio官网所说的几个32位库,有需要的可以自己安装。

1. 下载对应的Linux版本,解压到opt目录下:sudo unzip"linux版android studio压缩包的文件名"-d /opt,如:sudo unzip android-studio-ide-162.4069837-linux.zip-d /opt

2. 启动Android Studio:在/opt/android-studio/bin目录下打开终端,输入./studo.sh启动Android Studio,安装SDK。

3. 添加启动器图标:在Configure中选择Create Desktop Entry,然后将AS图标锁定到启动器,以后就可以点击AS图标启动程序。

1.2.8 安装Git

1. 安装Git:sudo apt-get install git

2. 配置用户名:git config --global user.name "xxx"

3. 配置E-mail:git config --global user.email "xxx"

1.2.9 安装openjdk8

安装:

sudo apt-get install openjdk-8-jdk

切换JDK版本:

sudo update-alternatives --config java

sudo update-alternatives --config javac

1.2.10 最后的配置

更新操作:

sudoapt-getupdate#更新apt软件源信息

sudoapt-getupgrade#更新已安装的包

sudoapt-getdist-upgrade#升级系统

配置输入法:重启系统,删除多余的输入法,保留Sogou输入法和英文键盘。

清理垃圾:

sudo apt autoremove

sudoapt-getclean&&sudoapt-getautoclean#清理无用的包

此处做个虚拟机文件备份(ps:.lck文件夹是VM虚拟机生成的,不需要复制,否则可能会导致各种问题,谨慎使用快照,容易导致问题)

2. 源码同步

安装curl:sudo apt install curl

2.1 下载repo工具

执行如下命令:

mkdir ~/bin

PATH=~/bin:$PATH

curl https://storage.googleapis.com/git-repo-downloads/repo> ~/bin/repochmod a+x ~/bin/repo

将bin/repo文件中REPO_URL的https://android.googlesource.com/git-repo使用https://aosp.tuna.tsinghua.edu.cn/git-repo代替。

2.2 初始化

初始化方法有2种,一种是清华镜像站的初始化包方法,另一种是传统初始化方法,此处我只需要指定版本源码,故采用第二种方法,减小同步的代码量。

2.2.1 建立工作目录

在Home目录下打开终端输入:

mkdir Android7.1.2_r1

cd Android7.1.2_r1

2.2.2 初始化仓库

此处采用指定版本的方式

repo init -uhttps://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-7.1.2_r1

2.2.3 同步源码树

repo sync

3. 编译源码导入AS

3.1 编译Android源码

3.1.1 添加依赖

需要一条一条的复制粘贴到终端运行。

sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-devg++-multilib

sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386

sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386

sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev

sudo apt-get install git-core gnupg flex bison gperf build-essential

sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib

sudo apt-get install libc6-dev-i386

sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev

sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4

sudo apt-get install lib32z-dev ccache

3.1.2 编译源码

在Android源码的根目录下打开终端:

1.设置环境:source build/envsetup.sh

2. 选择目标:lunch aosp_arm-eng

3. 编译代码:make -j4

3.1.3 运行模拟器

source build/envsetup.sh

lunch(选择刚才你设置的目标版本,比如这里了我选择的是1)

emulator

如果你是在编译完后立刻运行虚拟机,由于我们之前已经执行过source及lunch命令了,因此你只需要执行命令emulator就可以运行虚拟机

3.2 编译idegen模块导入AS

3.2.1 编译idegen

编译idegen这个模块项目,然后生成idegen.jar文件:

mmmdevelopment/tools/idegen/

在根目录生成对应的android.ipr、android.iml IEDA工程配置文件:

development/tools/idegen/idegen.sh:

3.2.2 导入Android Studio

打开Android studio,点击File > Open,选择刚刚生成的android.ipr导入源码。

最后将内存降到4G(方便拷贝到低内存机器查看源码),关闭虚拟机做备份。

以下为本文所用到的参考文章,在此处统一对作者表示感谢。

android编译.a文件,Android 7.1源码编译导入AS完整教程相关推荐

  1. mysql5.7.13编译安装_MySQL 5.7.13 源码编译安装配置方法图文教程

    安装环境:centos7 64位 mini版 官网源码编译安装文档: 一.系统安装条件 官方文档说明: 1> cmake mysql使用cmake跨平台工具预编译源码,用于设置mysql的编译参 ...

  2. ubuntu 编译php5.6,Ubuntu 16.04 源码编译 PHP5.6

    源码编译PHP5.6 //更新依赖 sudo apt-get update sudo apt-get install build-essential //安装依赖 sudo apt-get insta ...

  3. 源码编译Ros, Ubuntu18.04系统使用源码编译Ros1,出错集合及其解决办法

    官方的介绍http://wiki.ros.org/kinetic/Installation中提到了,脚本安装的方法it is available for Ubuntu Wily (15.10) and ...

  4. AOSP源码同步过程(完整教程)

    AOSP源码同步过程(官方) 第一步:安装Repo Repo 是一款工具,可让您在 Android 环境中更轻松地使用 Git. Repo 分为两部分:第一部分是您安装的启动器脚本,它可以与第二部分( ...

  5. 响应式自助建站系统源码 完全开源带完整教程

    分享一个响应式的自助建站系统源码,拥有700多套网站模板,傻瓜式一键自助建站,功能强大,还带完整的教程. 春哥团队帮企建站宝源码系统,网站全部采用最新的Html5技术开发,真正做到响应式,全网合一!而 ...

  6. 编译安装android7.0,android7.0 源码编译问题总结

    常见问题: 1.USER问题(由于运行的docker 容易没有配置USER环境变量) JACK VMCOMMAND="java -Dfile.encoding=UTF-8 -Xms2560m ...

  7. 数据库 linux 编译,部署mariadb数据库到linux(源码编译安装)

    首先安装各种库: apt install -y build-essential zlib1g-dev libpcre3 libpcre3-dev unzip cmake libncurses5-dev ...

  8. centos 6 mysql 5.7.13 编译安装_Centos 6.5 下面 源码编译 安装 Mysql 5.7.13

    安装软件依赖包 yum -y install gcc gcc-c++ ncurses ncurses-devel cmake 下载软件包 cd  /usr/local/src wget https:/ ...

  9. [Android Pro] Android源码编译之Nexus5真机编译

    reference to : http://blog.csdn.net/liu1075538266/article/details/51272398 1.   前言 在Android安全的研究工作中, ...

  10. Android源码编译(基于Ubuntu18.0.4)

    文章目录 一.环境搭建 硬件要求 软件要求 操作系统和 JDK 主要软件包 软件安装 Git安装 repo工具安装 安装 openJDK 8 其他依赖安装 二.源码下载 建立源码文件夹 初始化仓库 源 ...

最新文章

  1. HTML的标签描述19
  2. Oracle NoLogging Append 方式减少批量insert的redo_size
  3. 一键安装lamp之php插件
  4. Leetcode 53 最大子串和
  5. 数据结构-队列1-顺序存储
  6. linux:你不知道的echo
  7. Netty工作笔记0048---Http服务过滤资源
  8. SAP License:进项税的合理管理缩减成本
  9. 我,对安全研究专家下手的黑客!
  10. CCNA学习指南中文第七版——8.22章节详解
  11. excel 公式 单引号 concat_Excel制作倒计时、抽签器你见过没?
  12. AutoHotKey完成ass字幕文件字幕偏移时间修改
  13. 计算机登录网站慢手机快,手机WiFi网速慢,简单输入几个数字立马变快!
  14. 微信小程序获取收货地址流程
  15. Python的一个小程序题
  16. Mac OS X 通知中心彻底删除网站的通知
  17. 简单说说 RPC 框架,你 悟到了吗?
  18. python爬取discuz_爬虫技术实践(二)Discuz! 按板块爬取帖子内容实战
  19. mysql1396错误
  20. Java中String与Byte之间的各种转换

热门文章

  1. 电大计算机统考模拟题在哪里学,[2017年电大]电大-计算机统考模拟题.doc
  2. yolov5 simplepose人体姿态
  3. python 生成code128c
  4. numpy 筛选面积最大
  5. PaddleHub 视频人脸检测
  6. retinaface验证
  7. Python Scipy 科学计算库
  8. ubuntu开机启动管理
  9. MXNet 安装 Windows
  10. 有关eigen库的一些基本使用方法