下载并编译Android源码

下载编译源码

系统架构:

Linux:Linux内核和驱动模块(USB Camera 蓝牙等)

Libraries:提供动态库,Android运行时库、Dalvik虚拟机等,大部分是C 和C++写的,可以看成是native层

Framework:基于Java写的,是Android平台上Java世界的基石

Application:与用户直接交互,是用Java开发的

 

Java虽然有与平台无关的特性,但是Java和具体平台之间的隔离是由JNI层来实现的,Java是通过JNI层调用Linux OS中的系统调用来完成对应功能的,例如创建了一个文件或者一个socket。还有一个核心的native世界,为整个系统高效平稳地运行提供了强有力的支持,Java由JNI层通过IPC方式与native世界交互,而Android平台最神秘的IPC就是Binder了。

1 下载Android源码

获取源码的地址:

https://source.android.com/source/downloading.html

下载repo并配置权限

AOSP采用了多仓库管理的方式对源码进行管理,

1 mkdir ~/bin
PATH=~/bin:$PATH  将bin目录配置到环境变量中去
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

  

2 在根目录下创建文件夹并进入这个目录下执行

repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b froyo --repo-url=https://gerrit-googlesource.lug.ustc.edu.cn/git-repo

3 repo sync

下载完成就可以看到目录下的结构:

 

查看当前源码的分支 切换分支可以

repo init -b android-4.2.2_r1

repo sync

 

遇到的问题:

1

 解决方案:

在环境变量里永久配置下REPO_URL即可

export REPO_URL=git-repo - Git at Google

然后配置使其生效 source /etc/profile

2

 解决方案 关闭CA验证

git config --global http.sslverify false

git config --global https.sslverify false

编译源码:

Android源码和JDK之间的对应关系:

 

一 下载jdk :官网Java Archive | Oracle

然后解压

问题1:

Ubuntu jdk install.sfx.XXX: not found

解决方案:机位和jdk的位数不匹配,机位是64的  jdk下载了32(i586)位的。

二 配置环境变量

进入/etc/profile 在末尾加入:

 export JAVA_HOME=/develop/jdk1.5.0_22

export JRE_HOME=JAVA_HOME/jre

export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

同步source /etc/profile

三 编译源码:make -j8

问题1:Android can only be built by version 3.81

解决方案:build/core/main.mk下修改  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值