关闭

Android源码编译

标签: android
2519人阅读 评论(1) 收藏 举报
分类:

简要说明

现在的Android应用开发开源项目感觉就像春秋战国时期,各种思想雨后春笋,百花齐放,如算法,如图形,如数据库,如网络协议,林林总总、煞是好看,Github也成为了开源者及受益者的乐园,现在我们就跟随开源的脚步,追随耀眼的明星,站在巨人的肩膀上,开启我们的成长之路吧。

Android源码的开源,也是最大的开源了,当然有人会说是开放不是开源, 这个我们就不要计较了,能下载到我们需要的系统代码,已经很不错了。Android的源码下载编译对于初学者还是很头疼的, 我们就从这里开始吧。

下载安装VM虚拟机和ubuntu ios文件

我这里选的版本是7.1.5 build-491717 、ubuntu-11.04-desktop-i386

预备环境

本来呢, 选择的是4.4.1版本的源码,但是源码实在太大,都超过了我设定的虚拟机硬盘50G,果断放弃了,估计编译也得花很长时间。后来就选择了2.3.1版本的源码,下载源码之前首先要做一些准备工作

 买一个稳定的VPN,这是下载源码和所需软件

 安装Git工具

sudo apt-get install git-core gnupg

 安装Jdk

下面的增加、更新软件源的命令经常用到

sudo add-apt-repository ppa:ferramroberto/java

sudo apt-get update

安装

sudo apt-get install sun-java6-jre sun-java6-plugin

sudo apt-get install sun-java6-jdk

  

 下载repo,并设置权限

wget https://dl-ssl.google.com/dl/googlesource/git-repo/repo

chmod 777 repo

cp repo /bin/

创建一个Android的文件夹,并切换到它目录下

mkdir Android

cd Android

下载android源码

默认是下载最新版

repo init -u https://android.googlesource.com/platform/manifest

我是指定了2.3.1的版本分支

repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.1_r1

接着就是下载了

repo sync

下载是个很漫长的过程,得网速稳定,能翻墙,大致需要2~3天吧,总大小有4~5G吧,速度快的话,可能还不要那么长时间

好了, 下载完的样子就如下图

 

Make编译

Make

当下载完,不要以为就结束了, 问题才刚刚开始, 呵呵。 为什么这样说呢, 因为编译的时候会遇到各式各样的问题, 主要是2方面:

 提示错误信息  You are attempting to build on a 32-bit system.

这里把检查是不是64位的脚本注释掉就行了

修改build/core目录下的main.mk文件:

     ifeq ($(BUILD_OS),linux)

     build_arch := $(shell uname -m)

     #Change the following line for building on a 32-bit system.

     #ifneq (64,$(findstring 64,$(build_arch)))

     #$(warning************************************************)

     #$(warning You are attempting to build on a 32-bit system.)

找到下列文件,也同时注释掉:

     /external/clearsilver/cgi/Android.mk

     /external/clearsilver/cs/Android.mk

     /external/clearsilver/java-jni/Android.mk

     /external/clearsilver/util/Android.mk

     修改LOCAL_CFLAGSLOCAL_LDFLAGS变量:

     # This forces a 64-bit build for Java6

   # Change the following two lines for building on a 32-bit system.

   # LOCAL_CFLAGS += -m64

   # LOCAL_LDFLAGS += -m64

 

 第二个出现的问题就是各种软件没有安装的问题

所以最好编译前安装好这些软件, 否则编译大半天出了问题还得,重头再来,那叫一个桑心啊。

sudo apt-get install bison

sudo apt-get install bison flex

sudo apt-get install zlib-devel

sudo apt-get install libncurses5-dev

sudo apt-get install libx11-dev

sudo apt-get install gperf

对于其他相似问题, 就百度一下看看缺少哪个,然后执行一下就好了,假如找不到这个,就的找找他在哪个源里面了, 把他添加到我们的软件源文件里面,然后再次初始化。

好了,下面就是Make成功后输出的消息,看着是不是很激动,呵呵

 

 

Emulator启动模拟器

这一步就简单多了,把我们编译后的输出bin添加到环境变量

export PATH=$PATH:~/Android/out/host/linux-x86/bin

export ANDROID_PRODUCT_OUT=~/Android/out/target/product/generic

运行emulator

emulator

下面就是我们期待已久的界面了,看到这个,前面的付出也算得到回报了

 


PS:编辑文字真麻烦, world过来各种样式都没了,也不支持离线编辑,哎。


联系作者

QQ 928320442

QQ群 323876830

4
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Android源码中编译AndroidStudio工程

android源码编译AS工程
  • abc_1234d
  • abc_1234d
  • 2017-05-18 21:48
  • 1038

自己动手编译最新Android源码及SDK(Ubuntu)

在Android Studio代码调试一文中,简单的介绍了代码调试的一些技巧.现在我们来谈谈android源码编译的一些事.(俺认为,作为android developer人人都应该有一份自己Andr...
  • dd864140130
  • dd864140130
  • 2016-06-20 01:54
  • 32625

Mac OS X 下 Android6.0源码的下载与编译

有没有必要阅读Android源码: 了解基层,高层才能更好地工作。 能够理解Android设计者的意图。 能够学习优秀开源项目的代码风格和设计理念。
  • Loften_93663469
  • Loften_93663469
  • 2016-05-27 18:10
  • 5239

android framework源码编译流程

由于工作的需要,需要对Android framework层的源代码就行修改。所以需要下载Android的源代码并进行编译。  一、安装VM11+Ubuntu14.04操作系统 好了,现...
  • xuefu_78
  • xuefu_78
  • 2016-03-21 11:30
  • 1418

Android系统源码编译

安卓源码编译需要linux环境,我这里用的是ubuntu14.04,虽然ubuntu16.04出来很久了。但是16.04有些依赖没解决得了,所以用14.04版本方便很多。下面将用ubuntu14.04...
  • loongago
  • loongago
  • 2017-01-11 09:30
  • 1139

Android源码编译之Nexus5真机编译

1.   前言 在Android安全的研究工作中,我们时常要对Android进行改进并对其进行源码编译,由于目前几乎所有的手机厂商均对其底层驱动实行封闭政策,导致我们在完成Android编译后无法将我...
  • liu1075538266
  • liu1075538266
  • 2016-04-28 10:47
  • 8698

基于Android源码编译系统应用

最近实验室项目有一个
  • u013487923
  • u013487923
  • 2014-05-17 18:19
  • 1597

Android源码内部编译过程总结(Make)(转)

Android的优势就在于其开源,手机和平板生产商可以根据自己的硬件进行个性定制自己的手机产品,如小米,LePhone,M9等,因此,在我们在对Android的源码进行定制的时候,很有必要了解下,An...
  • gzzaigcn
  • gzzaigcn
  • 2014-02-28 16:59
  • 2921

Mac编译android源码的坑

Mac编译android源码 因为项目需要在代码线上编译app,想在mac上直接编译,省时省力。不过,配置环境过程中遇到不少坑,现在逐一记录下来。 主要有以下几点: android开发环境 创建大...
  • sinat_14899485
  • sinat_14899485
  • 2016-08-27 08:55
  • 1231

编译Android源码和内核源码的归纳总结

经过一个多星期的努力,终于在零基础的情况下使用ubuntu-12.04-desktop-amd64(64位Ubuntu系统)成功编译了android-4.0.3的源码和Linux version 2....
  • c15522627353
  • c15522627353
  • 2016-04-14 14:06
  • 1588
    个人资料
    • 访问:201408次
    • 积分:2274
    • 等级:
    • 排名:第19082名
    • 原创:39篇
    • 转载:0篇
    • 译文:0篇
    • 评论:122条
    Android开发交流群
    323876830
    博客专栏