首页 > 生活百科

安卓系统入门(安卓系统入门学习)

生活百科 2023-09-26 20:27:01
大家在生活的过程中总会遇到一些问题,比如安卓系统入门(安卓系统入门学习),那么今天小编就为大家分享关于的相关文章,希望在这篇文章中你能了解到相关知识。

安卓系统入门(安卓系统入门学习)

安卓系统入门(安卓系统入门学习)

就目前的就业情况来看,学习Android框架的市场发展空间还是非常可观的。毕竟很多国产手机厂商,比如华为、oppo、vivo、小米等。,需要AF开发,其他APP厂商都在招,所以学习Android框架的前景还是有的。

Android系统架构分为五层,从上到下分别是系统app、应用框架(J *** a API框架)、系统运行时层(Native)、硬件抽象层(HAL)和Linux内核层。系统应用和J *** a API框架都是用J *** a语言开发的。先上一个Android系统结构图:

框架层为开发人员提供了开发应用程序所需的API。系统的应用和我们平时开发应用都离不开框架。

框架总是穿插在App的整个开发生命周期中,无论是从0到1的建立阶段,还是从1到n的打磨阶段,也都离不开框架。在发展中,我们会遇到各种非常奇怪的问题,有些问题令人费解。

这些问题大部分是因为我们不了解Android的内部运行原理,但是我们掌握了框架,这些问题是可以轻松解决的。所以成为Android框架专家也是目前招聘过程中非常稀缺的人才,可以成为你的敲门砖。

在大厂的面试过程中,框架是必问的:

例如,如果您了解Handler的源代码结构,就可以更好地理解这些概念:

为什么我不能在子线程中更新UI?

为什么主线程循环却不卡死?

线程和处理程序之间的关系

ThreadLocal是做什么的?

内容提供商、广播和服务如何使用消息来监控ANR?

一旦进了大厂,对框架了解的越多,能做的事情就越多,产出就越多,就可以继续做下去。

作为一个有经验的人,我发现很多学习者和从业者在Android框架上面临着很多烦恼。

|工作场景中遇到的问题,只能靠瞎猜瞎感受和临时补救来掩盖,看似解决了问题,但由于缺乏方法论、思路指导和工具支持,下一次还会发生同样的问题;

l在能力培养上,缺乏互联网项目的实践环境,只能通过理论知识去想象框架,无法知道它在实际工作中的真实面貌和实践过程。

l在职场晋升中,你只关心功能开发,不了解底层原理,缺乏深入的思考和总结,无法完成复杂的系统设计等高层次的工作,很难在工作中有大的作为,但富有挑战性的工作往往留给有准备的人。

总之,一旦遇到问题,很少有人能从点到面的分析,最终找到瓶颈和更好的解决方案。框架是Android开发的深水区,也是衡量一个Android程序员能力的标准。

近年来,越来越多的Android工程师开始关注框架领域,等待机会从应用开发深入到系统开发。但是,稍微了解之后,你会发现Android的源代码是非常庞大的。为了让整个源代码更容易更新和维护,垂直分层,水平模块化,设计美观。

其维护模块主要有ActivityManagerService、WindowManagerService、PackageManagerService、PowerManagerService、SurfaceFlinger、通信模块、多媒体模块等等,令人眼花缭乱。而且,要熟悉JNI,读懂C++,了解J *** a虚拟机,Linux系统甚至汇编,指令集等都是非常困难的。

如何学习Android框架?已经成为很多人迫切需要解决的问题。

初学者章节:

把握整理过程最重要。

比如Android系统的启动过程,你首先要知道启动电源-& gt;加载引导加载程序-> Linux内核启动-& gt;初始化初始化进程-& gt;合子过程启动-& gt;系统服务器进程启动-& gt;发射器启动。

然后去了解每一步的流程。例如,Zygote启动过程是创建J *** a虚拟机并为J *** a虚拟机注册JNI方法,创建服务器端套接字,并启动SystemServer过程。这个过程,你不用太在意源代码。

深入:

看源代码,原则还是先抓整体,再理解局部。在这个场景中,所有的细节都不重要。

比如Activity的启动进程,你不用关心你在AMS里跳来跳去做什么,ActivityStack和它的SuperXX在做什么,你只需要明白:在上下文中,通过AMS的客户端ActivityManagerNative发起Binder调用进入system_server进程,在AMS里绕道(处理活动栈和生命周期),然后通过IApplicationThread的Binder调用返回App进程的Binder线程池。* * *在进程池中,通过Handler向App主线程发送消息,最后通过ClassLoader加载活动类创建对象,回调对应的生命周期,整个进程结束。

不漏看一行代码就不看。只见树木不见森林不好。

刚学的时候当然不知道什么逻辑影响不大,需要跟着书和博客走,让前辈带路;如果你跟随他们的脚步,走这条路,那么你将独自走下去。这个时候你肯定会迷路,然后你会跟着,努力,到达终点。

慢慢的,你自然会知道什么重要,什么不重要。光是看系统源代码,肯定是一头雾水;万事开头难。当你觉得困难和晦涩的时候,就要硬着头皮看下去,不要放弃。第一遍读的时候可能只是对一些单词比较熟悉,但是以后读起来会越来越容易。

高级文章:

边读源代码边思考,形成自己的理解。

学而不思则罔,思而不学则懒。带着疑问阅读源代码。这是什么意思?为什么需要这么做?这种实现是优雅的还是陈词滥调?有没有更好的实现方式?如果我要写,我会写什么?等等,有了思考,你就有了自己的理解。

做笔记也是一个好方法。

记笔记的重要性在于它可以记录下自己在某一阶段的理解。当你更进一步的时候,回头看看自己当初的认识,想想什么是对的,什么是错的。这是一个非常有趣的过程。

我想每个人在看他写的代码之前,都会觉得自己在某个地方是个* * *吧。简单总结一下你的学习过程,这样你的元认知能力就会提高。

看了上面的介绍,可以开始学习了吗?加油!


标签: 入门   系统   学习

生活百科 饮食百科 健康养生 美容减肥 自然百科 科普大全 文化常识
Copyright 百科网 备案号:冀ICP备2022029337号-3本站图文信息均来自于网络收集,仅供大家参考,不作为医疗诊断依据。
统计代码