下载并编译Android源码

article/2025/8/24 18:26:13

下载编译源码

系统架构:

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下修改  

 


http://chatgpt.dhexx.cn/article/rb3O30N8.shtml

相关文章

一、安卓系统源码下载

前言:为了研究安卓系统,我们需要下载安卓源码,本篇博文参考安卓官网https://source.android.com ,对安卓系统各个版本源码的下载做出了详细解释。 一、环境要求概览 在下载编译安卓系统源码前,我们必须对各个版本安卓…

从github下载最新Android源码

今年5月底开始,谷歌彻底被墙,所有谷歌的网站都不能访问了,这次包括了android.org,googlesource.com,code.google.com。Android官方的资源不能访问,想下载Android代码当然是困难重重了。 本文就为大家解决这…

Android源码下载编译(TI)

0 前言 通过《Android源码下载 & 编译(高通)》的方法下载的源码是包含有kernel目录的(也就是包含Linux内核),然而,通过其它方法下载的源码可能并不包含kernel目录(也就是不包含Linux内核&am…

安卓系统源码、内核下载

一、下载源码 以下载源码2.3.7版本为例 环境ubuntu14.04 1、安装git sudo apt-get install git git --version //查看版本 git config --global user.name "zhangsan" //设置用户名 git config --global user.email "zhangsan163.com" //设置邮箱 git…

AOSP安卓源码下载

Android源码下载 在国内想下载Android要么科学上网,要么使用国内搭建的镜像,有清华镜像,中科大的镜像网站。这里使用清华镜像网站镜像Android源码的下载清华镜像网站地址,为啥我要写这篇笔记嘞,虽然网上有很多这方便的…

安卓系统源码编译系列(一)——下载安卓系统源码教程

最近需要编译安卓系统,咨询了一个编译过安卓系统的朋友,说是下载源码就得下载两天,于是做好了长期抗战的准备,开始了下载安卓源码的旅程。在刚开始下载时,可以参照的内容只有官方教程,于是跟着官方教程一步…

【Android】系统源码下载及编译

源码及编译 步骤 1:创建一个空目录来存放源码: mkdir aosp cd aosp步骤 2:获取最新版本的 repo 并签出 android-8.1.0_r1 分支: repo init -u https://android.googlesource.com/platform/manifest -b android-8.1.0_r1其中&am…

Android源码下载编译(高通)

0 前言 本文介绍如何下载高通平台的Android源码,然后进行编译。 相关:《Android源码下载&编译(TI)》 1 安装工具 下载Android源码需要git,repo等工具,启动repo是Google写的一个专门用于下载Android源码…

Window下载Android源码

Android 10源码下载 想要研究Android 源码的同学可以用此方法进行下载。源码从清华大学开源软件镜像站(https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/)下载。 使用Linux的同学直接参照清华镜像站提供的使用帮助(https://mirrors.tuna.tsinghua.edu…

下载安卓源码

安卓内核源码下载教程 准备环境如何选择你想要下载的版本ubuntu环境配置 准备环境 Ubuntu 18.04 安装 最好是用这个版本或者高于这个版本的,低版本的有一些环境问题可能会让你很难受我使用的是VMware Workstation 16 ProPixel 3 XL、Pixel 3、Pixel 2 XL、Pixel 2、Pixel XL、…

Android13源码下载及全编译流程

一、源码下载 1.1、配置要求 官方推荐配置请参考:https://source.android.google.cn/docs/setup/start/requirements?hlzh-cn,重点有如下几项: 1.1.1、硬件配置要求 1、内存至少 16GB,实测建议至少 32G。 2、磁盘至少 250GB&am…

Java 工厂设计模式

简介 工厂设计模式在java中有大量的应用,如spring框架,这种类型的设计模式属于创建型模式。在工厂设计模式中,创建逻辑不会对客户端暴露,可以通过一个对外接口创建所需对象。 工厂模式使用场景 需要频繁创建对象且这些对象多处…

简单工厂设计模式

简单工厂设计模式 刚开始学设计模式,犹如刚睁开眼看世界的孩子,满眼都是惊奇,原来代码的世界可以如此的精彩纷呈.当然这些都是前辈智慧的结晶.简单工厂设计模式是接触的第一个设计模式,看完后更多的是不懂和迷糊.不过相信慢慢会懂得其精髓的. 简单工厂设计模式是创建型(就是把对…

Java工厂设计模式详解

前言 工厂设计模式在开发过程中有大量的运用,不管是spring框架,还是诸多的中间件,都有着工厂设计模式的体现 比如,手机生产工厂,当提供了相关生产手机的原材料,工厂就可以按要求生产出手机 工厂模式介绍 …

Android工厂设计模式(简单工厂,工厂方法,抽象工厂,BitmapFactory简单工厂分析,Retrofit抽象工厂分析)

文章目录 创建型设计模式(简单工厂,工厂方法,抽象工厂)一.简单工厂模式引出简单工厂模式 二.工厂方法模式三.抽象工厂模式 Android源码中用到的工厂模式举例一.BitmapFactory 源码工厂模式详解(简单工厂)二.Retrofit的工厂模式(抽象工厂) 创建型设计模式…

工厂设计模式有什么用?

工厂方法是非常古老且常用的设计模式。原因主要是一个系统要运转起来一定会涉及到对象的实例化过程,如果对象的实例化分散在各种逻辑代码之间,那么就会非常零乱、难以维护,bug自然也多。 工厂方法的出现解决的就是对象创建的问题&#xff0c…

Java中的工厂设计模式

引出工厂模式 package www.java.test;interface Computer{void printComputer(); } class MacbookPro implements Computer{Overridepublic void printComputer() {System.out.println("This is a MacbookPro");} } class SurfaceBook implements Computer{Override…

Java工厂设计模式

工厂设计模式 一、面向对象的设计原则1.1 OCP(开闭原则,Open-Closed Principle)1.2 DIP(依赖倒转原则,Dependence Inversion Principle)1.3 LOD(迪米特法则,Law Of Demeter&#xff…

设计模式—工厂设计模式

工厂设计模式 1.概述2.简单工厂模式2.1 结构2.2 实现2.3 优缺点2.4 扩展 3.工厂方法模式3.1 概述3.2 结构3.3 实现3.4 优缺点 4.抽象工厂模式4.1 概述4.2 结构4.3 实现4.4 优缺点4.5 应用场景 5.扩展模式5.1 第一步:定义配置文件5.2 改写工厂类 6.JDK源码解析—Coll…

工厂设计模式 - 详解

介绍 工厂模式是Java中最常用的设计模式之一,这种类型的设计模式数据创建型模式。 主要就是负责创建对象的,当我们使用new创建对象的时候会导致对该对象的耦合性很严重,当我们需要修改的时候需要对所有new的对象进行修改,违反了软…