安徽建设厅网站官网,站长平台如何推广自己的网站,合肥网站建设哪个公司做得比较好,江苏省建设工程信息服务平台Android源码快速入门
今天分享的内容是Android源码快速入门#xff0c;主要分为以下几个步骤#xff1a;
* 硬件要求
* 虚拟机安装
* 开发环境搭建
* 下载编译源码
* 从一个简单的实际开发需求体验 Framework 开发硬件要求
用于 Android Framework 开发的电脑需要较强的 C…Android源码快速入门
今天分享的内容是Android源码快速入门主要分为以下几个步骤
* 硬件要求
* 虚拟机安装
* 开发环境搭建
* 下载编译源码
* 从一个简单的实际开发需求体验 Framework 开发硬件要求
用于 Android Framework 开发的电脑需要较强的 CPU大内存大存储一般来说需要满足以下要求
* CPU 不低于 6 核心建议 8 核及以上
* 内存不低于 32G建议 64G
* 存储空间不低于 500G建议 1TB SSD虚拟机安装
这里推荐在 Windows 下使用 VMware 虚拟机软件安装 Ubuntu18.04 进行开发AOSP 官网推荐的的是 Ubuntu18.04但 Ubuntu18.04 在 VMware下兼容性更好实测也没有任何兼容性问题安装系统的过程如下
1. 在[官网](18.04版本下载好 Ubuntu18.04 桌面版系统镜像 2. VMware 新建虚拟机
打开 VMware菜单栏选择 文件 - 新建虚拟机 后出现以下界面
选择 典型然后点击 下一步出现以下界面 操作系统选择 Linux版本选择 Ubuntu 64位然后点击 下一步出现以下界面 处理器数量选择 1每个处理器的内核数量选择你 CPU 的线程数比如我的 CPU 是 amd ryzen 3800x8核心16线程那么选择 16,然后点击 下一步出现以下界面 虚拟机内存的设置建议尽可能的大一些内存小了全编译系统会出错这里选择 320G 根据你磁盘的空间最大磁盘大小尽可能设置大一点我这里设置为 1024 G然后点击 下一步出现以下界面 直接点击 下一步
然后点击完成至此虚拟机新建完毕。 选择处理器并勾选上虚拟化引擎两个选项 然后开启此虚拟机就可以了 首次开机会有安装过程这里就不一步一步列举出来了
开发环境搭建
安装好系统后需要安装必要的软件
sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig python至此开发环境就搭建好了。
下载编译源码
1. 下载 repo 工具
mkdir ~/bin
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo
chmod x ~/bin/reporepo 的运行过程中会尝试访问官方的 git 源更新自己如果想使用 tuna 的镜像源进行更新可以将如下内容复制到你的 ~/.bashrc 或者 ~/.zshrc 里。
export REPO_URLhttps://mirrors.tuna.tsinghua.edu.cn/git/git-repo
PATH~/bin:$PATH然后 source 一下
source ~/.bashrc
#如果使用的是 zsh
#source ~/.zshrc2. 初始化仓库并同步远程代码
git config --global user.email youexample.com
git config --global user.name Your Name
mkdir aosp
cd asop
#初始化仓库,-b 指示分支这里使用 android10
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r41
#同步远程代码
repo sync-b 后面的值参考源代码标记和 build。这里选用了 android-10.0.0_r41 版本用于学习。Android 每年都会更新一个大版本学习的角度来说选择一个不太老的版本即可不必追新。
3. 编译源码
source build/envsetup.sh
lunch aosp_x86_64-eng
make -j164. 运行模拟器
emulator -verbose -cores 4 -show-kernel从一个简单的实际开发需求体验 Framework 开发
需求去掉原生 Launcher 中的 google 搜索栏。
很多产品比如用于仓库电商物流的 pda 等更多的是考虑功能性和稳定性UI 的美观和易用性是其次的。这些产品一般是不会重新开发和定制 Launcher 的但是会对 Launcher 做一些修改比如一个常见的需求是去掉原生 Launcher 中的 google 搜索栏。
由于众所周知的原因 google 搜索栏在中国是没有办法使用的。在中国销售的产品肯定是要把它去掉的。
第一步修改文件 packages/apps/Launcher3/res/layout/search_container_workspace.xml将以下内容注释掉 !-- fragmentandroid:namecom.android.launcher3.qsb.QsbContainerView$QsbFragmentandroid:layout_widthmatch_parentandroid:tagqsb_viewandroid:layout_heightmatch_parent/ --第二步修改文件packages/apps/Launcher3/src/com/android/launcher3/Workspace.java 将以下内容注释掉 // CellLayout.LayoutParams lp new CellLayout.LayoutParams(0, 0, firstPage.getCountX(), 1);// lp.canReorder false;// if (!firstPage.addViewToCellLayout(qsb, 0, R.id.search_container_workspace, lp, true)) {// Log.e(TAG, Failed to add to item at (0, 0) to CellLayout);// }第三步重新编译源码启动模拟器
make -j16
emulator可以看到 Google 搜索框没有了。
很多同学可能有疑问你怎么知道这么改就可以了其实办法就一个——读源码。Launcher 也是一个 Android 应用和我们平时开发的 App 没有本质的区别。就像我们接手别人开发的项目去解决项目中的 bug添加新的需求是一样的。
Android Framework 不同的是代码量大涉及知识广泛App 开发同学如果没有人指导阅读起来比较吃力。后续内容我们带着大家由浅入深步步分解为 App 开发的同学解开 Android Framework 的神秘面纱。
总结
本文主要介绍了以下几个方面的内容
虚拟机安装开发环境搭建下载编译源码从一个简单的实际开发需求体验 Framework 开发