- Android开发的技术层次是指哪些?
- Android系统架构分为哪四个层次,每一层所提供的基本功能是什么?
- 想精通java,应该了解到什么层次?对哪些知识层面应该深入了解?
- 为什么一些Java程序员更喜欢Angular?
Android开发的技术层次是指哪些?
1、第一个层次和传统的嵌入式Linux最接近,主要涉及的是CPU、GPU以及外设的驱动以及使能方面。需要熟悉Linux内核,Android框架定义中驱动的接口规范等等,这部分开源社区的力量最大。
2、第二个层次主要是涉及Android框架中间件部分,如多媒体/3D框架,java虚拟机等等,这部分Google控制的是最严格的,因为他要控制Android各种feature以及捆绑自己的移动互联网应用,必须规范中间件。这部分所涉及的软件技术也最多,从各种C/C++库,Java虚拟机性 能,用户体验抽象到数据库设计等等很大的内涵。
3、第三个层次就是app开发层次,这个层次主要就是利用Android SDK开发了。很多C/C++出身的觉得是用JAVA开发,其实J***a就是啥都是指针的C++,外带try/catch以及垃圾收集,上手其实是很快的。
Android系统架构分为哪四个层次,每一层所提供的基本功能是什么?
1.操作系统层(OS)
Android使用Linux2.6作为操作系统,Linux2.6是一种标准的技术,Linux也是一个开放的操作系统。Android对操作系统的使用包括核心和驱动程序两部分,Android的Linux核心为标准的Linux2.6内核,Android更多的是需要一些与移动设备相关的驱动程序。
2.各种库(Libraries)和Android 运行环境(RunTime)
本层次对应一般嵌入式系统,相当于中间件层次。Android的本层次分成两个部分一个是各种库,另一个是Android 运行环境。
3.应用程序框架(Application Framework)
Android的应用程序框架为应用程序层的开发者提供APIs,它实际上是一个应用程序的框架。
4. 应用程序(Application)
Android的应用程序主要是用户界面(User Interface)方面的,通常以J***A程序编写,其中还可以包含各种***文件(放置在res目录中)J***A程序及相关***经过编译后,将生成一个APK包。
想精通j***a,应该了解到什么层次?对哪些知识层面应该深入了解?
首先,既然是想精通,那了解肯定是不够的。那么要想学好,可以从以下方面着手
1,基础必须扎实,万丈高楼平地起,任何一门语言要想精通,基础功必须做好,语法,关键字必须闹明白,不能似是而非,要知其然还要知其所以然。
2,理解j***a内核,就是闹明白j***a底层运行机制。
3,基础功有了,就要会灵活运用,编写复杂的算法,编程的本质就是算法。
4,积累经验和代码量,遇到问题能尽快用已经使用过的方法解决。有很多的开源模块,能信手拈来。
5,码农写实际的代码,高级程序员做架构。为程序设计数据结构,把实际问题抽象化是高级程序员做的事
说得不好,仅供参考,纯手打
为什么一些J***a程序员更喜欢Angular?
因为这两者都特别容易 over engineering。
不要说什么大多数前端都不会工程化地解决问题,因为 J***a 和 Angular 已经不属于工程化与不工程化之前的区域,而是在外面一个叫做过度工程化的区域。
我曾经面试过一个人,主要是 J***a 背景。一个带点算法的问题,一个函数就能说清楚这个算法怎么写,他一上来就说这需要一个类。我想,好吧,你这个类其实也就只需要一个方法,但如果你[_a***_]重构为几个方法让类设计更美观的话,那也可以当作加分项。接着他开始说要写一个工厂来构造这个类……然后了,整个面试就从工厂开始越绕越远,但解决核心问题那个函数就是写不出来。
虽然这是极端情况,但某些语言和框架就是特别容易让人过度工程化。说到这一点,必须对 YUI 和 GWT (Google Web Toolkit) 补一刀,因为都是同一套路的。
这些语言和框架的共同点是它们都特别适合一个架构师带一群小白干活。架构师必须把需求定义到好像伪代码都写好一样的程度,然后小白把需求转化为真实的代码。因为小白是小白,所以这些语言和框架都有过多的条条框框,保证你不能犯错。简单的事情说一遍不够,必须重复说几遍而且互相能对上。
相比之下,JavaScript 更灵活,有时候是太灵活了导致太容易犯错。但它不会***设你是小白,尽量不设置条条框框。