Android 4.4源码编译

2024-06-03 12:18
文章标签 编译 android 源码 4.4

本文主要是介绍Android 4.4源码编译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上一节,我们说到如何下载源码,不过我们是以5.0为介绍,今天我们说一下如何编译Android 4.4的源码,都是大同小异的,由于我上一节使用的是Ubuntu16.0.4作为开发环境,由于依赖库的问题,编译Android 5.0出现各种的问题,编译一直不通过,所以我干脆切换回Ubuntu14.04

关于上一节源码的下载方法可以参考我之前的文章

android 源码下载

一、开发环境

Ubuntu 14.04 LTS 桌面版本

JDK 1.6

Android 源码 4.4.4

Android 4.4源码编译

编译前配置相应的环境

由于Ubuntu 不同的版本,里面自带的依赖库也不一样,所以我们根据不同的版本安装对应的依赖库。

我这里以14.04为例

由于编译Android4.4.4以下版本都是使用oracle的 JDK版本,而Android 5.0之后都是使用 openjdk版本了,主要都是因为甲骨文与谷歌的版权之间的问题,所以我们需要下载相应的JDK版本,注意Android 4.4.4是使用JDK 1.6的版本的,所以下载的时候不要下载最新的1.7或者1.8版本,到时检验环境依然是不通过的

我这里把oracle的1.6的地址列出来

http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html#jdk-6u45-oth-JPR

大家下载好JDK到本地电脑后

cd /usr/local/

mkdir java

cd java

sudo cp /Downloads/jdk-6u45-linux-x64.bin ./

sudo chmod 777 jdk-6u45-linux-x64.bin

sudo -s ./jdk-6u45-linux-x64.bin ./

接着配置JDK环境

sudo vi /etc/profile,然后再最后输入如下代码

export JAVA_HOME=/usr/local/java/jdk1.6.0_45

export JRE_HMOE=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

让配置生效

输入

source /etc/profile

检查一下java版本

java -version

如果输出当前安装的版本证明没有问题了

Ubuntu 14.04的依赖库的安装

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

zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386

lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache

libgl1-mesa-dev libxml2-utils xsltproc unzip

安装成功后,我们需要配置一下ccache,这样可以加快编译速度。

我们可以编辑.bashrc

vi .bashrc

然后输入如下代码

export USE_CCACHE=1

保存之后输入,分配50G的空间

prebuilts/misc/darwin-x86/ccache/ccache -M 50G

到了这一步我们可以检查我们的编译环境有没有缺少或者错误

进入源码目录

我这里是ming

cd ming

make clobber

Android 4.4源码编译只要不提示什么incorret的信息就好

接着我们可以初始化环境

source build/envsetup.sh

选择编译版本环境

lunch

Android 4.4源码编译

我这里选择1

配置好后,我们可以进行编译源码了

make -jn

这里的n,是数字,可以根据你的CPU核心来算

比如我的CPU是双核的,直接用make -j4,当然你为了保守一点也可以用make

这个编译的时间就根据你的计算机处理速度了。编译成功后,会在out/target/product/generic生成镜像文件system.img,ramdisk.img,userdate.img

这个时候我们可以运行在模拟器上看看效果

emulator

Android 4.4源码编译

这篇关于Android 4.4源码编译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1026962

相关文章

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I