夜雨聆风学习资料网

ARTICLE · 1302375

安卓app转fw系统框架开发0基础学习fw准备工作

安卓app转fw系统框架开发0基础学习fw准备工作

背景

很多学员刚开始都是从app或者其他技术栈转到安卓framework的学习,因为framework是安卓系统核心框架层面。代码量相当大,而且framework的相关核心工作都是需要去深入这些framework的模块代码进行相关的问题bug修复和需求实现。

普遍有以下以下几个困惑痛点:

 0、觉得framework系统开发很难,门槛太高,需要很多知识基础和经验,觉得自己根本学不会,想要找一个非常有经验老师手把手带学。

1、不知道framework学了可以干啥,以为学习framework就是看看源码梳理流程而已没有实际用处

2、不知道怎么学framework,不知道学啥,自己自学一堆,但是又感觉啥也没学会

3、分析系统源码时候动不动就被卡住,很难靠自己从头到位分析源码

4、源码学了那么多,根本记不住,也没办法用于实战工作

5、找fw工作中但是自己的完全没有fw工作学习经验,完全不知道怎么写,需要指导

6、工作中framework的问题压根不知道怎么入手,不知道怎么排查

如果你有以上的一些framework学习困惑,那恭喜你遇到了马哥,马哥是专门负责带你0基础学习安卓framework入门到精通的老师。

马哥自我介绍

这个是原来我的履历(现在全职做课程培训)

自我介绍一下:我是千里马,全网第一个做framework大厂项目实战课程,平均每年带出几百个学员成功找到framework开发工程师的工作,曾就职爱奇艺,最近一个就职于中兴努比亚,桌面相关app到framework业务负责人,主要红魔手机ROM创新技术规划突破,疑难问题解决比如窗口闪黑,黑屏,公司快稳省性能优化模块主导等,基本好多游戏特色功能都有我的成果,投屏音频低延时,音频分离等特色功能,我的课程就是一线工作实战分享,完全自己研发课程,为公司申请专利上百篇

哪些同学适合转framework开发

1、本身是做安卓app开发的同学,这类同学完全符合学习的要求,所以可以大胆来学习fw,上手最快

2、linux驱动开发,嵌入式开发同学,本身对linux系统比较了解,android本身linux内核,上手容易

3、有java语言基础,比如java后台开发的兄弟,因为熟悉java,做起app开发基本2-3天既可以上手,所以也有很多java后台同学转fw开发

4、大学生同学,大学生在学校都有学习计算机相关基础,一般也会java,c++,c其中一门语言,学习时间多,学习新知识能力强,所以完全可以来学fw,而且大学生就业fw校招机会也不少,但是大学生基本很少会fw,自然竞争有优势。

知识基础要求(满足其中一个既可以)

1、熟悉c++/c/java 任意一种语言,会基本linux命令

2、知道安卓app开发的很基础知识:四大组件Activity等既可以

framework学习要求

学习framework门槛和难度确实是有的,但是你掌握framework技能后这也是你掌握framework开发后的核心优势,找工作肯定更加容易也有优势。

学习framework课程要求如下:

1、踏实准备好电脑ubuntu等系统设备,确保自己有实战学习framework环境

2、确保自己平均每天可以坚持实现学习1小时,不可以三天打鱼两天晒网

3、在学习马哥fw课程过程中有疑问,自己深入思考还是不理解的可以随时询问马哥,马哥都会第一时间进行解答

4、学习过程中自己学会做笔记,梳理变成自己的知识点,学会前后知识相互串联贯通,形成自己的对整个framework体系的深入理解。

5、多学会把学到的framework知识用于实际实战的一些项目结合理解,课程实战项目知识学习后,还需要更多的额外实战项目来进行巩固,想要更多高级的framework项目进行实战,可以联系马哥要加强版项目进行实战验证自己学习水平。

只要可以认真做到以上几点,马哥基本上可以保证你坚持2-3个月,fw的能力绝对可以达到一个合格中高级framework工程师水平。

基础设备

在开始学习framework阶段,这个时候的你还处于对framework的全新探索期,你对framework也还不是很熟悉,这个时期必备装备有如下:

1、必备硬件电脑(不要用苹果相关电脑)

在这里插入图片描述

这个电脑是最重要的,因为你如果没有一个不错的电脑那么其实,做framework来还是很麻烦,因为framework开发需要你频繁编译系统,频繁修改,但是编译系统可不是编译应用那么简单,相对来说非常耗费资源。具体需要什么配置呢?这里给出一个最基本的配置:

cpu:最少4核以上

建议intel cpu(amd cpu也可以),一般都可以满足,越多核越好,这个是影响你编译速度关键,差异也巨大,比如学员里面编译8.1的老代码为例,有的编译源码10小时,有的16分钟

内存:最少大于等于16G

目前高版本的aosp版本编译都是耗费内存巨大的,所以这里的建议内存最少要有16G,内存不足,那么导致的结果那就是,经常编译源码时候无故退出,停止,oom等,这个时候最简单方式加内存条,不加那就只能减少make的线程,比如make -j 1,单线程编译让编译过那块的耗内存任务

SSD/硬盘500G以上

这个部分容量最少500G,不过这个只能保证你开发一套代码够了,要是想搞多套aosp版本的开发,那么肯定是不够的,所以硬盘容量给的越多越好。不然你就只能保留一套代码。

这里的建议大家用ssd,不要用机械硬盘,因为机械硬盘比较慢,硬盘速度也是影响编译时间的关键因素

如果不满足以上配置建议可以考虑换电脑了,省钱的话可以考虑买个二手服务器cpu至强系列的,性价比最佳满足aosp系统开发。

当然也可以考虑租电脑编译aosp的那种至强芯片服务器,大概也就170一个月,基本上app转fw学习2-3个月足够。

这里是马哥电脑配置:

2、必备的ubuntu操作系统

要求:Ubuntu 操作系统 64位桌面版本,如下面带了desktop和amd64标识的镜像

版本要求: 最少要求20.04-24.04版本及以上版本,马哥这边自己使用的20.04版本

安装方式选择

1 直接电脑只有Ubuntu系统    最佳选择

2 电脑采用双系统方式,windows系统和Ubuntu系统分别安装不同硬盘分区方式   (和直接安装没啥区别,不过就是启动时候选择不一样)

3 windows电脑 + VMware安Ubuntu方式  (速度会慢一些,适合想和windows同时用的情况)

这个framework学习初中期,可以不需要开发板或者其他手机设备,这个期间自己编译系统可以直接模拟器emulator运行,看到自己运行的模拟器,这个就是为啥要Ubuntu的桌面版本

ubuntu编译出来的自己模拟器

进阶实体手机或者设备

经过上面的framework学习阶段后,到了中后期你就可以准备相关的硬件终端设备来运行你编译的系统了,这个具体终端选择的话这边也给出一些建议:

在这里插入图片描述

为啥要有实体设备呢?

1、为了让自己修改系统自己使用,增加成就感,提高兴趣,比如你可以为你的妹纸做个系统表白啥的,比如一开机就是她的的开机动画。。。。

2、最重要是因为一些硬件模块不方便用模拟器了,比如触摸,SurfaceFlinger,啥的和硬件有些耦合的东西

当然其实硬件实体设备属于非必须设备,一般emulator模拟器就够你成为高级framework工程师了。

真实的硬件设备有以下几个特点对比

1、开发板,比如市场经典的RK系列,全志啥的(预算价钱1000左右) 优点:就是不担心变砖,还可以学嵌入式 

缺点:就是aosp版本更新是个麻烦事,不一定是最新aosp

2、国内二手手机,比如小米等,具体是否支持得自己去官网看(预算:100-300)

安卓旧手机变开发板-系统开发lineage环境搭建

优点:特别适合framework开发,价格便宜,而且经常体验最新的aosp系统,因为lineageos会经常更新最新aosp 缺点:可能涉及解锁等步骤每个手机厂商不一样,要多试试

3、二手pixel 咸鱼一般可以买到,越新的价格越贵(预算:200-1000)

Pixel 6编译AOSP15源码及刷机教程

优点:可以直接aosp代码就支持的,官方原生的aosp系统 

缺点:google不会更新老版本的pixel的aosp版本,即买的pixel如果太老会没有新版本aosp,得买新的pixel才可以 新的pixel价格过贵

上面的推荐大家选第二个方案,二手手机+lineage os系统方案。

初学者必学的一些framework实战干货课程,获取方式点击下面链接:

课程合集:
部分详细课表
Android Framework开发rom实战合集课表/车载车机手机高级系统开发工程必会技能
为什么性能优化是必学课?这些优化成果就是答案
马哥手把手指导答疑服务vip学员
感兴趣可以滴滴加马哥+w号:androidframework007

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料