0、吹水
这部分是吹水,正文从前言开始
主角:老舅
修为:凡人
以下是一位framework小白学习记录,将以一中修仙的形式来代表自己的学习进度。
如果你想入手学习Android Framework,那么恭喜你已经踏入修fwk世界。
主角:老舅
修为:fwk练气期一层
一、前言
在学习Framework相关内容之前,理论上是需要对Android比较了解的,至少有开发过app,基础要相对扎实,所以这里建议想要学习的道友们先去过一遍Android基础以便理解学习内容。
在 Android 系统中,fwk 是指框架层(Framework)的代码库。框架层是 Android 系统的核心部分,提供了许多基本功能和服务,例如应用程序管理、进程管理、资源管理、窗口管理、多媒体处理、网络连接和通信等。
Android 系统的框架层代码库包含了许多模块,例如 Activity Manager、Window Manager、Package Manager、Content Providers、Telephony Manager、Location Manager、Sensor Manager、Media Player 和 Camera 等。这些模块在 Android 系统中扮演着重要的角色,使 Android 应用程序能够访问设备硬件和系统资源,并提供了一致的用户界面和行为。
在 Android 系统的框架层中,fwk 模块包含了许多核心类和接口,例如 Binder、ServiceManager、PackageManager、Application、Activity、Intent 等。这些类和接口提供了 Android 应用程序开发中必不可少的功能和服务,例如进程间通信、应用程序生命周期管理、应用程序组件启动和绑定、系统资源访问和管理等。
二、环境部署
1、安装软件
这里我用的是windows系统,我用虚拟机VMware来编译系统。首先是下载这里用到的是ubuntu18.06.4,这些网上去搜索就可以了。
VMware需要收费高点pojie版的,或者序列号就可以。
硬件方面,电脑配置尽量高就好
软件安装完成
主角:老舅
修为:fwk练气期二层
2、安装 jdk python等
在下载源码之前先在ubuntu下载一些jdk python和同步源码的软件。
安装软件alt +control +t 打开控制台输入这个安装必要软件。
sudo apt-get update 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
安装Repo工具:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
下载jdk
Android9用到的Java 8(JDK 8)需要下载和配置环境变量,没玩过Linux的可能不会(比如我)直接打开控制台输入下面这个就可以
sudo apt-get update
sudo apt-get install openjdk-8-jdk
配置Java 8环境变量:
打开.bashrc文件
nano ~/.bashrc
添加下面内容
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin
执行以下命令使配置生效:
source ~/.bashrc
然后检查一下安装是否成功
java -version
下载python
Android 9编译需要使用Python 2.7.x,可以使用以下命令安装:
sudo apt-get update
sudo apt-get install python2.7
下载源码
上面配置好后就可以下载源码了,我这里下载的是Android9系统,用到是国内的镜像
清华镜像地址:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
中科大镜像地址:https://lug.ustc.edu.cn/wiki/mirrors/help/aosp
这个是清华大学的下载指令模板模板
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.1_r1
改一下自己想要的系统版号即可我用的是android-security-9.0.0_r76,也即是说命令改成这个
先创建工作目录android 然后进入android 最后下载。
mkdir ~/android
cd ~/android
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-security-9.0.0_r76
repo sync -j24
-j
参数用来指定并行下载的线程数,该参数可以根据你的计算机性能和网络速度进行调整。一般来说, -j
参数的值应该设置为你计算机的CPU核心数的两倍或更少,以避免下载过程中CPU占用过高,导致系统变慢。比如玩的电脑cpu的最大线程数是12那我输入的参数就是24。
如果你已经吧源码下载好了,那么恭喜你,你的修为将再次得到提升
主角:老舅
修为:fwk练气期三层
最后一步编译源码
cd ~/android
source build/envsetup.sh
lunch aosp_arm-eng
make -j24
第一次编译时间比较长,取决于电脑的性能,一般一两个小时即可,我编译的时候用了9小时。。。
主角:老舅
修为:fwk练气期四层
当然这里只是起步,安装一下环境皮毛而已,后面提升境界将会越来越难。