写点什么

不会查看系统源码,还搞什么 Android?,OMG,学它

作者:嘟嘟侠客
  • 2021 年 11 月 28 日
  • 本文字数:2360 字

    阅读完需:约 8 分钟

如果你整编过源码,查看 out/host/linux-x86/framework/idegen.jar 是否存在,如果不存在,进入源码根目录执行如下的命令:


source?build/envsetup.shlunch?[选择整编时选择的参数或者数字]mmm?development/tools/idegen/


如果没整编过源码,可以直接执行如下命令单编 idegen 模块:


source?build/ensetup.sh??make?idegen


关于 Android 系统源码的编译可以查看如何方便快速的整编Android?9.0系统源码?)这篇文章。


idegen 模块编译成功后,会在?out/host/linux-x86/framework 目录下生成 idegen.jar,执行如下命令:


sudo?development/tools/idegen/idegen.sh


这时会在源码根目录生成 android.iml?和?android.ipr?两个文件,这两个文件一般是只读模式,这里建议改成可读可写,否则,在更改一些项目配置的时候可能会出现无法保存的情况。


sudo?chmod?777?android.imlsudo?chmod?777?android.ipr

配置 AS 的项目配置文件

由于要将所有源码导入 AS 会导致第一次加载很慢,可以在 android.iml 中修改 excludeFolder 配置,将不需要看的源码排除掉。等源码项目加载完成后,还可以通过 AS 对 Exclude 的 Module 进行调整。如果你的电脑的性能很好,可以不用进行配置。在 android.iml 中搜索 excludeFolder,在下面加入这些配置。


<excludeFolder?url="file:///bionic"?/><excludeFolder?url="file:///bootable"?/><excludeFolder?url="file:///build"?/><excludeFolder?url="file:///cts"?/><excludeFolder?url="file:///dalvik"?/><excludeFolder?url="file:///developers"?/><excludeFolder?url="file:///development"?/><excludeFolder?url="file:///device"?/><excludeFolder?url="file:///docs"?/><excludeFolder?url="file:///external"?/><excludeFolder?url="file:///hardware"?/><excludeFolder?url="file:///kernel"?/><excludeFolder?url="file:///out"?/><excludeFolder?url="file:///pdk"?/><excludeFolder?url="file:///platform_testing"?/><excludeFolder?url="file:///prebuilts"?/><excludeFolder?url="file:///sdk"?/><excludeFolder?url="file:///system"?/><excludeFolder?url="file:///test"?/><excludeFolder?url="file:///toolchain"?/><excludeFolder?url="file:///tools"?/><excludeFolder?url="file:///.repo"?/>

导入系统源代码到 AS 中

在 AS 安装目录的 bin 目录下,打开 studio64.vmoptions 文件,根据自己电脑的实际情况进行设置,这里修改为如下数值:


-Xms1024m-Xmx1024m


如果你是在 VirtualBox 中下载的系统源码,那么将 VirtualBox 中的系统源码拷贝到共享文件夹中,这样源码就会自动到 Windows 或者 Mac 上。通过 AS 的 Open?an?existing?Android?Studio?project 选项选择 android.ipr?就可以导入源码,这里我用了大概 7 分钟就导入完毕。导入后工程目录切换为 Project 选项就可以查看源码。


配置项目的 JDK、SDK

由于我们下载的是 9.0 的 AOSP 源码,SDK 版本也应该对应为 API?28,如果没有就去 SDK?Manager 下载即可。点击 File?->?Project?Structure-->SDKs 配置项目的 JDK、SDK。创建一个新的 JDK,这里取名为 1.8(No?Libraries),删除其中 classpath 标签页下面的所有 jar 文件。



接着设置将 Android?SDK 的 Java?SDK 设置为 1.8(No?Libraries),这样 Android 源码使用的 Java 就是 Android 源码中的。



确保的项目的 SDK 为源码对应的 SDK。


Exclude 不需要的代码目录

File?->?Project?Structure?->?Modules 中可以通过 Excluded 来筛选代码目录,比如我们选择 bionic 目录,点击 Excluded,bionic 目录会变为橙色,bionic 字段会出现在右侧视图中,说明该目录已经被 Excluded 掉,通俗来讲就是被排除在工程之外。如果不希望 bionic 目录被 Excluded 掉,再次点击 Excluded,bionic 目录会变为灰色。


总结

这篇我们学习了 Source?Insight 和 Android?Studio 导入系统源码的方法,但是具体的查看源码的细节就需要读者在使用中逐步去掌握,下一篇我们会学习如何使用 Android?Studio 去调试系统源码。


针对 Android 程序员,我这边给大家整理了一些资料,包括不限于高级 UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter 等全方面的 Android 进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!

资料领取:点赞+加群免费获取?Android IOC架构设计

加群?Android IOC架构设计领取获取往期 Android 高级架构资料、源码、笔记、视频。高级 UI、性能优化、架构师课程、混合式开发(ReactNative+Weex)全方面的 Android 进阶实践技术,群内还有技术大牛一起讨论交流解决问题。



尾声

对于很多初中级 Android 工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对 Android 开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。


最后想要拿高薪实现技术提升薪水得到质的飞跃。最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以为了大家能够顺利进阶中高级、架构师,我特地为大家准备了一套高手学习的源码和框架视频等精品 Android 架构师教程,保证你学


《Android 学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享


了以后保证薪资上升一个台阶。


  • 思维脑图

  • 性能优化学习笔记




  • 性能优化视频

  • 当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。


本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

用户头像

嘟嘟侠客

关注

还未添加个人签名 2021.03.19 加入

还未添加个人简介

评论

发布
暂无评论
不会查看系统源码,还搞什么Android?,OMG,学它